
CVE-2012-2982(Webmin RCE)のPoCエクスプロイト。教育目的です。
このリポジトリには、Webmin バージョン 1.590 以前に影響するリモート認証済みコマンド実行の脆弱性である CVE-2012-2982 の Proof-of-Concept (PoC) エクスプロイトが含まれています。この脆弱性は /file/show.cgi エンドポイントに存在し、攻撃者は操作したリクエストに特殊文字(| パイプ記号など)を注入することで任意のコマンドを実行できます。
本 PoC は教育およびセキュリティ研究目的のみを意図しています。許可なくシステムを不正に利用することは違法かつ非倫理的です。
Webmin は、Unix ベースのシステムを管理するための一般的な Web ベースのシステム管理ツールです。バージョン 1.590 以前には、ファイルマネージャーモジュールにセキュリティ上の欠陥が存在します。この問題は、/file/show.cgi スクリプトを操作する際のユーザー入力の不適切なサニタイズに起因します。シェルのメタ文字(|)を注入することで、認証されたユーザーは、Webmin プロセスの権限(多くの場合 root)でターゲットシステム上で任意のコマンドを実行できます。
影響を受けるバージョン: Webmin 1.590 以前
攻撃の前提条件:
攻撃者は有効な Webmin の資格情報を持っている必要があります(低権限のユーザーアカウントで十分です)。
ファイルマネージャーモジュールにアクセス可能である必要があります。
悪用により可能になること:
リモートコード実行 (RCE)
権限昇格(Webmin が root で実行されている場合)
システムの完全な侵害
脆弱なエンドポイントは次のとおりです:
http://<target_ip>:10000/file/show.cgi
この攻撃は、ファイルパスを渡す際の不適切な入力検証を悪用し、| を介して注入されたシェルコマンドの実行を可能にします。
このリポジトリには、以下を自動化する Python エクスプロイトスクリプトが含まれています:
認証: 提供された資格情報を使用して Webmin にログインします。
セッション ID の抽出: 認証済みリクエストに必要なセッション ID を取得します。
ペイロード実行: 任意のコマンドを実行するための悪意のあるリクエストを送信します。
ランダム化された実行パス: ランダムに生成されたファイル名を使用して検出を回避します。
リバースシェルサポート: 攻撃者のマシンに接続を戻すリバースシェルペイロードを生成します。
エラーハンドリング: リクエストの失敗を適切に処理します。
モジュール設計: さまざまなペイロードをテストするために簡単に変更できます。
Python 3
requests ライブラリ (pip install requests)
テスト用の Webmin インスタンス(脆弱なバージョン)(管理されたラボ環境を使用してください)
使用方法:
python3 exploit.py <target_IP>
例:
python3 exploit.py 192.168.1.100
攻撃者 IP (**lhost**): 10.21.48.124
攻撃者ポート (**lport**): 1937
ターゲット Webmin の資格情報:
ユーザー名: user1
パスワード: 1user
成功した場合、エクスプロイトは攻撃者のマシンへのリバースシェル接続を確立します。
エクスプロイトを実行する前に、リバースシェルを受信するための Netcat リスナー を攻撃マシン上にセットアップしてください:
nc -lvnp 1937
エクスプロイトが正常に実行されると、ターゲットマシンからシェル接続を受け取るはずです。
本 PoC は、セキュリティ研究および教育目的に限られます。許可されたペネトレーションテスト環境でのみ使用してください。本番システムに対する許可のない使用は、サイバーセキュリティ法の違反であり、法的措置が取られる可能性があります。
作者は、このエクスプロイトの誤用について一切の責任を負いません。この PoC は、合法的なセキュリティテストおよび倫理的なハッキング活動にのみ使用してください。