
APT-Hunterは、パープルチームの考え方に基づいて作成されたWindowsイベントログ用の脅威ハンティングツールであり、Windowsイベントログの海に隠されたAPTの動きを検出し、不審なアクティビティを発見するまでの時間を短縮します。
Windowsイベントログのための脅威ハンティング、パープルチームの視点で構築。
APT-HunterはWindowsイベントログのための脅威ハンティングツールです。事前定義された検出ルールとログ統計を使用して、大量のイベントの中に隠れたAPT活動を浮かび上がらせ、不審な挙動を発見するために必要な時間を短縮します。侵害評価において特に効果を発揮します。
結果はタイムラインとして出力され、Excel、Timeline Explorer、Timesketchなどのツールで直接分析したり、オプションのローカルLLMトリアージを備えた組み込みのWebダッシュボードで探索したりできます。
コンパイル済みバイナリはReleasesページからダウンロードするか、ソースから実行してください(Python 3.8+):
git clone https://github.com/ahmedkhlief/APT-Hunter.git
cd APT-Hunter
python3 -m pip install -r requirements.txt
python3 APT-Hunter.py -p /opt/wineventlogs/ -o Project1 -allreport
-pはディレクトリまたは単一ファイルを受け付けます。分析終了時にダッシュボードを開くには-webを追加してください。





完全なリストはpython3 APT-Hunter.py -hを実行してください。主なオプション:
| オプション | 説明 |
|---|---|
-p, --path | 分析するログファイルまたはフォルダ |
-o, --out | 出力名 / ディレクトリ |
-start, -end | タイムラインを制限(ISO形式) |
-tz | タイムゾーン(localまたは例:Asia/Dubai) |
-cores | 使用するCPUコア数(デフォルト:利用可能なコアの半分) |
-hunt, -huntfile, -eid | 文字列/正規表現、正規表現ファイル、またはイベントIDによるハンティング |
-sigma, -rules | JSONに変換されたSigmaルールでハンティング |
-o365hunt, -o365rules, -o365raw | Office 365監査ログのハンティング |
-procexec, -logon, -objaccess, -allreport | 追加レポート |
-web, -webview, -webhost, -webport | Webダッシュボードの起動 |
-llm, -llm-provider, -llm-url, -llm-model, -llm-key, -llm-severity, -llm-batch, -llm-context | ローカルLLM分析 |
EVTXファイルのフォルダを分析(ログタイプは自動検出):
python3 APT-Hunter.py -p /opt/wineventlogs/ -o Project1 -allreport
時間枠に絞る:
python3 APT-Hunter.py -p /opt/wineventlogs/ -o Project1 -allreport -start 2022-04-03 -end 2022-04-05T20:56
文字列、正規表現、または正規表現ファイルでハンティング:
python3 APT-Hunter.py -hunt "psexec" -p /opt/wineventlogs/ -o Project2
python3 APT-Hunter.py -huntfile "(psexec|psexesvc)" -p /opt/wineventlogs/ -o Project2
python3 APT-Hunter.py -huntfile huntfile.txt -p /opt/wineventlogs/ -o Project2
Sigmaルールでハンティング:
python3 APT-Hunter.py -sigma -rules rules.json -p /opt/wineventlogs/ -o Project2
APT-Hunter用に変換された最新のSigmaルールを取得(rules.jsonを書き出します):
./Get_Latest_Sigma_Rules.sh
生成されたレポートをブラウザで閲覧:フィルタリング、チャート、インシデントタイムライン、IRレポートのエクスポート。
python3 run_webapp.py <Output>/<Output>_Report.xlsx # or pass the output directory
python3 APT-Hunter.py -p <logs> -o <Output> -web # analyse, then open the dashboard
python3 APT-Hunter.py -webview <Output> # open an existing report
トリアージ所見を承認すると、その所見は証拠とともにインシデントタイムラインに固定され、折りたたみ可能なサブイベントとして添付されます。サブイベントは他のすべてと混在するのではなく、テーブル内で所見の下に配置され、タイムラインチャートからは除外されるため、チャートは読みやすい状態に保たれます。所見を削除すると、そのサブイベントも一緒に削除されます。
サーバーはデフォルトで0.0.0.0:5000にバインドされます。変更するには--host / --port(または-webhost / -webport)を使用してください。例えばローカルに保つには--host 127.0.0.1とします。レビュー済みの所見とタイムラインは、レポートキャッシュが再構築されても保持されます。

メインダッシュボード:総イベント数と重大度カウント、重大度の内訳、最も多く発火した検出ルール、日別のイベント量。サイドバーにはレポート内のすべてのイベントログとサマリーテーブルが一覧表示されます。

インシデントタイムライン:固定された所見を時間順にプロットし、重大度で色分け。混雑した区間へズームやパンができ、AIエグゼクティブサマリーを生成し、IRレポートやCSVをエクスポートできます。

時系列タイムライン:攻撃チェーンがサブイベントに展開され、詳細パネルにナラティブ、MITREテクニック、スコアが表示されます。
インシデントタイムラインチャートはズーム可能なので、数分または数秒間隔で発生するイベントの集中も読みやすいままです。チャート上をドラッグして区間へズーム、Shift+ドラッグでパン、Ctrl/Cmd+ホイールでカーソル位置を中心にズーム、または下のオーバービューストリップを使用します。ラベルは決して重ならず、収まらないものは非表示になり、ドットにホバーするとそこに重なっているすべてのイベントが一覧表示されます。
ローカルモデルを使用して、検出されたイベントの悪性度をコマンドラインからスコアリング:
python3 APT-Hunter.py -p <logs> -o <Output> -llm -llm-provider ollama -llm-model llama3 -llm-severity High
またはダッシュボードからイベントごとに(チェック、説明、相関)。プロバイダー(Ollama / LM Studio / llama.cpp)、モデル、URL、タイムアウトはダッシュボードのSettingsページで設定します。OpenAI互換のローカルサーバーであればどれでも動作し、クラウドサービスにデータは送信されません。
ダッシュボードのサイドバーにあるAgentic Triageは、数千件のアラートを短い所見リストに変換します: