
認可されたCVE-2025-55182 (react2shell) テスト用の対話型Rubyシェル
______ \_____ ______ / /
| / / /| /_ \
| | / | | /
|| /_____ ___| /_______ /
/ / / /
(react2rubyshell)
[!IMPORTANT]
免責事項: このスクリプトを使用して行う一切の行為に対する責任は、それを実行する個人に帰属します。所有しているシステム、または明示的なテスト許可を得たシステムに対してのみ使用してください。
json、net/http、optparse、readline、securerandom、shellwords、uri外部gemは不要です。
リポジトリをクローンし、プロジェクトディレクトリに移動して、Rubyでスクリプトを実行します:
git clone https://github.com/hakkuri01/r2rs.git
cd r2rs
ruby r2rs.rb -h
ruby r2rs.rb -t TARGET [options]
-t, --target TARGET Target IP, hostname, or URL (required)
-p, --port PORT Target HTTP port
-nb, --no-banner Drop the startup banner
-h, --help Show command usage
例:
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
TARGET にスキームが含まれていない場合、http:// が仮定されます。HTTPS URLもサポートされています。
ターゲットURLに ? などのシェル特殊文字が含まれる場合は、引用符で囲んでください:
ruby r2rs.rb -t "https://127.0.0.1/test?x=1"
アクティブセッションを開始する前に、ツールはプローブコマンドでターゲットを検証します。検証に失敗した場合は、エラーを表示して終了します。
セッションはHTTPベースです。ローカルのRubyは単一のHTTP接続を再利用し、既存のリクエスト経路を通じてコマンドを送信し、対話型のReadlineプロンプトにレスポンスを表示します。プロンプトのコンテキストは起動時に初期化され、リモートのユーザー名・ホスト名・作業ディレクトリを使用して、各コマンドの実行後に更新されます。
exit と入力するか、Ctrl-C を押すとセッションを終了します。
このモードは、ターゲット側のRuby、Python、socat、script、その他のPTYヘルパーを意図的に必要としません。そのため、真のリモートPTYではありません。vim、nano、su、ssh などの全画面・TTY依存プログラムや、対話型のパスワードプロンプトは、依然として制限される場合があります。