Изучение основ Metasploit Framework

Beginner

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) мы рассмотрим основные концепции и способы использования фреймворка Metasploit, мощного открытого инструмента для пентестинга (проверки на проникновение). Metasploit представляет собой комплексную платформу для выявления и эксплойтации уязвимостей в различных системах и приложениях. Цель этого практического занятия - познакомить вас с основными компонентами Metasploit, его методологиями атаки и базовыми техниками использования.


Skills Graph

Понимание фреймворка Metasploit

На этом этапе мы познакомимся с фреймворком Metasploit, его архитектурой и основными концепциями.

Metasploit - это мощный и широко используемый фреймворк для пентестинга (проверки на проникновение), разработанный на языке Ruby. Он состоит из различных компонентов, включая модули, интерфейсы, плагины, утилиты и библиотеки. Фреймворк имеет модульную структуру, что позволяет повторно использовать код и расширять его функциональность.

Фреймворк Metasploit состоит из нескольких ключевых модулей:

  1. Эксплойты (Exploits): Это модули кода, которые используют уязвимости в целевых системах для получения несанкционированного доступа или выполнения произвольного кода.
  2. Вспомогательные модули (Auxiliary): Этот модуль включает в себя различные вспомогательные инструменты, такие как сканеры, фаззеры (fuzzers) и утилиты для манипуляции протоколами.
  3. Кодировщики (Encoders): Эти модули используются для обфускации или кодирования полезных нагрузок (payloads), чтобы обойти механизмы безопасности, такие как антивирусное программное обеспечение или брандмауэры.
  4. Полезные нагрузки (Payloads): Эти модули содержат код, который выполняется на целевой системе после успешной эксплойтации.
  5. Модули пост - эксплойтации (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, вы можете повысить свои навыки в области пенетрационного тестирования, анализа уязвимостей и общей оценки безопасности.