Введение
Добро пожаловать в лабораторную работу «Понимание модулей эксплойтов»!
В тестировании на проникновение использование уязвимости означает применение модуля эксплойта для доставки полезной нагрузки (payload) на целевую систему. Metasploit Framework — один из самых популярных инструментов для этих целей, предоставляющий огромную базу данных модулей эксплойтов для различных известных уязвимостей с возможностью поиска.
Однако профессиональная эксплуатация — это не просто «найти и запустить». Это методичный процесс выбора подходящего модуля, понимания его принципов работы, тщательной настройки и проверки цели перед выполнением потенциально деструктивных действий.
В этой лабораторной работе вы изучите стандартную методологию использования таких модулей. Вы потренируетесь искать реальный эксплойт, анализировать требования модуля, настраивать параметры цели и безопасно проверять уязвимый сервис перед проведением реальной атаки.
Поиск конкретных эксплойтов (CVE/Имя)
На этом этапе вы узнаете, как запустить консоль Metasploit Framework и найти нужные модули эксплойтов.
Metasploit содержит тысячи модулей. Чтобы найти подходящий, можно использовать команду search. Поиск возможен по названию программного обеспечения, типу уязвимости или специфическим идентификаторам, таким как номер CVE. В этой лабораторной работе мы будем работать с реальной целью, подверженной уязвимости Shellshock, которая доступна по адресу 127.0.0.1:8080.
Сначала запустите консоль Metasploit. Флаг -q используется для запуска в «тихом» режиме, который пропускает отображение приветственного баннера.
msfconsole -q
После загрузки консоли приглашение изменится на msf6 >. Теперь используйте команду search для поиска модулей, связанных с Shellshock.
Поиск по семейству уязвимостей или CVE — это зачастую самый быстрый путь от разведки к выбору подходящего эксплойта.
search shellshock
Вы увидите таблицу с результатами поиска. Обратите внимание на столбец Name, в котором указан путь к модулю. Для этой лабораторной работы нам нужен модуль exploit/multi/http/apache_mod_cgi_bash_env_exec. Столбец Disclosure Date указывает дату публикации уязвимости. Столбец Rank описывает надежность эксплойта (например, Excellent, Good или Normal). Наконец, столбец Check указывает, поддерживает ли модуль безопасную проверку на наличие уязвимости.
Анализ информации о модуле (info)
На этом этапе вы выберете найденный модуль эксплойта и проанализируете его детали.
Чтобы указать Metasploit, с каким модулем вы хотите работать, используйте команду use, за которой следует имя модуля (путь, отображенный в результатах поиска).
Введите следующую команду в приглашении msf6 >:
use exploit/multi/http/apache_mod_cgi_bash_env_exec
Обратите внимание, что приглашение изменилось и теперь включает имя модуля, что означает его активацию. Перед настройкой параметров рекомендуется изучить, что именно делает этот модуль. Это можно сделать с помощью команды info.
info
Команда info предоставляет массу полезных данных. Сюда входят сведения о разработчиках модуля, авторах и исследователях. Также отображается список базовых опций — параметров, которые необходимо настроить на следующем этапе. Кроме того, здесь приведено подробное описание того, как работает уязвимость и как именно эксплойт использует её. Наконец, предоставляются ссылки на внешние базы данных (например, National Vulnerability Database) для дополнительного изучения.
Чтение этой информации — часть профессиональной дисциплины оператора. Модулю может потребоваться специфический путь, протокол или определенная среда. Если вы проигнорируете этот контекст, вы будете действовать наугад.
Уделите время чтению описания, чтобы понять механику уязвимости Shellshock и то, как этот модуль эксплуатирует переменные окружения CGI.
Настройка целей и параметров эксплойта
На этом этапе вы настроите необходимые параметры, чтобы направить модуль эксплойта на вашу конкретную цель.
Каждый модуль требует установки определенных параметров. Чтобы просмотреть текущую конфигурацию, используйте команду show options:
show options
Посмотрите на столбец Required. Если для параметра указано yes, его необходимо настроить перед запуском модуля. Наиболее распространенные параметры, которые нужно задать: RHOSTS (Remote Host — IP-адрес вашей цели) и RPORT (Remote Port — порт, на котором запущен уязвимый сервис). Для модулей веб-эксплойтов часто также требуется TARGETURI, который указывает Metasploit, какой HTTP-путь должен получить вредоносный запрос.
Наша уязвимая цель запущена локально на порту 8080, а уязвимый CGI-путь — /cgi-bin/vulnerable. Используйте команду set для настройки этих параметров:
set RHOSTS 127.0.0.1
set RPORT 8080
set TARGETURI /cgi-bin/vulnerable
После установки значений всегда полезно убедиться, что изменения применились корректно. Снова выполните команду show options:
show options
Теперь вы должны увидеть 127.0.0.1 в столбце Current Setting для RHOSTS, 8080 для RPORT и /cgi-bin/vulnerable для TARGETURI.
Проверка статуса уязвимости (check)
На этом этапе вы проверите, действительно ли цель уязвима, прежде чем запускать атаку.
Рабочий процесс check существует, потому что безопасность и надежность имеют первостепенное значение. Предварительное подтверждение уязвимости снижает уровень лишнего шума, количество неудачных попыток и риск нарушения стабильности сервиса.
В профессиональном тестировании на проникновение слепой запуск эксплойтов может привести к сбою сервисов или срабатыванию систем безопасности. К счастью, многие модули Metasploit (включая тот, который мы используем) поддерживают команду check.
Команда check отправляет зондирующий запрос к цели, чтобы определить наличие уязвимости, не запуская при этом полноценную полезную нагрузку.
Выполните следующую команду в консоли Metasploit:
check
В этой лабораторной работе цель с Shellshock намеренно сделана уязвимой, поэтому вы должны увидеть вывод, похожий на этот:
[+] 127.0.0.1:8080 - The target is vulnerable.
Это подтверждает, что цель подвержена воздействию модуля. Вы завершили основной рабочий процесс использования модуля эксплойта: поиск подходящего модуля, чтение документации, настройка необходимых параметров и проверка цели перед эксплуатацией.
Если вы хотите получить дополнительное ручное подтверждение вне Metasploit, вы можете протестировать сервис из другого терминала с помощью curl http://127.0.0.1:8080 и убедиться, что CGI-путь существует по адресу http://127.0.0.1:8080/cgi-bin/vulnerable.
Поскольку мы выполнили задачу по изучению методологии работы с модулями, теперь можно выйти из консоли Metasploit:
exit
Резюме
Поздравляем! Вы успешно завершили лабораторную работу «Понимание модулей эксплойтов».
В этой работе вы изучили фундаментальную методологию использования уязвимостей с помощью Metasploit Framework. Вы потренировались искать реальный эксплойт Shellshock, анализировать описания и требования модулей, настраивать параметры удаленной цели, такие как RHOSTS, RPORT и TARGETURI, а также использовать встроенную функцию check для безопасной проверки уязвимости цели. Эти шаги составляют основной рабочий процесс любого специалиста по тестированию на проникновение при работе с модулями эксплойтов.



