Сбор информации и вспомогательные модули (Auxiliary Modules)

КибербезопасностьBeginner
Практиковаться сейчас

Введение

Добро пожаловать в лабораторную работу «Сбор информации и вспомогательные модули»!

Когда большинство людей думают о Metasploit Framework, они сразу представляют себе эксплуатацию — запуск полезных нагрузок (payloads) для компрометации уязвимых систем. Однако Metasploit также является мощным инструментом для этапов разведки и сбора информации при проведении тестирования на проникновение.

В Metasploit есть категория модулей, называемых вспомогательными модулями (Auxiliary modules). В отличие от модулей эксплойтов, вспомогательные модули не выполняют полезную нагрузку на целевой системе. Вместо этого они предназначены для выполнения таких задач, как сканирование портов, идентификация служб, фаззинг и сканирование уязвимостей.

Это различие важно, поскольку оно подчеркивает, что эксплуатация — лишь один из этапов взаимодействия. Качественная наступательная работа также зависит от структурированной разведки, перечисления (enumeration) и проверки данных.

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

Поиск вспомогательных модулей

На этом этапе вы запустите консоль Metasploit Framework и научитесь искать вспомогательные модули.

Metasploit содержит тысячи модулей. Чтобы найти то, что вам нужно, можно использовать встроенную команду search. Команда поиска позволяет фильтровать модули по типу, имени, платформе и другим критериям.

Сначала откройте терминал и запустите консоль Metasploit. Мы будем использовать флаг -q для запуска в «тихом» режиме, который пропускает большой баннер в стиле ASCII-арт и ускоряет запуск консоли.

Умение эффективно искать — это практический навык при работе с Metasploit. Фреймворк слишком велик, чтобы просматривать его вручную каждый раз, поэтому обучение сужению круга поиска модулей является частью эффективной работы с ним.

Введите следующую команду в терминале:

msfconsole -q

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

Теперь давайте найдем модуль, который может выполнять базовое сканирование TCP-портов. Простой поиск по ключевым словам более надежен в разных версиях Metasploit, чем использование множества фильтров поиска.

Выполните следующую команду в консоли Metasploit:

search portscan

Вы должны увидеть вывод, похожий на этот:

Matching Modules
================

   ##  Name                                              Disclosure Date  Rank    Check  Description
   -  ----                                              ---------------  ----    -----  -----------
   0  auxiliary/scanner/portscan/ack                                     normal  No     TCP ACK Firewall Scanner
   1  auxiliary/scanner/portscan/ftpbounce                               normal  No     FTP Bounce Port Scanner
   2  auxiliary/scanner/portscan/syn                                     normal  No     TCP SYN Port Scanner
   3  auxiliary/scanner/portscan/tcp                                     normal  No     TCP Port Scanner
   4  auxiliary/scanner/portscan/xmas                                    normal  No     TCP "XMas" Port Scanner

Результаты поиска отображают список подходящих модулей. Каждый модуль имеет определенный путь (например, auxiliary/scanner/portscan/tcp), ранг и краткое описание. На следующем этапе мы выберем один из этих модулей для использования.

Настройка параметров цели (RHOSTS)

На этом этапе вы выберете конкретный модуль сканирования портов и настроите его параметры.

Чтобы сообщить Metasploit, с каким модулем вы хотите работать, используйте команду use, за которой следует путь к модулю. Мы будем использовать стандартный сканер TCP-портов.

Выполните следующую команду в консоли Metasploit:

use auxiliary/scanner/portscan/tcp

Обратите внимание, что приглашение изменилось на msf6 auxiliary(scanner/portscan/tcp) >. Это означает, что модуль теперь активен.

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

show options

Вывод отобразит таблицу параметров. Обратите внимание на столбец Required. Любой параметр, помеченный как yes, должен иметь значение перед запуском модуля.

Module options (auxiliary/scanner/portscan/tcp):

   Name         Current Setting  Required  Description
   ----         ---------------  --------  -----------
   CONCURRENCY  10               yes       The number of concurrent ports to check per host
   DELAY        0                yes       The delay between connections, per thread, in milliseconds
   JITTER       0                yes       The delay jitter factor (maximum value by which to +/- DELAY) in milliseconds.
   PORTS        1-10000          yes       Ports to scan (e.g. 22-25,80,110-900)
   RHOSTS                        yes       The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
   THREADS      1                yes       The number of concurrent threads (max one per host)
   TIMEOUT      1000             yes       The socket connect timeout in milliseconds

Самым важным параметром является RHOSTS (Remote Hosts), который определяет целевой IP-адрес или диапазон сети. Для этой лабораторной работы мы будем сканировать нашу собственную локальную машину, на которой запущены несколько служб.

Установите целевой IP-адрес на 127.0.0.1 (localhost) с помощью команды set:

set RHOSTS 127.0.0.1

По умолчанию этот модуль сканирует порты от 1 до 10000. Чтобы сканирование завершилось быстро, давайте ограничим его несколькими конкретными портами, на которых, как мы знаем, должны работать службы в этой лабораторной среде: FTP на 21, HTTP на 80 и PostgreSQL на 5432.

Установите параметр PORTS для сканирования только этих портов:

set PORTS 21,80,5432

Вы можете снова выполнить show options, чтобы убедиться, что настройки применены правильно.

Выполнение сканирования и сохранение результатов

На этом этапе вы выполните настроенное сканирование портов.

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

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

Сначала давайте убедимся, что Metasploit подключен к своей базе данных PostgreSQL. Выполните следующую команду:

db_status

Вы должны увидеть вывод, подтверждающий подключение, например:

[*] Connected to msf. Connection type: postgresql.

Теперь, когда мы подтвердили, что база данных активна, а параметры модуля настроены, пришло время запустить сканирование. Вы можете запустить модуль, введя run или exploit. Для вспомогательных модулей run является стандартным соглашением.

Выполните сканирование:

run

Metasploit попытается подключиться к указанным портам на целевом IP-адресе. Поскольку мы ограничили сканирование тремя портами, оно должно завершиться практически мгновенно.

Вы увидите вывод, похожий на следующий, указывающий, какие порты открыты:

[+] 127.0.0.1             - 127.0.0.1:21 - TCP OPEN
[+] 127.0.0.1             - 127.0.0.1:80 - TCP OPEN
[+] 127.0.0.1             - 127.0.0.1:5432 - TCP OPEN
[*] 127.0.0.1:            - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

Символ [+] указывает на успешную находку (открытый порт). В фоновом режиме Metasploit принял эту информацию и сохранил её непосредственно в свою базу данных.

Просмотр хостов и служб в базе данных

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

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

Чтобы просмотреть список всех целевых систем, которые Metasploit обнаружил и сохранил, используйте команду hosts:

hosts

Вывод отобразит таблицу известных хостов. Вы должны увидеть IP-адрес localhost, который мы только что сканировали:

Hosts
=====

address    mac  name  os_name  os_flavor  os_sp  purpose  info  comments
-------    ---  ----  -------  ---------  -----  -------  ----  --------
127.0.0.1             Unknown                    device

Чтобы увидеть конкретные открытые порты и службы, обнаруженные на этих хостах, используйте команду services:

services

Эта команда делает запрос к базе данных и перечисляет все открытые порты, найденные во время сканирования:

Services
========

host       port  proto  name  state  info  resource  parents
----       ----  -----  ----  -----  ----  --------  -------
127.0.0.1  21    tcp          open         {}
127.0.0.1  80    tcp          open         {}
127.0.0.1  5432  tcp          open         {}

На данном этапе базовый сканер TCP-портов фиксирует, что эти порты открыты, но он может не заполнять подробные имена служб или информацию о версиях. По мере запуска более продвинутых вспомогательных модулей эта таблица будет обогащаться дополнительными деталями.

Вы успешно выполнили задачи лабораторной работы! Чтобы выйти из консоли Metasploit и вернуться в обычный терминал Linux, введите:

exit

Резюме

Поздравляем! Вы успешно завершили лабораторную работу «Сбор информации и вспомогательные модули».

В этой работе вы узнали, что Metasploit — это универсальный фреймворк, возможности которого выходят далеко за рамки эксплуатации. Вы попрактиковались в навигации по консоли Metasploit, поиске конкретных вспомогательных модулей и настройке важных параметров, таких как RHOSTS и PORTS. Кроме того, вы выполнили сканирование сетевых портов и использовали мощную интеграцию Metasploit с базой данных для автоматического сохранения и просмотра данных разведки с помощью команд hosts и services.

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