Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Purple-Team-Automation — ADラボに対する自動敵対者エミュレーション(Caldera)を実施し、Sigma検知カバレッジを検証して結果をMITRE ATT&CKにマッピングします。 | Kitploit
ツール/GitHubGitHub/joshuagodwin7929/purple-team-automation
ポストエクスプロイトペネトレーションテストコマンド&コントロール脅威インテリジェンスレッドチーミングインシデントレスポンスログ分析敵対的攻撃ラボと実践

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
GitHubjoshuagodwin7929/purple-team-automation

Purple-Team-Automation

ADラボに対する自動敵対者エミュレーション(Caldera)を実施し、Sigma検知カバレッジを検証して結果をMITRE ATT&CKにマッピングします。

リポジトリを見る
13131日前未レビュー
共有

Purple-Team-Automation

detection-as-code-repo で構築した Sigma 検出ルールを、既存のドメインラボに対して連鎖的な Active Directory 資格情報アクセス攻撃パスを実行する MITRE Caldera と、カバレッジを可視化する ATT&CK Navigator ヒートマップを用いて自動的にパープルチーム検証する。

Atomic Red Team ではなく Caldera を選んだ理由

本プロジェクトで Atomic Red Team ではなく Caldera を選んだのは、単発の独立したテクニック実行ではなく、エージェント、敵対者プロファイル、連鎖的な多段階オペレーションを備えた完全な C2 フレームワークを提供するからである。これは本プロジェクトの目標により合致している。すなわち「この単一のテクニックが検出されたか」ではなく、「現実的で順序立てられた攻撃チェーンが、我々の現在の検出スタックを最初から最後まで生き残るか」である。

リポジトリ構成

root@kitploit:~
Purple-Team-Automation/
├── abilities/                          カスタム Caldera アビリティ YAML
├── adversary-profiles/                 オペレーションで使用した連鎖的敵対者プロファイル
├── validation/                         テクニックごとの Kibana エビデンス + LLMNR 既知ギャップの記述
├── attack-navigator-heatmap.json       ATT&CK Navigator レイヤー、mitre-attack.github.io/attack-navigator で読み込み
├── purple-team-automation-report.md    完全な記述: スコープ、手法、結果、ギャップ分析
└── README.md                           本ファイル

構築したもの

インフラストラクチャ

Docker Compose を介して専用の Caldera サーバーを、既存の AD ドメインラボと同じラボネットワーク上の別の Ubuntu VM (caldera-server、192.168.18.205) にデプロイし、ELK/SIEM スタックから分離した。Caldera v5.0.0 は、2000 個の標準アビリティと 29 個の標準敵対者をすぐに利用できる状態で起動した。

途中で根本原因を特定したビルドの問題:

  • 最初のビルドは完了したように見えたが、イメージが黙って生成されなかったため、クリーンビルドをやり直す必要があった。
  • コンテナは、ビルド済みの Vue フロントエンド (plugins/magma/dist/assets/) が存在しないためにクラッシュループに陥った。これは docker-compose.yml のディレクトリ全体の Docker ボリュームマウントが、イメージのコンパイル済みフロントエンドを未コンパイルのホストソースで上書きしていたことに起因すると突き止めた。ディレクトリ全体のマウントを削除して修正した。
  • コンテナ実行時にフロントエンドを再ビルドしようとしたが、Dockerfile が最終イメージをスリムに保つためにイメージビルド後に npm/nodejs を意図的にアンインストールしているため失敗した。
  • ようやくログインが機能するようになった後も、UI は依然として機能しなかった。コンパイル済みフロントエンドは localhost:8888 を API ベースとしてハードコードしており、これは Vue ビルド時に plugins/magma/.env (VITE_CALDERA_URL) を介して焼き込まれ、conf/local.yml の実行時 app.frontend.api_base_url 設定では制御されない。.env を VM の実際の IP に編集して再ビルドすることで修正した。
  • 別のディスク容量不足の障害にも遭遇し、これは LVM 論理ボリュームが VM に割り当てられたディスクの半分しか使用していないことに起因すると突き止めた。lvextend -l +100%FREE + resize2fs で修正し、さらに docker system prune -a --volumes でビルドキャッシュレイヤーを回収した。

カスタムアビリティ

Stockpile には LSASS/Mimikatz ベースの資格情報ダンプ (T1003.001) 用のネイティブアビリティしか同梱されていない。本プロジェクトで必要とした 4 つのテクニック、Kerberoasting、AS-REP Roasting、Password Spraying、DCSync はすべて、Impacket (GetUserSPNs.py、GetNPUsers.py、secretsdump.py) と Kerbrute を中心に構築したカスタムアビリティを必要とした。Stockpile の既存の Kerberoasting アビリティ (Rubeus、WinPwn) は Windows/.NET 専用であり、本ラボの Linux ベースの Sandcat エージェントとは互換性がないためである。

これらを作成する際に 2 つのビルド問題に遭遇した:

  • Caldera v5 の実際のアビリティスキーマは、source/edge/target フィールドを持つツールごとの専用パーサーモジュール (例: plugins.stockpile.app.parsers.katz) を使用しており、当初想定していたような汎用の正規表現 pattern パーサーではない。これによりロード時に TypeError('ParserConfig.__init__()') が黙って発生した。生の Impacket 出力用の組み込みパーサーが存在しないため、4 つのアビリティすべてから parsers: ブロックを完全に削除した。結果は生の出力/ハッシュファイルとしてキャプチャし、Kibana に対して手動で検証する (/validation を参照)。
  • 2 つのアビリティ YAML (password spray、DCSync) は、nano の貼り付けが黙って失敗した後、当初 0 バイトのファイルとして保存されていた。コンテナを再起動する前に、すべてのファイルを cat/wc -l で健全性チェックすることでこれを発見した。

エージェントのデプロイ

Sandcat エージェント (Linux、グループ red) を Kali VM (192.168.18.70) にデプロイし、OPSEC マスカレードのためにプロセス名 splunkd を使用し、proc/sh エグゼキューターで root として実行され、稼働中かつ信頼済みであることを確認した。

敵対者プロファイルとオペレーション

AD Credential Access Chain 敵対者プロファイルを構築し、日和見的な内部攻撃者が通常試みる順序で 4 つのカスタムアビリティを連鎖させた:

root@kitploit:~
    → Password Spray (Kerbrute)
    → Kerberoasting (GetUserSPNs.py)
    → AS-REP Roasting (GetNPUsers.py)
    → DCSync (secretsdump.py)

LLMNR/NBT-NS ポイズニング (T1557.001) は Caldera プロファイルから意図的に除外した。その理由と、それが既知ギャップのネガティブコントロールとして依然として含まれている方法については validation/llmnr-known-gap.md を参照。

結果

実行された 4 つのテクニックはすべて、detection-as-code-repo の Sigma ルールに対して検出が確認され、Kibana で直接クロスチェックした。LLMNR/NBT-NS ポイズニングは、文書化された未解決のギャップとして残っている。

テクニックステータス
T1110.003 – Password Spraying🟢 検出
T1558.003 – Kerberoasting🟢 検出
T1558.004 – AS-REP Roasting🟢 検出
T1003.006 – DCSync🟢 検出
T1557.001 – LLMNR/NBT-NS Poisoning🔴 ギャップ

詳細: validation/detection-results.md 完全な記述: purple-team-automation-report.md インタラクティブヒートマップ: attack-navigator-heatmap.json

次のステップ

  1. Sysmon 設定を修正し (Event ID 3 と 22 を有効化)、LLMNR ギャップを解消する。
  2. LLMNR/NBT-NS ポイズニング用の新しい Sigma ルールを作成し、チューニングする。
  3. このオペレーションを再実行して修正を確認し、ヒートマップを更新する。
  4. より広範な SOC プロジェクトロードマップ (Project D 以降) にフィードする。
ツールをダウンロード