Введение
Metasploit Framework — это мощный инструмент с открытым исходным кодом для разработки, тестирования и выполнения эксплойт-кода против удаленной целевой машины. Критически важной частью любой оценки безопасности является сбор информации, который включает сканирование портов для выявления открытых портов и запущенных служб.
Metasploit интегрирует популярный сканер Nmap через команду db_nmap. Ключевое преимущество db_nmap заключается в том, что он автоматически сохраняет результаты сканирования непосредственно в базу данных Metasploit, позволяя легко управлять собранными данными и выполнять запросы к ним.
В этой лабораторной работе вы научитесь выполнять базовое сканирование портов с помощью db_nmap и просматривать результаты в консоли Metasploit.
Выбор рабочей области для результатов сканирования
На этом шаге вы запустите консоль Metasploit и создадите выделенную рабочую область. Рабочие области в Metasploit помогают организовать ваши проекты, разделяя хосты, службы и другие собранные данные для каждой оценки.
Сначала откройте терминал и запустите консоль Metasploit Framework, выполнив следующую команду. Загрузка может занять некоторое время.
msfconsole
Как только появится приглашение msfconsole (msf6 >), вы можете создать и переключиться на новую рабочую область. Мы назовем нашу рабочую область portscan_lab. Используйте флаг -a для добавления новой рабочей области.
workspace -a portscan_lab
Вы должны увидеть подтверждающее сообщение.
[*] Added workspace: portscan_lab
[*] Workspace: portscan_lab
Чтобы убедиться, что вы находитесь в правильной рабочей области, вы можете выполнить команду workspace без аргументов. Звездочка * указывает на текущую активную рабочую область.
workspace
Вывод покажет все доступные рабочие области:
default
* portscan_lab
Теперь, когда ваша рабочая область настроена, вы готовы начать сканирование.
Выполнение TCP SYN сканирования с помощью db_nmap -sS
На этом шаге вы выполните TCP SYN сканирование. Этот тип сканирования, также известный как "стелс-сканирование" или "полуоткрытое сканирование", является популярным выбором, поскольку он быстрый и менее вероятно будет залогирован целевыми системами. Флаг -sS указывает Nmap выполнить SYN сканирование.
В приглашении msfconsole используйте команду db_nmap для сканирования вашей локальной машины (localhost). Результаты будут автоматически сохранены в вашей рабочей области portscan_lab.
db_nmap -sS localhost
Команда выполнит Nmap и отобразит его прогресс и результаты. Вывод будет похож на стандартный вывод Nmap.
[*] Nmap: Starting Nmap 7.94 ( https://nmap.org ) at ...
[*] Nmap: Nmap scan report for localhost (127.0.0.1)
[*] Nmap: Host is up (0.000084s latency).
[*] Nmap: Other addresses for localhost (not scanned): ::1
[*] Nmap: Not shown: 997 closed tcp ports (reset)
[*] Nmap: PORT STATE SERVICE
[*] Nmap: 22/tcp open ssh
[*] Nmap: 5432/tcp open postgresql
[*] Nmap: 6200/tcp open oracle-tns
[*] Nmap: Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
Сканирование выявило несколько открытых портов, и эта информация теперь хранится в базе данных Metasploit.
Выполнение сканирования для определения версий служб с помощью db_nmap -sV
На этом шаге вы выполните более детальное сканирование для определения конкретных версий служб, работающих на открытых портах. Знание версий служб имеет решающее значение для поиска потенциальных уязвимостей. Флаг -sV включает определение версий в Nmap.
Выполните следующую команду в приглашении msfconsole. Это сканирование займет немного больше времени, чем предыдущее, поскольку Nmap необходимо взаимодействовать с каждым открытым портом для получения информации о версии.
db_nmap -sV localhost
Вывод будет более подробным, чем при SYN сканировании. Обратите внимание на новый столбец VERSION, который содержит информацию, собранную в результате зондирования версий.
[*] Nmap: Starting Nmap 7.94 ( https://nmap.org ) at ...
[*] Nmap: Nmap scan report for localhost (127.0.0.1)
[*] Nmap: Host is up (0.00011s latency).
[*] Nmap: Other addresses for localhost (not scanned): ::1
[*] Nmap: Not shown: 997 closed tcp ports (reset)
[*] Nmap: PORT STATE SERVICE VERSION
[*] Nmap: 22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
[*] Nmap: 5432/tcp open postgresql PostgreSQL DB 14.10 (Ubuntu 14.10-0ubuntu0.22.04.1)
[*] Nmap: 6200/tcp open unknown
[*] Nmap: Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
[*] Nmap: Nmap done: 1 IP address (1 host up) scanned in 6.78 seconds
Эта новая информация также автоматически добавляется в базу данных, обновляя записи для обнаруженного хоста и его служб.
Отображение обнаруженных хостов в базе данных с помощью команды hosts
На этом шаге вы узнаете, как запрашивать базу данных Metasploit для просмотра хостов, обнаруженных во время ваших сканирований. Команда hosts предоставляет сводку всех хостов, хранящихся в текущей рабочей области.
Выполните команду hosts в приглашении msfconsole:
hosts
Вывод будет представлять собой таблицу со списком всех найденных хостов. Поскольку вы сканировали только localhost, вы увидите одну запись.
Hosts
=====
address mac name os_name os_flavor os_sp purpose info comments
------- --- ---- ------- --------- ----- ------- ---- --------
127.0.0.1 localhost Linux Linux device
Эта команда — быстрый способ увидеть все цели, которые были идентифицированы и сохранены в рабочей области вашего проекта.
Отображение обнаруженных служб с помощью команды services
На этом шаге вы используете команду services для просмотра подробной информации об открытых портах и службах, обнаруженных на хостах в вашей базе данных. Эта команда особенно полезна после выполнения сканирования для определения версий.
Выполните команду services в приглашении msfconsole:
services
Вывод будет представлять собой подробную таблицу всех найденных служб. Обратите внимание, как она включает порт, протокол, имя службы и информацию о версии, которую вы собрали на Шаге 3.
Services
========
Host Port Proto Name State Info
---- ---- ----- ---- ----- ----
127.0.0.1 22 tcp ssh open OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
127.0.0.1 5432 tcp postgresql open PostgreSQL DB 14.10 (Ubuntu 14.10-0ubuntu0.22.04.1)
127.0.0.1 6200 tcp unknown open
Команда services позволяет быстро просмотреть все потенциальные точки входа в целевые системы, что является фундаментальной частью планирования следующего этапа оценки безопасности.
Итоги
В этой лабораторной работе вы успешно освоили основы выполнения сканирования портов в Metasploit Framework.
Вы начали с настройки выделенного рабочего пространства для организации вашего проекта. Затем вы использовали команду db_nmap для выполнения как быстрого сканирования TCP SYN (-sS), так и более детального сканирования для определения версий служб (-sV). Наконец, вы научились запрашивать базу данных Metasploit с помощью команд hosts и services для просмотра автоматически сохраненных результатов сканирования.
Этот рабочий процесс является краеугольным камнем этапа сбора информации при тестировании на проникновение и анализе безопасности.


