
Interaktive Ruby-Shell für autorisierte Tests von CVE-2025-55182 (react2shell)
______ \_____ ______ / /
| / / /| /_ \
| | / | | /
|| /_____ ___| /_______ /
/ / / /
(react2rubyshell)
[!IMPORTANT]
HAFTUNGSAUSSCHLUSS: Die Verantwortung für alle mit diesem Skript durchgeführten Aktionen liegt ausschließlich bei der Person, die es ausführt. Verwenden Sie dies nur gegen Systeme, die Ihnen gehören oder für die Sie ausdrückliche Erlaubnis zum Testen haben.
json, net/http, optparse, readline, securerandom, shellwords, uriEs werden keine externen Gems benötigt.
Klonen Sie das Repository, wechseln Sie in das Projektverzeichnis und führen Sie das Skript mit Ruby aus:
git clone https://github.com/hakkuri01/r2rs.git
cd r2rs
ruby r2rs.rb -h
ruby r2rs.rb -t ZIEL [optionen]
-t, --target ZIEL Ziel-IP, Hostname oder URL (erforderlich)
-p, --port PORT Ziel-HTTP-Port
-nb, --no-banner Startbanner ausblenden
-h, --help Befehlshilfe anzeigen
Beispiele:
ruby r2rs.rb -t 127.0.0.1
ruby r2rs.rb -t 127.0.0.1 -p 3000
ruby r2rs.rb -t http://127.0.0.1:3000
ruby r2rs.rb -t "https://example.test/app?debug=1" -p 8443
ruby r2rs.rb -nb -t 127.0.0.1 -p 3000
Wenn TARGET kein Schema enthält, wird http:// angenommen. HTTPS-URLs werden unterstützt.
Enthält die Ziel-URL Shell-spezifische Zeichen wie ?, setzen Sie sie in Anführungszeichen:
ruby r2rs.rb -t "https://127.0.0.1/test?x=1"
Vor dem Start der aktiven Sitzung validiert das Tool das Ziel mit einem Testbefehl. Wenn die Validierung fehlschlägt, wird ein Fehler ausgegeben und das Programm beendet.
Die Sitzung läuft über HTTP ab: Lokales Ruby verwendet eine einzige HTTP-Verbindung, sendet Befehle über den vorhandenen Anforderungspfad und zeigt die Antwort in einer interaktiven Readline-Eingabeaufforderung an. Der Eingabeaufforderungskontext wird beim Start initialisiert und nach jedem Befehl mit dem entfernten Benutzer, Hostnamen und Arbeitsverzeichnis aktualisiert.
Geben Sie exit ein oder drücken Sie Strg-C, um die Sitzung zu beenden.
Dieser Modus erfordert absichtlich kein Ruby, Python, socat, script oder andere PTY-Hilfsprogramme auf der Zielseite. Aus diesem Grund handelt es sich nicht um ein echtes Remote-PTY. Vollbild- und TTY-empfindliche Programme wie vim, nano, su, ssh und interaktive Passworteingaben können weiterhin eingeschränkt sein.