Искать
Вы превысили запрос на
0 знаков

23. Поиск сетевых уязвимостей с помощью Metasploit Framework (MSF)

0
0
Не пройден
Автор статьи никого не призывает к правонарушениям и отказывается нести ответственность за ваши действия. Вся информация предоставлена исключительно в ознакомительных целях. Все действия происходят на виртуальных машинах и внутри локальной сети автора. Спасибо!
Инструменты

- 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
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

Включим ее:

ПРИМЕР
 
sudo systemctl enable --now postgresql
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

Теперь проверим базу данных Metasploit:

ПРИМЕР
 
sudo msfdb status
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

В последней строке указано отсутствие конфигурационного файла. Инициализируем базу данных:

ПРИМЕР
 
sudo msfdb init
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

И еще раз проверим ее статус:

Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

Первоначальную настройку базы данных выполнили, можем запускать Metasploit Framework:

ПРИМЕР
 
msfconsole
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

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

ПРИМЕР
 
db_status
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

Переходим к настройке рабочего пространства.

Настройка рабочего пространства (workspace) в Metasploit

Не очень удобно, когда все результаты хранятся в одном месте. Чтобы отделить один проект от другого, необходимо создать рабочее пространство. Выведем существующие:

ПРИМЕР
 
workspace
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

Звездочка указывает на выбранное рабочее пространство. Создадим новое с именем goad:

ПРИМЕР
 
workspace -a goad
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

Рабочее пространство 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
 

Точно такой же вывод:

Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

Далее разберемся, где и как смотреть сохраненные результаты.

Работа с базой данных Metasploit Framework

База данных Metasploit DB хранит информацию о целях сканирования, обнаруженных службах, найденных уязвимостях, собранных учетных данных и других данных, полученных во время тестирования. С командами db_status, workspace и db_nmap познакомились, теперь научимся просматривать собранные данные, а немного позже их использовать для быстрого заполнения требуемых параметров в модулях.

Просмотр собранной информации о целях сканирования выполняется командой hosts:

ПРИМЕР
 
hosts
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

С помощью команды services можно получить информацию об активных сервисах, связанных с целями сканирования:

ПРИМЕР
 
services
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

Команда vulns выведет список обнаруженных уязвимостей:

ПРИМЕР
 
vulns
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

Команда creds выведет собранные во время тестирования учетные данные:

ПРИМЕР
 
creds
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

С базой данных Metasploit DB разобрались, теперь попробуем поискать уязвимости. Переходим к следующему разделу.

Поиск сетевых уязвимостей с помощью Metasploit Framework

Теперь попробуем запустить модуль для получения информации об удаленном SMB сервере и поддерживаемых версиях (если поддерживается первая версия SMB, то мы можем получить информацию об операционной системе хоста). Так же определим подписывается ли SMB. Подключим модуль auxiliary/scanner/smb/smb_version:

ПРИМЕР
 
use auxiliary/scanner/smb/smb_version
 

Далее введем команду options, чтобы узнать обязательные параметры (в колонке Required написано yes).

Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

Параметр 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
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

Постоянно вводить параметры вручную быстро надоест, поэтому научимся использовать возможности Metasploit для быстрого заполнения нужных полей:

ПРИМЕР
 
services -R
 

Теперь запустим сканер:

ПРИМЕР
 
run
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

В результатах работы на первый взгляд сложно что-то разобрать. Мы сейчас и не будем этим заниматься. Введем еще раз команду vulns:

ПРИМЕР
 
vulns
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

Ранее таблица была пустой, но после сканирования модулем auxiliary/scanner/smb/smb_version были найдены уязвимости и добавлены в базу данных Metasploit DB. Найденная нами уязвимость SMB Signing Is Not Required на самом деле таковой не является. В дальнейшем мы научимся злоупотреблять этим мисконфигом в Relay-атаках, но пока не будем забегать вперед.

Кстати, ранее мы уже определили отсутствие подписи SMB у двух хостов с помощью CrackMapExec:

ПРИМЕР
 
crackmapexec smb 192.168.56.0-23
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

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

Для поиска модулей используется команда search:

ПРИМЕР
 
search smb
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

Чтобы сузить поиск, например, только проверенные модули, указываем дополнительно <поле>:<значение>:

ПРИМЕР
 
search check:yes smb
 
Здесь изображение или скриншот.
Они доступны только авторизованным пользователям.

Далее можно использовать модуль двумя способами. Либо полностью указать его имя:

ПРИМЕР
 
use exploit/windows/smb/ms17_010_eternalblue
 

Либо указать порядковый номер из первого столбца:

ПРИМЕР
 
use 7
 

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

В следующем разделе обсудим другие источники и способы сбора информация для дальнейшего прохождения лабораторного стенда GOAD. Переходим к итогам подраздела.

Тест

Две секундочки...
@codebra_official
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Впервые на сайте Codebra?

Извините за это всплывающее окно, меня они тоже раздражают.

Образовательный ресурс codebra.ru полностью посвящен программированию и компьютерной безопасности. Все курсы и уроки находятся на главной странице. Ради интереса можете посмотреть на содержимое курсов по Пентесту Active Directory, Python, HTML и CSS, JavaScript, C++ и другие, размещенные на главной странице.

Если что-то не нашли, то воспользуйтесь поиском по сайту, который находится на главной странице в самом верху.

Удачи в обучении!

Закрыть окно