Script Python per rilevare la vulnerabilità telnetd CVE-2026-24061 tramite iniezione NEW-ENVIRON, fornendo valutazione del rischio e indicazioni di mitigazione.
Uno strumento di test di sicurezza in Python per rilevare la vulnerabilità all'iniezione di variabili d'ambiente nei server telnetd tramite l'opzione telnet NEW-ENVIRON.
Panoramica
Questo script testa i server telnetd per CVE-2026-24061, una vulnerabilità che consente agli aggressori di iniettare variabili d'ambiente tramite l'opzione telnet NEW-ENVIRON. Se un server gestisce queste variabili d'ambiente in modo improprio, potrebbe essere vulnerabile ad attacchi di iniezione di comandi o bypass dell'autenticazione.
Lo script fornisce un output dettagliato e codificato a colori con avanzamento passo-passo, gestione completa degli errori e un riepilogo finale che include il risultato del test, la valutazione del rischio e l'analisi dell'impatto.
Dettagli di CVE-2026-24061
Riepilogo della vulnerabilità
CVE-2026-24061 è una vulnerabilità di sicurezza nei server telnetd che gestiscono in modo improprio le variabili d'ambiente inviate tramite l'opzione telnet NEW-ENVIRON (RFC 1572).
Impatto
Gravità: Alta
Vettore di attacco: Rete
Autenticazione richiesta: No
Impatto:
Potenziale iniezione di comandi
Bypass dell'autenticazione
Accesso non autorizzato al sistema
Dettagli tecnici
La vulnerabilità si verifica quando i server telnetd:
Accettano l'opzione telnet NEW-ENVIRON
Elaborano le variabili d'ambiente inviate tramite NEW-ENVIRON senza una validazione adeguata
Utilizzano queste variabili d'ambiente in modi non sicuri (ad esempio, passandole direttamente ai processi di login)
L'opzione NEW-ENVIRON (RFC 1572) consente ai client telnet di inviare variabili d'ambiente al server. Un server vulnerabile può accettare ed elaborare queste variabili senza sanificazione, consentendo potenzialmente a un aggressore di iniettare valori dannosi che potrebbero portare all'esecuzione di comandi o al bypass dell'autenticazione.
Sistemi interessati
Server telnetd che supportano l'opzione NEW-ENVIRON
Server che elaborano la variabile d'ambiente USER senza validazione
Sistemi che utilizzano versioni vulnerabili delle implementazioni telnetd
Utilizzo dello script
Prerequisiti
Python 3.x
Accesso di rete al server telnet di destinazione
Installazione
Non è richiesta alcuna installazione. Lo script è autonomo e utilizza solo moduli della libreria standard di Python.
Installazione di Python
Linux (Ubuntu/Debian):
root@kitploit:~
sudo apt-get update
sudo apt-get install python3
macOS (tramite Homebrew):
root@kitploit:~
# Installare Homebrew se non già installato
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Installare Python 3
brew install python3
# Verificare l'installazione
python3 --version
# Test della porta telnet predefinita (23)
./telnetd_CVE‑2026‑24061_test.py 10.0.2.134
# Test di una porta personalizzata
./telnetd_CVE‑2026‑24061_test.py 10.0.2.134 2323
# Rendere lo script eseguibile (se necessario)
chmod +x telnetd_CVE‑2026‑24061_test.py
# Oppure eseguirlo direttamente con python3
python3 telnetd_CVE‑2026‑24061_test.py 10.0.2.134 2323
Windows (Prompt dei comandi):
root@kitploit:~
REM Test della porta telnet predefinita (23)
python telnetd_CVE‑2026‑24061_test.py 10.0.2.134
REM Test di una porta personalizzata
python telnetd_CVE‑2026‑24061_test.py 10.0.2.134 2323
Windows (PowerShell):
root@kitploit:~
# Test della porta telnet predefinita (23)
python telnetd_CVE‑2026‑24061_test.py 10.0.2.134
# Test di una porta personalizzata
python telnetd_CVE‑2026‑24061_test.py 10.0.2.134 2323
macOS (Python di Homebrew):
root@kitploit:~
# Se si utilizza Python installato con Homebrew, usare python3 esplicitamente
python3 telnetd_CVE‑2026‑24061_test.py 10.0.2.134
# Oppure renderlo eseguibile ed eseguirlo direttamente
chmod +x telnetd_CVE‑2026‑24061_test.py
./telnetd_CVE‑2026‑24061_test.py 10.0.2.134 2323
Funzionalità
Output codificato a colori: Rilevamento automatico del supporto colore con colori ANSI per una migliore leggibilità
Verde per i messaggi di successo
Rosso per errori e risultati ad alto rischio
Giallo per avvisi e risultati inconcludenti
Ciano per i messaggi informativi
Colori disattivati automaticamente quando l'output viene reindirizzato o se la variabile d'ambiente NO_COLOR è impostata
Output di test dettagliato: Avanzamento passo-passo con analisi dettagliata
Gestione completa degli errori: Messaggi di errore chiari con possibili cause e raccomandazioni
Riepilogo del test: Il riepilogo finale include risultato, livello di rischio, gravità del rischio e valutazione dell'impatto
Informazioni sulla connessione: Visualizza gli indirizzi remoto e locale per il debug
Risultati del test
Lo script fornisce quattro possibili risultati:
1. NON IMPATTATO
root@kitploit:~
[-] NEW-ENVIRON non accettato
[RISULTATO] NON IMPATTATO
Significato: Il server non supporta o non accetta l'opzione NEW-ENVIRON. Il server non è vulnerabile a questo specifico vettore di attacco.
Informazioni di riepilogo:
Risultato finale: NON IMPATTATO
Livello di rischio: NESSUNO
Gravità del rischio: N/D
Azione richiesta:
Nessuna azione immediata richiesta per questa vulnerabilità
Continuare con la manutenzione e gli aggiornamenti di sicurezza regolari
2. PROBABILMENTE IMPATTATO
root@kitploit:~
[!] ENV accettato dal server
[RISULTATO] PROBABILMENTE IMPATTATO (CVE-2026-24061)
Significato: Il server ha accettato l'opzione NEW-ENVIRON e sembra aver elaborato la variabile d'ambiente iniettata. Il server è probabilmente vulnerabile a CVE-2026-24061.
Informazioni di riepilogo:
Risultato finale: PROBABILMENTE IMPATTATO (CVE-2026-24061)
Livello di rischio: ALTO
Gravità del rischio: CRITICA
Valutazione dell'impatto:
Iniezione di comandi possibile
Bypass dell'autenticazione possibile
Accesso non autorizzato al sistema possibile
Azione richiesta:
Aggiornare telnetd a una versione corretta
Disattivare il supporto NEW-ENVIRON se non necessario
Implementare una validazione adeguata degli input per le variabili d'ambiente
Considerare la disattivazione di telnet a favore di SSH
Significato: Il server ha accettato NEW-ENVIRON ma non ha fornito una risposta chiara. Si raccomanda una verifica manuale.
Informazioni di riepilogo:
Risultato finale: INCONCLUSIVO
Livello di rischio: SCONOSCIUTO
Gravità del rischio: MEDIA
Valutazione dell'impatto:
Stato della vulnerabilità poco chiaro
Verifica manuale richiesta
Ulteriori indagini raccomandate
Azione richiesta:
Eseguire test manuali
Esaminare i log del server
Controllare la configurazione di telnetd
Consultare gli advisory di sicurezza del fornitore
Testare con variabili d'ambiente aggiuntive
4. TEST FALLITO
root@kitploit:~
[RISULTATO] TEST FALLITO - Errore di comunicazione
Significato: Il test non ha potuto essere completato a causa di un errore di comunicazione.
Informazioni di riepilogo:
Risultato finale: TEST FALLITO - Errore di comunicazione
Livello di rischio: SCONOSCIUTO
Gravità del rischio: N/D
Valutazione dell'impatto:
Il test non ha potuto essere completato
Impossibile determinare lo stato della vulnerabilità
Azione richiesta:
Ripetere il test
Controllare la stabilità della rete
Esaminare i log del server
Verificare la connettività di rete
Come funziona
Connessione: Stabilisce una connessione TCP al server telnet di destinazione
Visualizza lo stato della connessione e gli indirizzi
Gestisce gli errori di connessione con messaggi dettagliati
Ricezione del banner: Riceve e visualizza il banner iniziale del server (se presente)
Mostra la lunghezza del banner e un'anteprima
Negoziazione NEW-ENVIRON:
Invia IAC DO NEW_ENVIRON per richiedere l'opzione NEW-ENVIRON
Attende la risposta del server (IAC WILL NEW_ENVIRON)
Visualizza lo stato della negoziazione
Iniezione della variabile d'ambiente:
Costruisce un payload di sub-negoziazione telnet
Invia la variabile d'ambiente USER=-f root tramite NEW-ENVIRON
Il flag -f è una tecnica comune di bypass del login
Mostra i dettagli del payload
Analisi della risposta:
Monitora la risposta del server
Determina se il server ha elaborato la variabile iniettata
Fornisce una valutazione dettagliata della vulnerabilità
Riepilogo del test:
Visualizza il risultato finale
Mostra il livello di rischio e la gravità
Fornisce la valutazione dell'impatto
Include il timestamp di completamento
Implementazione tecnica
Costanti del protocollo telnet
Lo script utilizza i valori byte standard del protocollo telnet:
IAC (255): Interpreta come comando
DO (253): Richiede l'abilitazione dell'opzione
WILL (251): Accetta di abilitare l'opzione
SB (250): Inizio sub-negoziazione
SE (240): Fine sub-negoziazione
NEW_ENVIRON (39): Numero dell'opzione NEW-ENVIRON (RFC 1572)
Struttura del payload
Il payload di iniezione segue il formato RFC 1572:
root@kitploit:~
IAC SB NEW_ENVIRON IS VAR USER <0x01>-f root IAC SE
Dove:
IAC SB: Inizio sub-negoziazione
NEW_ENVIRON: Identificatore dell'opzione
IS: Sub-negoziazione informativa
VAR: Indicatore del tipo di variabile
USER: Nome della variabile d'ambiente
0x01: Byte VALUE
-f root: Valore iniettato
IAC SE: Fine sub-negoziazione
Gestione degli errori
Lo script include una gestione completa degli errori per:
Timeout di connessione (con possibili cause)
Errori di connessione rifiutata (con suggerimenti per la risoluzione)
Numeri di porta non validi (con messaggi di errore chiari)
Errori di comunicazione socket (con raccomandazioni)
Guasti di rete (con suggerimenti per i nuovi tentativi)
Tutti gli errori vengono segnalati con messaggi chiari, codificati a colori e facili da usare che includono:
Descrizione dell'errore
Possibili cause
Azioni raccomandate
Riepilogo del test anche in caso di errore
Limitazioni
Falsi positivi: Alcuni server possono accettare NEW-ENVIRON ma sanificare correttamente gli input
Falsi negativi: I server possono elaborare le variabili in modo diverso da quanto previsto
Dipendenze di rete: Richiede connettività di rete verso la destinazione
Metodo di rilevamento: Si basa sui modelli di risposta del server, che possono variare
Considerazioni sulla sicurezza
⚠️ Importante: Questo script è destinato esclusivamente a test di sicurezza autorizzati.
Testare solo sistemi di propria proprietà o per i quali si dispone di autorizzazione esplicita
I test non autorizzati possono violare leggi e regolamenti
Utilizzare in modo responsabile ed etico
I risultati devono essere verificati tramite test aggiuntivi
Raccomandazioni di mitigazione
Se un server risulta vulnerabile:
Azioni immediate:
Aggiornare telnetd all'ultima versione corretta
Esaminare e applicare le patch di sicurezza del fornitore
Considerare la disattivazione del servizio telnet se non richiesto
Modifiche alla configurazione:
Disattivare l'opzione NEW-ENVIRON se non necessaria
Implementare la validazione degli input per le variabili d'ambiente
Utilizzare regole firewall per limitare l'accesso telnet
Soluzioni a lungo termine:
Migrare a SSH (Secure Shell) invece di telnet
Implementare la segmentazione di rete
Audit di sicurezza e aggiornamenti regolari
Riferimenti
CVE: CVE-2026-24061
RFC 1572: Opzione ambiente Telnet (NEW-ENVIRON)
RFC 854: Specifica del protocollo Telnet
RFC 855: Specifiche delle opzioni Telnet
Output a colori
Lo script rileva automaticamente il supporto colore del terminale e utilizza colori ANSI per una migliore leggibilità:
Disattivare i colori: Impostare la variabile d'ambiente NO_COLOR=1
Forzare i colori: Impostare la variabile d'ambiente FORCE_COLOR=1
I colori vengono disattivati automaticamente quando l'output viene reindirizzato a un file
Esempio:
root@kitploit:~
# Disattivare i colori
NO_COLOR=1 ./telnetd_CVE‑2026‑24061_test.py 10.0.2.134
# Forzare i colori (utile per alcuni terminali)
FORCE_COLOR=1 ./telnetd_CVE‑2026‑24061_test.py 10.0.2.134
Licenza
Questo script è fornito così com'è per scopi di test di sicurezza. Utilizzarlo a proprio rischio.
Dichiarazione di esclusione di responsabilità e garanzia
NESSUNA GARANZIA
QUESTO SOFTWARE È FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSI MA NON LIMITATI ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO PARTICOLARE E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT SARANNO RESPONSABILI PER QUALSIASI RICHIESTA, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, EXTRACONTRATTUALE O ALTRO, DERIVANTE DA, IN RELAZIONE A O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRE OPERAZIONI NEL SOFTWARE.
LIMITAZIONE DI RESPONSABILITÀ
GLI AUTORI, I COLLABORATORI E I DISTRIBUTORI DI QUESTO SOFTWARE NON SARANNO RESPONSABILI PER ALCUN DANNO DIRETTO, INDIRETTO, INCIDENTALE, SPECIALE, ESEMPLARE O CONSEQUENZIALE (INCLUSI, MA NON LIMITATI A, APPROVVIGIONAMENTO DI BENI O SERVIZI SOSTITUTIVI; PERDITA DI UTILIZZO, DATI O PROFITTI; O INTERRUZIONE DELL'ATTIVITÀ) A QUALSIASI TITOLO E SU QUALSIASI TEORIA DI RESPONSABILITÀ, SIA CONTRATTUALE, A RESPONSABILITÀ OGGETTIVA O EXTRACONTRATTUALE (INCLUSA LA NEGLIGENZA O ALTRO) DERIVANTE IN QUALSIASI MODO DALL'USO DI QUESTO SOFTWARE, ANCHE SE AVVISATI DELLA POSSIBILITÀ DI TALI DANNI.
UTILIZZO A PROPRIO RISCHIO
Questo strumento è fornito esclusivamente per scopi educativi e di test di sicurezza autorizzati
Gli autori e i collaboratori non sono responsabili per qualsiasi uso improprio, danno o conseguenza legale derivante dall'uso di questo strumento
Assicurarsi sempre di avere la dovuta autorizzazione prima di testare qualsiasi sistema
L'accesso non autorizzato ai sistemi informatici è illegale e può comportare un procedimento penale
Gli autori non si assumono alcuna responsabilità per le azioni intraprese utilizzando questo software
Gli utenti sono gli unici responsabili di garantire la conformità con tutte le leggi e i regolamenti applicabili
Questo software può causare effetti indesiderati sui sistemi di destinazione
I risultati di questo strumento devono essere verificati tramite test aggiuntivi e valutazioni di sicurezza professionali
Gli autori non forniscono alcuna garanzia sull'accuratezza, completezza o affidabilità dei risultati dei test
Contributi
Sono benvenuti miglioramenti e segnalazioni di bug. Assicurarsi che eventuali modifiche mantengano lo scopo di test di sicurezza dello script e le linee guida per l'uso etico.