Искать
Вы превысили запрос на
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:

Пример (bash)
systemctl status postgresql 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

Включим ее:

Пример (bash)
sudo systemctl enable --now postgresql 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

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

Пример (bash)
sudo msfdb status 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

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

Пример (bash)
sudo msfdb init 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

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

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

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

Пример (bash)
msfconsole 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

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

Пример (msf6)
db_status 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

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

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

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

Пример (msf6)
workspace 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

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

Пример (msf6)
workspace -a goad 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

Рабочее пространство goad уже выбрано. Если необходимо выбрать другое рабочее пространство, выполните команду workspace:

Пример (msf6)
workspace <имя_workspace> 

Знакомимся со встроенной в Metasploit утилитой Nmap

С многофункциональным сканером Nmap мы встречались несколько раз: искали активные хосты, службы и сканировали хосты на наличие уязвимостей. Точно так же можно использовать Nmap в Metasploit. Все результаты сканирования будут сохранены в базе данных, которую мы инициализировали ранее. Это очень удобно. Вместо nmap используем db_nmap:

Пример (msf6)
db_nmap -PN -sC -sV 192.168.56.10,11,12,22,23 

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

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

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

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

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

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

Пример (msf6)
hosts 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

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

Пример (msf6)
services 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

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

Пример (msf6)
vulns 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

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

Пример (msf6)
creds 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

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

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

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

Пример (msf6)
use auxiliary/scanner/smb/smb_version 

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

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

Параметр RHOSTS обязательный. В описании написано предназначение параметра. Как правило, во всех модулях они выполняют одинаковые функции. RHOSTS - список целевых хостов.

Мы можем указать список хостов вручную, используя команду set:

Пример (msf6)
set RHOSTS 192.168.56.10 192.168.56.11 192.168.56.12 192.168.56.22 192.168.56.23 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

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

Пример (msf6)
services -R 

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

Пример (msf6)
run 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

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

Пример (msf6)
vulns 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

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

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

Пример (bash)
crackmapexec smb 192.168.56.0-23 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

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

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

Пример (msf6)
search smb 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

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

Пример (msf6)
search check:yes smb 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

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

Пример (msf6)
use exploit/windows/smb/ms17_010_eternalblue 

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

Пример (msf6)
use 7 

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

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

Тест

Две секундочки...

Похожие уроки Codebra

@codebra_official
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Поиск хостов с помощью NmapРазведка и сканирование
Первое знакомство с PythonЗнакомство с Python
Поиск общих папок с помощью CrackMapExec, SMBMap, smbclientРазведка и сканирование
Поиск сетевых уязвимостей с помощью NmapРазведка и сканирование
Поиск информации в общих папках с помощью manspiderРазведка и сканирование
Обнаружение сетевых служб с помощью NmapРазведка и сканирование
Внутреннее устройство и сортировка словаря в PythonЗнакомство с Python
Итоги раздела «Структуры данных в Python»Знакомство с Python
Обработка исключений (try/except) в PythonЗнакомство с Python
Впервые на сайте Codebra?

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

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

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

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

Закрыть окно