
ラボ & PoC
このリポジトリは、制御されたラボ環境においてSharePointスタイルのデシリアライゼーションおよびツールペイン処理の問題を検証するための概念実証研究プロジェクトです。Pythonドライバー、模擬脆弱アプリケーション、および分離テスト用のコンテナアセットが含まれています。
[!WARNING] このプロジェクトは、自分が所有しているか、明示的にテストを許可されたシステム、コンテナ、またはネットワークでのみ使用する必要があります。公共インフラ、サードパーティのサービス、本番環境、または書面による許可がないターゲットに対してこのコードを実行しないでください。許可のないセキュリティテストは、法律、契約、ポリシー、または利用規約に違反する可能性があります。
このリポジトリの内容は、機密性の高いセキュリティ研究資料として扱う必要があります。このプロジェクトを評価作業に使用する場合は、実行を隔離し、すべてのアクティビティをログに記録し、テスト前にシステム所有者と調整してください。
リポジトリには現在以下が含まれています:
sploit.py: ToolPaneエンドポイントに細工されたリクエストを送信する非同期Pythonドライバーlab/mock_vulnerable_app.cs: 検証マーカーを反映し、現在の形式ではラボコンテナ内で指定されたコマンドを実行できる模擬ASP.NETアプリケーションlab/docker-compose.yml: 模擬ターゲットと攻撃者端末を分離するローカル2コンテナラボlab/Dockerfile: 模擬脆弱アプリケーションをより小さなASP.NETランタイムイメージに公開し、非rootユーザーとして実行するマルチステージ.NETビルドlab/attacker.Dockerfile: ラボ端末に必要なスクリプト依存関係セットを事前インストールするPython攻撃者コンテナ定義lab/vulnerable.csproj: 模擬脆弱アプリケーション用の.NET 6 Webプロジェクトファイルlab/genGadget.py: ラボ専用のデシリアライゼーションテスト用に圧縮されたBase64ペイロードを生成するヘルパースクリプトこのワークフローはローカルラボ専用です。
前提条件:
lab/ディレクトリからラボを起動します:
cd lab
docker-compose up --build -d
Dockerセットアップで昇格された権限が必要な場合は、同じコマンドをsudoで実行してください。
両方のコンテナが実行中であることを確認します:
docker-compose ps
問題発生時やエクスプロイト検証時のログ:
docker logs sp_attacker
docker logs sp_vulnerable_lab
ラボは意図的に隔離されています:
lab_net上で動作します;攻撃者コンテナ内でシェルを開きます:
docker exec -it sp_attacker bash
攻撃者コンテナ内から、ターゲットに到達可能であることの確認や、模擬ターゲットに対する検証モードでのスクリプトテストなどのラボセーフなチェックを実行できます:
python3 sploit.py http://sp_vulnerable_lab/
# If service-name DNS resolution fails in your environment, use the lab IP:
# python3 sploit.py http://10.10.10.5
# If you wish to go past base validation you can include wanted commands.
python3 sploit.py http://sp_vulnerable_lab whoami
ローカル模擬環境での期待される動作:
http://sharepoint-targetとして到達可能であること;運用上の注意:
ラボのコンテナとネットワークを停止して削除:
cd lab
docker-compose down
ビルド済みイメージも削除したい場合:
docker-compose down --rmi local
ラボワークスペースのアーティファクトを完全にリセットしたい場合は、シャットダウン後に生成された結果ファイルを削除してください:
rm -f vuln.lst
各演習後の推奨クリーンアップ手順:
docker-compose downでラボをシャットダウン;このプロジェクトはローカル研究ラボとして構造的に有効ですが、現在の形式では本番環境で安全なバリデーターとして扱われるべきではありません。
動作しているもの:
注意が必要なもの:
vuln.lstに書き込まれ、不必要な残留機密データを生成する可能性があります。このプロジェクトは、検知と露出の制御された検証にのみ使用し、運用上のエクスプロイトには使用しないでください。
推奨される方法論:
実際の評価作業では、エクスプロイト形式の検証を以下の1つ以上に置き換えることがより安全な基準です:
ターゲットが特権アプリケーションコンポーネントのデシリアライゼーションの欠陥に対して本当に脆弱である場合、潜在的な影響は深刻になる可能性があります:
ラボであっても、コマンド実行のセマンティクスはリスクを大幅に高めます。なぜなら、厳格に管理された許可された調査のためだけに予約されるべきワークフローを正常化してしまうからです。
適切な緩和策の道筋は防御的かつ多層的です。
即時対応:
強化策:
/_layouts/15/ToolPane.aspxおよび関連する管理パスへの不審なリクエストに対して集中ログとアラートを有効にします。研究ラボ固有の緩和策:
このREADMEは、実際のシステムを悪用するための手順を提供するものではありません。リポジトリを制御された研究アーティファクトとして文書化し、より安全な検証と緩和の実践を概説しています。