Введение
В этом практическом занятии (лабораторной работе) мы рассмотрим основные концепции и способы использования фреймворка Metasploit, мощного открытого инструмента для пентестинга (проверки на проникновение). Metasploit представляет собой комплексную платформу для выявления и эксплойтации уязвимостей в различных системах и приложениях. Цель этого практического занятия - познакомить вас с основными компонентами Metasploit, его методологиями атаки и базовыми техниками использования.
Понимание Metasploit Framework
На этом этапе мы познакомимся с фреймворком Metasploit, его архитектурой и основными концепциями.
Metasploit - это мощный и широко используемый фреймворк для пентестинга (проверки на проникновение), разработанный на языке Ruby. Он состоит из различных компонентов, включая модули, интерфейсы, плагины, утилиты и библиотеки. Фреймворк имеет модульную структуру, что позволяет повторно использовать код и расширять его функциональность.
Фреймворк Metasploit состоит из нескольких ключевых модулей:
- Эксплойты (Exploits): Это модули кода, которые используют уязвимости в целевых системах для получения несанкционированного доступа или выполнения произвольного кода.
- Вспомогательные модули (Auxiliary): Этот модуль включает в себя различные вспомогательные инструменты, такие как сканеры, фаззеры (fuzzers) и утилиты для манипуляции протоколами.
- Кодировщики (Encoders): Эти модули используются для обфускации или кодирования полезных нагрузок (payloads), чтобы обойти механизмы безопасности, такие как антивирусное программное обеспечение или брандмауэры.
- Полезные нагрузки (Payloads): Эти модули содержат код, который выполняется на целевой системе после успешной эксплойтации.
- Модули пост - эксплойтации (Post - Exploitation): Эти модули обеспечивают функциональность для удержания доступа и выполнения дальнейших действий на скомпрометированной системе.
Metasploit предоставляет несколько интерфейсов для взаимодействия с фреймворком, включая командную строку (msfconsole), веб - интерфейс (Metasploit Web UI) и командную строку (Metasploit Command Line).
Сначала запустим среду практического занятия (лабораторной работы). Запустите Metasploitable2, дважды кликнув на терминал xfce на рабочем столе и введя следующую команду в терминале:
sudo virsh start Metasploitable2
Подождите, пока целевая машина запустится, это может занять от 1 до 3 минут.
Проверьте, запущена ли целевая машина, отправив ей ping (нажмите Ctrl - C, чтобы выйти из режима ping):
ping 192.168.122.102
Затем запустим контейнер Kali и войдем в интерфейс bash, выполним операцию ping, чтобы проверить сетевое соединение:
docker run -ti --network host b5b709a49cd5 bash
Теперь мы можем выполнить операцию ping, чтобы проверить сетевое соединение (нажмите Ctrl - C, чтобы выйти из режима ping):
ping 192.168.122.102
Теперь мы можем запустить консоль Metasploit:
cd ~
msfconsole
В следующих шагах мы рассмотрим базовое использование консоли Metasploit и выполним различные задачи.
Основная навигация и исследование модулей
На этом этапе мы научимся перемещаться по консоли Metasploit и исследовать доступные модули.
Консоль Metasploit предоставляет командную строку для взаимодействия с фреймворком. Вот некоторые базовые команды:
help: Отобразить список доступных команд и их описания.search [keyword]: Поиск модулей по заданному ключевому слову.
Поищем модули, связанные с Linux, в консоли Metasploit:
search linux
Эта команда выведет список всех модулей, связанных с уязвимостями и эксплойтами для Linux.
Чтобы выбрать конкретный модуль, используйте команду use, за которой следует путь к модулю в консоли Metasploit:
use auxiliary/analyze/jtr_linux
После выбора модуля вы можете просмотреть его параметры и обязательные настройки с помощью команды show options в консоли Metasploit:
show options
Вот пример вывода, который вы можете увидеть:
Module options (auxiliary/analyze/jtr_linux):
Name Current Setting Required Description
---- --------------- -------- -----------
BLOWFISH false no Include BLOWFISH hashes (Very Slow)
BSDI true no Include BSDI hashes
CONFIG no The path to a John config file to use instead of the default
CRACKER_PATH no The absolute path to the cracker executable
CUSTOM_WORDLIST no The path to an optional custom wordlist
DES true no Indlude DES hashes
FORK 1 no Forks for John the Ripper to use
INCREMENTAL true no Run in incremental mode
ITERATION_TIMEOUT no The max-run-time for each iteration of cracking
KORELOGIC false no Apply the KoreLogic rules to John the Ripper Wordlist Mode(slower)
MD5 true no Include MD5 hashes
MUTATE false no Apply common mutations to the Wordlist (SLOW)
POT no The path to a John POT file to use instead of the default
SHA256 false no Include SHA256 hashes (Very Slow)
SHA512 false no Include SHA512 hashes (Very Slow)
USE_CREDS true no Use existing credential data saved in the database
USE_DB_INFO true no Use looted database schema info to seed the wordlist
USE_DEFAULT_WORDLIST true no Use the default metasploit wordlist
USE_HOSTNAMES true no Seed the wordlist with hostnames from the workspace
USE_ROOT_WORDS true no Use the Common Root Words Wordlist
WORDLIST true no Run in wordlist mode
Auxiliary action:
Name Description
---- -----------
john Use John the Ripper
Нажмите Ctrl+D, чтобы выйти из консоли Metasploit, а затем начните проверку
Настройка параметров модуля
На этом этапе мы научимся настраивать параметры выбранного модуля в Metasploit.
Во - первых, если вы не находитесь в консоли Metasploit, вам нужно запустить ее:
cd ~
msfconsole
Выберите модуль:
use auxiliary/analyze/jtr_linux
Для выполнения многих модулей необходимо задать определенные параметры. Вы можете установить параметр с помощью команды set, за которой следует имя параметра и его значение в консоли Metasploit, например set OPTION_NAME value.
Например, установим параметр JOHN_PATH для модуля jtr_linux в консоли Metasploit:
set JOHN_PATH /usr/share/metasploit-framework/data/wordlists/password.lst
Вы также можете использовать команду setg для установки глобального параметра, который будет сохраняться при смене модулей.
После настройки необходимых параметров вы можете выполнить модуль с помощью команд run или exploit в консоли Metasploit, в зависимости от типа модуля.
run
или
exploit
Для возврата в родительский контекст или выхода из текущего модуля используйте команду back.
Нажмите Ctrl+D, чтобы выйти из консоли Metasploit, а затем начните проверку
Эксплуатация уязвимости
На этом этапе мы смоделируем реальную ситуацию и попытаемся эксплоитировать уязвимость на целевой системе.
Во - первых, если вы не находитесь в консоли Metasploit, вам нужно запустить ее:
cd ~
msfconsole
Предположим, что мы обнаружили уязвимый сервер MySQL по целевому IP - адресу 192.168.122.102. Мы можем использовать модуль mysql_login для попытки брутфорс - атаки на учетные данные MySQL.
Выберите модуль mysql_login в консоли Metasploit:
use auxiliary/scanner/mysql/mysql_login
Затем установите необходимые параметры в консоли Metasploit:
set RHOSTS 192.168.122.102
set user_file /path/to/usernames.txt
set pass_file /path/to/passwords.txt
Наконец, выполните модуль в консоли Metasploit:
exploit
Metasploit попытается войти на сервер MySQL, используя предоставленные комбинации имен пользователей и паролей из указанных файлов. Имена пользователей и пароли, которые мы указали, являются только примерами, вход может быть неуспешным, вы должны заменить их на реальные имена пользователей и пароли.
Нажмите Ctrl+D, чтобы выйти из консоли Metasploit, а затем начните проверку
Задачи после эксплойта
На этом этапе мы рассмотрим модули пост - эксплойтации, доступные в Metasploit, которые можно использовать для удержания доступа и выполнения дополнительных действий на скомпрометированной системе.
После успешной эксплойтации уязвимости и получения доступа к целевой системе вы можете использовать модули пост - эксплойтации для выполнения различных задач, таких как:
- Сбор информации о системе
- Повышение привилегий
- Удержание постоянного доступа
- Переход на другие системы
Во - первых, если вы не находитесь в консоли Metasploit, вам нужно запустить ее:
cd ~
msfconsole
Для использования модуля пост - эксплойтации следуйте тем же шагам, что и при использовании других типов модулей в консоли Metasploit:
use post/windows/gather/enum_logged_on_users
show options
Вот пример вывода, который вы можете увидеть:
Module options (post/windows/gather/enum_logged_on_users):
Name Current Setting Required Description
---- --------------- -------- -----------
CURRENT true yes Enumerate currently logged on users
RECENT true yes Enumerate recently logged on users
SESSION yes The session to run this module on
set SESSION 1
exploit
В этом примере модуль перечисляет пользователей, вошедших в систему Windows, но Metasploit предоставляет множество других модулей пост - эксплойтации для различных платформ и задач.
Нажмите Ctrl+D, чтобы выйти из консоли Metasploit, а затем начните проверку
Резюме
В этом лабораторном занятии мы изучили фреймворк Metasploit, мощный инструмент для пенетрационного тестирования и оценки уязвимостей. Мы узнали о ключевых компонентах Metasploit, таких как эксплойты, полезные нагрузки (payloads) и вспомогательные модули. Мы также практиковались в навигации по консоли Metasploit, поиске модулей, настройке параметров и выполнении модулей для эксплойтации уязвимостей и выполнения задач пост - эксплойтации.
Metasploit предоставляет всестороннюю и гибкую платформу для этических хакеров, профессионалов в области безопасности и исследователей для выявления и устранения уязвимостей безопасности. Понимая и практикуя работу с Metasploit, вы можете повысить свои навыки в области пенетрационного тестирования, анализа уязвимостей и общей оценки безопасности.