
Авторизованная лаборатория Kali–Metasploitable2 с использованием Python и Nmap NSE для проверки CVE-2011-2523 в vsFTPd 2.3.4.
⚠️ Только в авторизованной лаборатории — работа проводилась в изолированной сети VirtualBox Host-Only с использованием Kali Linux и Metasploitable2. Никакие неавторизованные системы не сканировались и не подвергались доступу.
CVE-2011-2523 — один из самых известных случаев компрометации цепочки поставок в истории открытого исходного кода. В 2011 году официальный исходный код vsFTPd 2.3.4 был скомпрометирован на сервере загрузки проекта — злоумышленник изменил бинарный файл так, что ввод имени пользователя, содержащего :), запускал бэкдор-оболочку на TCP-порту 6200, предоставляя root-доступ любому удалённому атакующему.
Эта лаборатория проверяет CVE-2011-2523 с использованием структурированной методологии оценки уязвимостей:
ftp-vsftpd-backdoorЭто реальная работа по оценке уязвимостей — та же методология, которую используют пентестеры и аналитики SOC при проведении авторизованных оценок безопасности.
| Компонент | Детали |
|---|---|
| Атакующая машина | Kali Linux |
| Целевая машина | Metasploitable2 (намеренно уязвимая) |
| Гипервизор | Oracle VirtualBox |
| Сеть | Host-Only Adapter — изолированная, без доступа в интернет |
| Инструменты | Python 3, Nmap, NSE, библиотека python-nmap |
| IP-адрес цели | 192.168.56.103 |
| Поле | Детали |
|---|---|
| CVE ID | CVE-2011-2523 |
| Уязвимое ПО | vsFTPd 2.3.4 |
| Оценка CVSS | 10.0 — критическая |
| Тип уязвимости | Бэкдор / компрометация цепочки поставок |
| Вектор атаки | Сеть — аутентификация не требуется |
| Воздействие | Удалённый root-доступ к оболочке (uid=0) |
| Обнаружено | Июль 2011 |
| MITRE ATT&CK | T1195.002 (Compromise Software Supply Chain) |
Как работает бэкдор:
Когда клиент подключается к vsFTPd 2.3.4 и отправляет имя пользователя, содержащее символы :) (смайлик), срабатывает код бэкдора — открывается прослушивающая оболочка на TCP-порту 6200. Подключение к порту 6200 предоставляет интерактивную root-оболочку без дополнительной аутентификации.
Step 1: Confirm target IP on Host-Only network
└── ifconfig / ip addr on Metasploitable2
Step 2: Verify connectivity
└── ping 192.168.56.103 from Kali
Step 3: Service & version detection
└── nmap -sV -p 21 192.168.56.103
└── Confirm: vsftpd 2.3.4
Step 4: Python-automated NSE scan
└── python3 pythonnmap.py --host 192.168.56.103 --ports 21
└── NSE scripts executed:
ftp-anon
ftp-bounce
ftp-libopie
ftp-proftpd-backdoor
ftp-vsftpd-backdoor ← CVE-2011-2523 validation
Step 5: Document findings & remediation
sudo nmap -sV -p 21 192.168.56.103
Вывод:
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
sudo python3 pythonnmap.py --host 192.168.56.103 --ports 21
sudo nmap --script ftp-vsftpd-backdoor -p 21 192.168.56.103
| Сервис | Порт | Обнаружение | Доказательство |
|---|---|---|---|
| FTP | TCP 21 | Обнаружен vsFTPd 2.3.4 — известная версия с бэкдором | Сканирование сервисов и версий Nmap |
| FTP | TCP 21 | Разрешён анонимный вход по FTP | Вывод NSE ftp-anon |
| FTP | TCP 21 | Подтверждена уязвимость цели к CVE-2011-2523 | Вывод NSE ftp-vsftpd-backdoor |
| CVE-2011-2523 | TCP 6200 | Бэкдор-шелл вернул uid=0(root) gid=0(root) | Вывод проверки NSE |



В реальной производственной среде устранение включало бы:
| Действие | Приоритет |
|---|---|
| Немедленно удалить vsFTPd 2.3.4 и заменить исправленной версией | 🔴 Критический |
| Проверить целостность программного обеспечения с помощью контрольных сумм SHA-256 по официальным хешам производителя перед установкой | 🔴 Критический |
| Отключить анонимный доступ по FTP, если он явно не требуется | 🟠 Высокий |
| Ограничить доступность FTP-сервиса с помощью правил межсетевого экрана и сегментации сети | 🟠 Высокий |
Отслеживать журналы аутентификации FTP на предмет подозрительных имён пользователей, содержащих :) | 🟡 Средний |
| Рассмотреть полную замену FTP на SFTP (SSH File Transfer Protocol) | 🟡 Средний |
| Контроль | Фреймворк | Актуальность |
|---|---|---|
| T1195.002 | MITRE ATT&CK | Компрометация цепочки поставок ПО — бэкдор внедрён в исходный код vsFTPd |
| T1133 | MITRE ATT&CK | Внешние удалённые сервисы — бэкдор открывает удалённый root-шелл |
| T1190 | MITRE ATT&CK | Эксплуатация публично доступного приложения — FTP-сервис эксплуатируется удалённо |
| SI-2 | NIST SP 800-53 | Устранение недостатков — исправление и удаление уязвимого ПО |
| SI-7 | NIST SP 800-53 | Целостность ПО — проверка контрольных сумм ПО перед развёртыванием |
| RA-5 | NIST SP 800-53 | Мониторинг и сканирование уязвимостей |
| A.12.6 | ISO 27001 | Управление техническими уязвимостями |
Скрипт pythonnmap.py автоматизирует сканирование Nmap NSE с помощью библиотеки python-nmap:
# Key functionality
import nmap
scanner = nmap.PortScanner()
scanner.scan(
hosts=target_host,
ports=target_ports,
arguments='-sV --script ftp-anon,ftp-bounce,ftp-libopie,ftp-proftpd-backdoor,ftp-vsftpd-backdoor'
)
Преимущества автоматизации на Python: