0 знаков
23. Поиск сетевых уязвимостей с помощью Metasploit Framework (MSF)
Инструменты- Metasploit Framework (MSF)
- Nmap
- CrackMapExec
Кратко- Metasploit Framework - популярная платформа с открытым исходным кодом для поиска и тестирования уязвимостей.
- Фреймворк написан на языке Ruby и позволяет хранить результаты тестирования в базе данных PostgreSQL.
- Модули Metasploit делятся на несколько типов: Exploit, Payload, Post, Encoder, NOP и Auxiliary.
- Основные команды, используемые в Metasploit:
search
,info
,show
,use
,back
,check
иset
.- Настройка базы данных Metasploit и рабочего пространства является важным этапом работы с фреймворком.
- В Metasploit можно использовать многофункциональный сканер Nmap для сканирования хостов на наличие уязвимостей.
- База данных Metasploit DB хранит информацию о целях сканирования, обнаруженных службах, найденных уязвимостях и других данных.
- В статье обсуждаются команды для просмотра и использования собранных данных в базе данных Metasploit DB.
- Metasploit Framework используется для поиска сетевых уязвимостей и может быть настроен для быстрого заполнения нужных параметров в своих внутренних модулях.
В предыдущем уроке продолжили знакомство с CrackMapExec и научились с помощью его модулей искать уязвимости. В этом уроке познакомимся с инструментом Metasploit Framework (сокр. MSF или Metasploit).
Metasploit - популярная платформа с открытым исходным кодом для поиска и тестирования уязвимостей. Фреймворк написан на языке Ruby.
Базовые понятия и структура
В Metasploit Framework есть возможность хранить результаты тестирования в базе данных PostgreSQL. Об ее инициализации будет позже. Кстати, использовать базу данных необязательно, она не является обязательным условием работы фреймворка, а лишь упрощает работу с ним.
Модули Metasploit делятся на несколько типов:
- Exploit - модули, эксплуатирующие определенные уязвимости на целевой машине.
- Payload - модули, которые запускаются после компрометации целевой системы (отработки эксплойта). Например, установка соединения с целевой машиной.
- Post - модули, которые запускаются после компрометации целевой системы. Например, сбор паролей, данных и так далее.
- Encoder - модули для обфускации.
- NOP - используется для подгонки исполняемых файлов под нужный раздел, путем вставки ничего не означающих ассемблерных инструкций.
- Auxiliary - модули для анализа трафика, сканирования сети и т.д.
Так же познакомимся с основными командами, которыми мы будем пользоваться в Metasploit:
- search - поиск модулей.
- info - отобразить информацию о модуле.
- show - вывести список модулей указанного типа.
- use - использовать выбранный модуль.
- back - отключить использование выбранного модуля / вернуться назад.
- check - проверить целевую систему на наличие указанной уязвимости.
- set - сохранить в параметры выбранного модуля указанное значение.
- run - запустить модуль.
- sessions - отобразить список доступных сессий.
Более подробно о командах можно почитать здесь: [ссылка доступна авторизованным пользователям]
Начальная настройка Metasploit Framework и базы данных
Несмотря на наличие графического интерфейса, мы будет использовать Metasploit через консоль. Получив навыки работы с консолью, вы без труда разберётесь с графическим интерфейсом.
Для начала нам нужно настроить базу данных. Проверим, включена ли служба PostgreSQL:
systemctl status postgresql
Для доступа необходимо авторизоваться на сайте Codebra.
Включим ее:
sudo systemctl enable --now postgresql
Для доступа необходимо авторизоваться на сайте Codebra.
Теперь проверим базу данных Metasploit:
sudo msfdb status
Для доступа необходимо авторизоваться на сайте Codebra.
В последней строке указано отсутствие конфигурационного файла. Инициализируем базу данных:
sudo msfdb init
Для доступа необходимо авторизоваться на сайте Codebra.
И еще раз проверим ее статус:
Для доступа необходимо авторизоваться на сайте Codebra.
Первоначальную настройку базы данных выполнили, можем запускать Metasploit Framework:
msfconsole
Для доступа необходимо авторизоваться на сайте Codebra.
Проверяем, подключился ли фреймворк к базе данных:
db_status
Для доступа необходимо авторизоваться на сайте Codebra.
Переходим к настройке рабочего пространства.
Настройка рабочего пространства (workspace) в Metasploit
Не очень удобно, когда все результаты хранятся в одном месте. Чтобы отделить один проект от другого, необходимо создать рабочее пространство. Выведем существующие:
workspace
Для доступа необходимо авторизоваться на сайте Codebra.
Звездочка указывает на выбранное рабочее пространство. Создадим новое с именем goad
:
workspace -a goad
Для доступа необходимо авторизоваться на сайте Codebra.
Рабочее пространство goad
уже выбрано. Если необходимо выбрать другое рабочее пространство, выполните команду workspace
:
workspace <имя_workspace>
Знакомимся со встроенной в Metasploit утилитой Nmap
С многофункциональным сканером Nmap мы встречались несколько раз: искали активные хосты, службы и сканировали хосты на наличие уязвимостей. Точно так же можно использовать Nmap в Metasploit. Все результаты сканирования будут сохранены в базе данных, которую мы инициализировали ранее. Это очень удобно. Вместо nmap
используем db_nmap
:
db_nmap -PN -sC -sV 192.168.56.10,11,12,22,23
Точно такой же вывод:
Для доступа необходимо авторизоваться на сайте Codebra.
Далее разберемся, где и как смотреть сохраненные результаты.
Работа с базой данных Metasploit Framework
База данных Metasploit DB хранит информацию о целях сканирования, обнаруженных службах, найденных уязвимостях, собранных учетных данных и других данных, полученных во время тестирования. С командами db_status
, workspace
и db_nmap
познакомились, теперь научимся просматривать собранные данные, а немного позже их использовать для быстрого заполнения требуемых параметров в модулях.
Просмотр собранной информации о целях сканирования выполняется командой hosts
:
hosts
Для доступа необходимо авторизоваться на сайте Codebra.
С помощью команды services
можно получить информацию об активных сервисах, связанных с целями сканирования:
services
Для доступа необходимо авторизоваться на сайте Codebra.
Команда vulns
выведет список обнаруженных уязвимостей:
vulns
Для доступа необходимо авторизоваться на сайте Codebra.
Команда creds
выведет собранные во время тестирования учетные данные:
creds
Для доступа необходимо авторизоваться на сайте Codebra.
С базой данных Metasploit DB разобрались, теперь попробуем поискать уязвимости. Переходим к следующему разделу.
Поиск сетевых уязвимостей с помощью Metasploit Framework
Теперь попробуем запустить модуль для получения информации об удаленном SMB сервере и поддерживаемых версиях (если поддерживается первая версия SMB, то мы можем получить информацию об операционной системе хоста). Так же определим подписывается ли SMB. Подключим модуль auxiliary/scanner/smb/smb_version
:
use auxiliary/scanner/smb/smb_version
Далее введем команду options
, чтобы узнать обязательные параметры (в колонке Required
написано yes
).
Для доступа необходимо авторизоваться на сайте Codebra.
Параметр RHOSTS
обязательный. В описании написано предназначение параметра. Как правило, во всех модулях они выполняют одинаковые функции. RHOSTS
- список целевых хостов.
Мы можем указать список хостов вручную, используя команду set
:
set RHOSTS 192.168.56.10 192.168.56.11 192.168.56.12 192.168.56.22 192.168.56.23
Для доступа необходимо авторизоваться на сайте Codebra.
Постоянно вводить параметры вручную быстро надоест, поэтому научимся использовать возможности Metasploit для быстрого заполнения нужных полей:
services -R
Теперь запустим сканер:
run
Для доступа необходимо авторизоваться на сайте Codebra.
В результатах работы на первый взгляд сложно что-то разобрать. Мы сейчас и не будем этим заниматься. Введем еще раз команду vulns
:
vulns
Для доступа необходимо авторизоваться на сайте Codebra.
Ранее таблица была пустой, но после сканирования модулем auxiliary/scanner/smb/smb_version
были найдены уязвимости и добавлены в базу данных Metasploit DB. Найденная нами уязвимость SMB Signing Is Not Required
на самом деле таковой не является. В дальнейшем мы научимся злоупотреблять этим мисконфигом в Relay-атаках, но пока не будем забегать вперед.
Кстати, ранее мы уже определили отсутствие подписи SMB у двух хостов с помощью CrackMapExec:
crackmapexec smb 192.168.56.0-23
Для доступа необходимо авторизоваться на сайте Codebra.
Поиск модулей в Metasploit
Для поиска модулей используется команда search
:
search smb
Для доступа необходимо авторизоваться на сайте Codebra.
Чтобы сузить поиск, например, только проверенные модули, указываем дополнительно <поле>:<значение>
:
search check:yes smb
Для доступа необходимо авторизоваться на сайте Codebra.
Далее можно использовать модуль двумя способами. Либо полностью указать его имя:
use exploit/windows/smb/ms17_010_eternalblue
Либо указать порядковый номер из первого столбца:
use 7
Думаю, этого достаточно для первого знакомства с Metasploit Framework. Мы настроили базу данных, научились создавать рабочие пространства для разделения проектов, использовать db_nmap, просматривать собранные данные в базе данных и использовать встроенные модули для поиска сетевых уязвимостей.
В следующем разделе обсудим другие источники и способы сбора информация для дальнейшего прохождения лабораторного стенда GOAD. Переходим к итогам подраздела.
Источники и похожее- [ссылка доступна авторизованным пользователям]
- [ссылка доступна авторизованным пользователям]
- [ссылка доступна авторизованным пользователям]
- [ссылка доступна авторизованным пользователям]
Тест
Похожие уроки Codebra
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ