Поиск модулей в Metasploit

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

Введение

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. Теперь вы хорошо подготовлены к поиску нужных инструментов для ваших будущих задач по тестированию на проникновение.