Введение
Metasploit Framework — это мощный инструмент, используемый специалистами по безопасности для тестирования на проникновение и оценки уязвимостей. Он содержит обширную базу данных модулей, включая эксплойты, вспомогательные сканеры, полезные нагрузки (payloads) и многое другое. При наличии тысяч доступных модулей умение эффективно искать нужный является критически важным навыком.
В этой лабораторной работе вы изучите основные методы поиска модулей в Metasploit. Мы начнем с простых поисковых запросов по ключевым словам, а затем рассмотрим, как уточнять эти запросы с помощью фильтров по типу модуля и конкретным идентификаторам CVE. Наконец, вы научитесь просматривать детали модуля и выбирать его для использования.
Использование команды search с именем службы, например ssh
На этом шаге вы начнете с запуска консоли Metasploit и выполнения базового поиска модулей, связанных с определенной службой. Команда search является вашим основным инструментом для навигации по обширной библиотеке модулей Metasploit.
Сначала откройте терминал и запустите консоль Metasploit Framework, выполнив команду msfconsole. Загрузка может занять некоторое время.
msfconsole
Вы увидите баннер и приглашение командной строки Metasploit, которое выглядит как msf6 >.
Теперь давайте выполним поиск всех модулей, связанных со службой SSH (Secure Shell). Введите следующую команду в консоли Metasploit и нажмите Enter:
search ssh
Metasploit отобразит список всех модулей, в названии или описании которых есть "ssh". Результат будет представлен в виде таблицы с несколькими столбцами:
- #: Порядковый номер модуля в результатах поиска.
- Name: Полный путь и название модуля.
- Disclosure Date: Дата публичного раскрытия уязвимости.
- Rank: Оценка надежности модуля (например,
excellent,great,good). - Check: Указывает, имеет ли модуль метод проверки (check method) для определения уязвимости цели без эксплуатации.
- Description: Краткое описание того, что делает модуль.
Ваш вывод будет выглядеть примерно так (список может быть длиннее, а версии — отличаться):
msf6 > search ssh
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/scanner/ssh/ssh_login 1999-01-01 normal No SSH Login Check Scanner
1 auxiliary/scanner/ssh/ssh_login_pubkey 2002-07-23 normal No SSH Public Key Login Scanner
2 exploit/linux/ssh/libssh_auth_bypass 2018-10-16 great Yes LibSSH Authentication Bypass
3 auxiliary/scanner/ssh/ssh_enumusers 2018-08-20 normal No OpenSSH User Enumeration
4 post/linux/manage/ssh_authorized_keys normal No Linux Manage SSH Authorized Keys
...
Этот простой поиск дает вам широкий обзор всех доступных модулей, связанных с SSH.
Фильтрация результатов поиска по типу модуля, например exploit или auxiliary
На этом шаге вы научитесь сужать результаты поиска, фильтруя их по определенному типу модуля. Предыдущий поиск вернул различные типы модулей, такие как auxiliary, exploit и post. Часто вы знаете, какой тип модуля вам нужен.
Metasploit позволяет фильтровать поиск с помощью ключевых слов, таких как type. Наиболее распространенные типы:
exploit: Модули, которые используют уязвимость для получения контроля.auxiliary: Модули для сканирования, фаззинга (fuzzing), перехвата (sniffing) и других действий, которые не являются прямыми эксплойтами.post: Модули пост-эксплуатации, которые запускаются на скомпрометированной системе.
Давайте уточним наш предыдущий поиск, чтобы найти только модули типа exploit, связанные с SSH. Используйте фильтр type: в вашем поисковом запросе:
search type:exploit ssh
Теперь вывод будет ограничен модулями, классифицированными как эксплойты:
msf6 > search type:exploit ssh
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/linux/ssh/libssh_auth_bypass 2018-10-16 great Yes LibSSH Authentication Bypass
1 exploit/multi/ssh/sshexec 2004-01-01 manual No SSH Exec
...
Аналогично, если бы вы искали сканер для сбора информации о службе SSH, вы бы искали модули типа auxiliary:
search type:auxiliary ssh
Эта команда вернет список сканеров и других инструментов, не являющихся эксплойтами, для SSH.
msf6 > search type:auxiliary ssh
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/scanner/ssh/ssh_login 1999-01-01 normal No SSH Login Check Scanner
1 auxiliary/scanner/ssh/ssh_enumusers 2018-08-20 normal No OpenSSH User Enumeration
...
Использование фильтров по типу — это мощный способ быстро найти нужный вам инструмент.
Поиск по конкретному идентификатору CVE
На этом шаге вы научитесь искать модули, связанные с конкретным идентификатором Common Vulnerabilities and Exposures (CVE). Когда вы знаете CVE ID уязвимости, которую хотите использовать, это самый прямой способ найти соответствующий эксплойт.
CVE — это уникальный идентификатор общеизвестной уязвимости в области кибербезопасности. Модули Metasploit часто помечаются CVE, которые они устраняют.
Вы можете искать по CVE, используя фильтр cve:. Например, давайте найдем модуль, связанный с CVE-2018-15473, уязвимостью перечисления пользователей (user enumeration) в некоторых версиях OpenSSH.
search cve:2018-15473
Этот поиск очень специфичен и должен вернуть только те модули, которые предназначены для эксплуатации этой конкретной уязвимости.
msf6 > search cve:2018-15473
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/scanner/ssh/ssh_enumusers 2018-08-20 normal No OpenSSH User Enumeration
Как вы можете видеть, поиск точно указывает на соответствующий вспомогательный модуль для этого CVE. Поиск по CVE является важным методом, когда вы работаете с отчетом о сканировании уязвимостей или консультацией по безопасности.
Использование команды info для просмотра подробной информации о модуле
На этом шаге вы научитесь получать подробную информацию о модуле перед его использованием. Найдя перспективный модуль, важно понять, что он делает, какие опции требует и кто его разработал. Команда info предоставляет всю эту информацию.
Вы можете использовать команду info либо с полным именем модуля, либо с его порядковым номером из результатов последнего поиска. Давайте получим больше информации о модуле ssh_enumusers, который мы нашли на предыдущем шаге.
Вы можете использовать его полное имя:
info auxiliary/scanner/ssh/ssh_enumusers
В качестве альтернативы, если он был элементом 0 в вашем последнем поиске, вы могли бы просто использовать info 0. Использование полного имени, как правило, более надежно.
Команда отобразит подробную страницу о модуле:
msf6 > info auxiliary/scanner/ssh/ssh_enumusers
Name: OpenSSH User Enumeration
Module: auxiliary/scanner/ssh/ssh_enumusers
License: Metasploit Framework License (BSD)
Rank: Normal
Disclosed: 2018-08-20
Provided by:
Justin Gardner
Check supported:
No
Basic options:
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 22 yes The target port (TCP)
THREADS 1 yes The number of concurrent threads (max one per host)
USER_FILE yes File containing usernames, one per line
Description:
This module enumerates valid usernames on OpenSSH servers by exploiting
a subtle timing discrepancy in the C library's handling of password
authentication.
References:
https://nvd.nist.gov/vuln/detail/CVE-2018-15473
https://www.exploit-db.com/exploits/45233/
Этот вывод предоставляет вам важную информацию, включая требуемые опции (RHOSTS, USER_FILE и т. д.), полное описание назначения модуля и ссылки на исходные раскрытия уязвимостей. Всегда просматривайте эту информацию перед использованием модуля.
Выбор модуля для использования с командой use
На этом заключительном шаге вы научитесь выбирать модуль, чтобы сделать его активным. После того как вы определили и изучили модуль, вам нужно загрузить его в контекст фреймворка для настройки и запуска. Это делается с помощью команды use.
Подобно команде info, за командой use может следовать полное имя модуля или его порядковый номер из результатов поиска. Давайте выберем модуль ssh_enumusers.
use auxiliary/scanner/ssh/ssh_enumusers
После выполнения этой команды вы заметите, что ваш командный интерпретатор Metasploit изменится. Теперь он будет включать имя активного модуля, указывая, что он загружен и готов к настройке.
msf6 > use auxiliary/scanner/ssh/ssh_enumusers
msf6 auxiliary(scanner/ssh/ssh_enumusers) >
Новый командный интерпретатор msf6 auxiliary(scanner/ssh/ssh_enumusers) > подтверждает, что модуль загружен. Отсюда вы обычно будете использовать такие команды, как show options, чтобы увидеть, какие параметры необходимо установить, set для их настройки и, наконец, run или exploit для выполнения модуля. Мы не будем запускать модуль в этой лаборатории, но его выбор является важным заключительным шагом в процессе поиска.
Чтобы вернуться к основному командному интерпретатору msf6 >, вы можете использовать команду back.
Резюме
В этой лаборатории вы освоили основные навыки поиска модулей в Metasploit Framework. Теперь вы можете точно и эффективно ориентироваться среди тысяч доступных модулей.
Вы отработали использование основных команд для этого процесса:
search: Для поиска модулей по ключевым словам, таким как названия служб.search type:<type>: Для фильтрации результатов по конкретным типам модулей, таким какexploitилиauxiliary.search cve:<cveid>: Для точного определения модулей, связанных с конкретной уязвимостью CVE.info: Для проверки деталей модуля, его опций и назначения.use: Для выбора и загрузки модуля в контекст фреймворка.
Овладение этими методами поиска является фундаментальным шагом на пути к профессиональному владению Metasploit. Теперь вы хорошо подготовлены к поиску нужных инструментов для ваших будущих задач по тестированию на проникновение.


