mcpField
W
Winforensics Mcp

Winforensics Mcp

ローカル
github.com/x746bセキュリティ254 週間前に更新

Winforensics Mcp について

Winforensics Mcp は、Windows ランタイムなしでオフライン証拠を調べる、Linux 環境向けの Windows デジタルフォレンジック MCP サーバーです。DFIR 調査担当者向けに、アーティファクト解析、相関、IOC 検索、タイムライン作成を提供します。

主な機能

  1. 01Windows ログ、レジストリ、ファイルシステムの解析
  2. 02実行痕跡とユーザー活動の分析
  3. 03アーティファクトの相関と統合タイムライン作成
  4. 04YARA ルールスキャンと振る舞い IOC の検索
  5. 05PCAP と API Monitor キャプチャの分析

活用シーン

  1. 01バイナリの実行有無と関連活動の調査
  2. 02複数の証拠ソースから IOC を検索
  3. 03ログとファイルシステムの記録からイベントの時系列を再構成

MCP 対応

ローカル stdio MCP サーバーとして動作し、Windows フォレンジックツールを MCP クライアントに公開します。クライアント設定に winforensics-mcp を登録します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

WinForensics MCP

Windows フォレンジック MCP サーバー

Linux から Windows DFIR を実施 - Windows ランタイムへの依存なしで Linux 環境向けに設計された、包括的なフォレンジックツールキットです。Windows のアーティファクトをネイティブに解析できます。Windows Search 用の Rust SIDR サイドカーも任意で利用できます。


関連プロジェクト

  • mem_forensics-mcp - 統合メモリフォレンジック MCP サーバー - Rust の速度と Vol3 の対応範囲を組み合わせたマルチティアエンジン
  • mac_forensics-mcp - macOS DFIR - 統合ログ、FSEvents、Spotlight、Plist、SQLite データベース、拡張属性

機能

コアフォレンジック
カテゴリ機能
EVTX ログコンパクトな構造化クエリ、フィールドフィルター、ログオン相関、NTLM サマリー、JSONL エクスポート
オフライン NTDS認証情報を復号せずに、SAM アカウント、ドメイン SID、信頼メタデータを正確に照会
レジストリSAM、SYSTEM、SOFTWARE、SECURITY、NTUSER.DAT を分析。ページ分割クエリ、正規化された FILETIME、USBSTOR/WPD の相関に対応
リモート収集WinRM 経由でアーティファクトを収集(パスワードまたはパス・ザ・ハッシュ)
実行アーティファクト
カテゴリ機能
PE 分析ハッシュ(MD5/SHA1/SHA256/imphash)、インポート、エクスポート、パッカー検出による静的分析
Prefetch実行回数、タイムスタンプ、読み込まれたファイルを含む実行証跡
AmcacheAmcache.hve から SHA1 ハッシュと初回検出タイムスタンプを取得
SRUMアプリケーション/時刻による正確なフィルタリング、生のリソースカウンター、ネットワーク使用量の MB/MiB 合計、SRUDB.dat からの任意の集計
ファイルシステムアーティファクト
カテゴリ機能
MFTADS メタデータとタイムスタンプ改ざんの検出に対応した Master File Table の解析
USN ジャーナルファイル操作の変更ジャーナルと削除ファイルの復元
タイムラインMFT、USN、Prefetch、Amcache、EVTX を統合したタイムライン
ユーザーアクティビティ
カテゴリ機能
ブラウザーEdge、Chrome、Firefox の履歴とダウンロード
LNK ファイル最近アクセスしたファイルを調べる Windows ショートカット分析
ShellBagsUsrClass.dat と NTUSER.DAT の両方からフォルダーの移動履歴を取得。UNC 共有と閲覧されたアーカイブ内部(libfwsi)を含む
RecentDocsレジストリベースの最近使ったドキュメントの追跡
Windows SearchSIDR を利用した Windows.edb ファイル、インターネット履歴、アクティビティ履歴、System.Search.AutoSummary の復元
ネットワークフォレンジック
カテゴリ機能
PCAP 分析PCAP/PCAPNG ファイルを解析 - 通信、DNS クエリ、HTTP リクエスト、不審な接続
API Monitor キャプチャ分析
カテゴリ機能
APMX 解析API Monitor のキャプチャ(.apmx64/.apmx86)を解析 - プロセスメタデータ、API 呼び出しの抽出、パラメーター値
パターン検出キャプチャされた API 呼び出しシーケンスから、MITRE ATT&CK マッピングを用いてインジェクション、プロセスホロウイング、認証情報ダンプなどの攻撃パターンを検出
ハンドル相関呼び出し間でハンドル値を追跡し、攻撃チェーンを再構築(OpenProcess -> VirtualAllocEx -> WriteProcessMemory -> CreateRemoteThread)
インジェクション分析強化されたインジェクションチェーンの詳細を抽出:対象 PID/プロセス、シェルコードのサイズ、割り当てアドレス、手法の分類
API ナレッジベースパラメーターシグネチャ、DLL マッピング、カテゴリ別ブラウジングに対応した 26,944 件の Windows API 定義
マルウェア検出
カテゴリ機能
YARA スキャンsignature-base の 718 個のルール。APT、ランサムウェア、ウェブシェル、ハッキングツールに対応
IoC パックエクスポートされたログ、ファイル名、PCAP ペイロードを横断して調査するための、振る舞いベースの IoC パック。65 個のルールを含む、任意で利用できる GPL-2.0 の impacket-iocs パックも含まれます
VirusTotalキャッシュとレート制限に対応したハッシュ/IP/ドメインのレピュテーション検索(無料プランに対応)
DiE 連携Detect It Easy を使用して、パッカー(UPX、Themida、VMProtect)、コンパイラー、.NET、インストーラーを検出
オーケストレーター
ツール機能
investigate_executionPrefetch、Amcache、SRUM を関連付け、「このバイナリは実行されたか?」に回答します
investigate_user_activityBrowser、ShellBags、LNK、RecentDocs を関連付け、ユーザーアクティビティのタイムラインを作成します
hunt_iocすべてのアーティファクトソースを横断して IOC(ハッシュ/ファイル名/IP/ドメイン)を検索し、オプションで YARA スキャンも実行します
hunt_ioc_packimpacket-iocs など、同梱または外部のメタデータパックから振る舞いベースの IoC を調査します
build_timeline複数のソースから統合フォレンジックタイムラインを作成します
ユーティリティ
ツール機能
ingest_parsed_csvEric Zimmerman ツールの CSV 出力(MFTECmd、PECmd、AmcacheParser)をインポートします

インストール

前提条件
# Install uv (fast Python package manager)
curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrc

# Ensure Python 3.10+
python3 --version
PyPI からインストール
uv tool install winforensics-mcp
ソースからインストール
git clone https://github.com/x746b/winforensics-mcp.git
cd winforensics-mcp

# Install with uv (recommended)
uv sync

# Or install with all optional extras
uv venv && source .venv/bin/activate
uv pip install -e ".[all]"

Windows Search の解析には SIDR 0.9.2 を使用します。ソースリポジトリには、隣接するマニフェストに記録された固定コミットからビルドされた、ARM64(.tools/sidr)および x86_64(.tools/sidr_x86)向けの不要部分を除いた Linux リリースが含まれています。どちらのアーキテクチャでも、次のコマンドで同じリビジョンを再ビルドできます。

bash scripts/build_sidr.sh

サーバーは、明示的に指定されたツール引数、WINFORENSICS_SIDR_PATH、アーキテクチャに対応する同梱バイナリ、PATH の順に SIDR を検出します。実行時に実行ファイルをダウンロードまたはビルドすることはありません。未対応のプラットフォームでは、SIDR 0.9.2 を別途ビルドするか用意してください。SIDR がない場合、windows_search_parse は、圧縮された長い値をすべて復元できないことが明確に示された、部分的な pyesedb フォールバックを使用します。

動作確認
uv run python -m winforensics_mcp.server
# Should start without errors (Ctrl+C to exit)

MCP クライアントへの追加

MCP クライアントの設定で、winforensics-mcp をローカルの stdio サーバーとして登録してください。設定の形式と場所はクライアントによって異なります。mcpServers JSON を受け付けるクライアントで PyPI からインストールする場合(uv tool install winforensics-mcp)、設定は次のようになります。

{
  "mcpServers": {
    "winforensics-mcp": {
      "command": "winforensics-mcp"
    }
  }
}

ソースをチェックアウトした場合(uv sync)は、次のように設定します。

{
  "mcpServers": {
    "winforensics-mcp": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/winforensics-mcp", "python", "-m", "winforensics_mcp.server"]
    }
  }
}

例のパスを、チェックアウト先の絶対パスに置き換えてください。クライアントが異なる設定形式を使用している場合は、MCP サーバー設定から同じコマンドと引数を入力してください。winforensics-mcp または uv がクライアントの PATH に含まれていることを確認し、クライアントの MCP サーバー一覧で接続を確認してください。


クイックスタートの例

このバイナリは実行されましたか?
Investigate if mimikatz.exe was executed on the system at /mnt/evidence

investigate_execution オーケストレーターは、Prefetch、Amcache、SRUM を確認します。

{
  "target": "mimikatz.exe",
  "execution_confirmed": true,
  "confidence": "HIGH",
  "evidence": [
    {"source": "Prefetch", "finding": "Executed 3 times, last at 2024-03-15T14:23:45Z"},
    {"source": "Amcache", "finding": "SHA1: abc123..., First seen: 2024-03-14T09:00:00Z"},
    {"source": "SRUM", "finding": "Network: 15.2 MB sent; Foreground: 47 seconds"}
  ]
}
すべてのアーティファクトを対象に IOC を調査する
Hunt for the hash 204bc44c651e17f65c95314e0b6dfee586b72089 in /mnt/evidence

hunt_ioc ツールは、Prefetch、Amcache、SRUM、MFT、USN、Browser、EVTX を検索し、オプションで YARA も使用します。

{
  "ioc": "204bc44c651e17f65c95314e0b6dfee586b72089",
  "ioc_type": "sha1",
  "found": true,
  "sources_with_hits": ["Amcache", "MFT"],
  "findings": [
    {"source": "Amcache", "matches": 1, "details": "bloodhound.exe"},
    {"source": "MFT", "matches": 1, "details": "Users\\Admin\\Downloads\\bloodhound.exe"}
  ]
}

コンパクトな EVTX およびオフライン AD クエリ

compact、fields、where、max_chars を使用して、EVTX の結果を絞り込みます。

{
  "evtx_path": "/evidence/Security.evtx",
  "event_ids": [4724],
  "where": {"EventData.SubjectUserName": {"neq": "Administrator"}},
  "compact": true,
  "fields": ["EventID", "TimeCreated", "EventData.TargetUserName"],
  "max_chars": 12000
}

同じクエリで next_cursor を指定して続きの結果を取得します。evtx_get_event を使うと、完全なレコードを開けます。 以下のヘルパーを使用すると、ログオンの相関分析、出現頻度の低いものから並べる NTLM サマリー、JSONL エクスポートを実行できます。記述子ツールは、明示的な hex/base64 をデコードし、利用できない値をそのまま報告します。NTDS ツールは、SYSTEM や認証情報の復号を行わずに、アカウント、ドメイン、信頼関係のメタデータを照会します。

例、制限事項、完全性に関する仕様については、クエリリファレンスを参照してください。

ツールリファレンス

オーケストレーター(高度な調査)
ツール説明
investigate_executionPrefetch/Amcache/SRUM を相関させ、バイナリの実行を立証します
investigate_user_activityBrowser/ShellBags/LNK/RecentDocs を相関させ、ユーザーのアクティビティを調査します
hunt_iocすべてのアーティファクトから IOC(ハッシュ/ファイル名/IP/ドメイン)を検索します。yara_scan=True を指定すると、YARA の脅威インテリジェンスが追加されます
build_timeline複数のアーティファクトソースから統合タイムラインを作成します
実行アーティファクト
ツール説明
file_analyze_pePE の静的解析を実行します。ハッシュ、インポート、エクスポート、Authenticode のプログラム名、パッカーの検出に対応します
disk_parse_prefetch実行の証拠を得るために Prefetch を解析します
disk_parse_amcacheSHA1 ハッシュとタイムスタンプを取得するために Amcache.hve を解析します
disk_parse_srumSRUDB.dat を解析します。アプリの完全一致/正規表現フィルター、UTC 範囲、導出されたネットワーク単位、オプションの集計に対応します
マルウェア検出(YARA)
ツール説明
yara_scan_file718 個の YARA ルール(Mimikatz、CobaltStrike、ウェブシェル、APT、ランサムウェア)でファイルをスキャンします
yara_scan_directoryディレクトリを一括スキャンしてマルウェアを検出します
yara_list_rules利用可能な YARA ルールと同梱の YARA ルールを一覧表示します
振る舞いベースの IoC パック
ツール説明
ioc_pack_listライセンスのメタデータとともに、同梱および外部の IoC パックを一覧表示します
hunt_ioc_packテキストエクスポート、ファイル名、PCAP ペイロードから振る舞いベースの IoC を検索します
脅威インテリジェンス(VirusTotal)
ツール説明
vt_lookup_hashVirusTotal でファイルハッシュ(MD5/SHA1/SHA256)を検索します
vt_lookup_behaviorサンドボックスのドメイン、URL、コマンド、レジストリ/ファイルへの書き込みを上限付きで取得します。完全な結果の永続化はオプションです
vt_lookup_ipIP アドレスのレピュテーションと位置情報を取得します
vt_lookup_domainドメインのレピュテーションとカテゴリ分類を取得します
vt_lookup_fileファイルのハッシュを計算し、VirusTotal で検索します
ネットワークフォレンジック(PCAP)
ツール説明
pcap_get_statsPCAP の統計情報(パケット数、プロトコル、通信量上位のホスト)を取得します
pcap_get_conversationsバイト数を含む TCP/UDP 通信を抽出します
pcap_get_dnsDNS クエリと応答を抽出します
pcap_get_httpURL、メソッド、ユーザーエージェントを含む HTTP リクエストを抽出します
pcap_searchパケットペイロードから文字列または正規表現パターンを検索します
pcap_find_suspiciousC2 の指標、ビーコニング、DNS トンネリングを検出します
API Monitor キャプチャ解析(APMX)
ツール説明
apmx_parse.apmx64/.apmx86 キャプチャを解析します。プロセス情報、モジュール、呼び出し回数を取得します
apmx_get_callsフィルタリング、ページネーション、時間範囲の指定に対応し、API 呼び出しを抽出します
apmx_get_call_detailsパラメーター値、戻り値、タイムスタンプを含む詳細なレコードを取得します
apmx_detect_patternsMITRE ATT&CK ID を含め、攻撃パターン(インジェクション、プロセスのホロウイング、認証情報のダンプ)を検出します
apmx_correlate_handlesAPI 呼び出しをまたいでハンドルの生成元/使用先のチェーンを追跡します
apmx_get_injection_infoインジェクションチェーンの詳細情報(対象 PID、シェルコードのサイズ、手法)を抽出します
apmx_get_calls_around特定のレコード前後の呼び出しコンテキストを取得します
apmx_search_paramsすべてのレコードから特定のパラメーター値を検索します
api_analyze_importsパターン検出と MITRE ATT&CK マッピングを含む、PE インポートの完全な解析を実行します
api_detect_patternsPE インポートテーブルから攻撃パターンを検出します
api_lookupWindows API シグネチャを検索します(パラメーター、DLL、カテゴリを含む 26,944 個の API)
api_search_categoryカテゴリ(例:「プロセスインジェクション」、「ファイル管理」)別に API を参照します
パッカー検出(DiE)
ツール説明
die_analyze_fileパッカー、コンパイラー、プロテクター、.NET を対象にファイルを解析します
die_scan_directoryディレクトリを一括スキャンし、パックされた実行ファイルを検出します
die_get_packer_infoパッカーに関する情報(解析の難易度、アンパックツール)を取得します
ファイルシステム
ツール説明
disk_parse_mftADS メタデータとタイムスタンプ改ざんの検出を含めて $MFT を解析します
disk_parse_usn_journalファイル操作と削除済みファイルについて $J を解析します
ユーザーアクティビティ
ツール説明
browser_get_historyEdge/Chrome/Firefox の履歴とダウンロードを解析します
user_parse_lnk_filesWindows ショートカットを解析して、対象パスを取得します
user_parse_shellbagsShellBags(UsrClass.dat + NTUSER.DAT)を解析して、フォルダーの移動、ネットワーク共有、アーカイブの閲覧を調べます
windows_search_parse明示的に指定した Windows.edb を SIDR で解析し、ファイル、インターネット、アクティビティ、インデックス済みコンテンツのレコードをフィルタリングしてページ分割します
オフライン Active Directory
ツール説明
ntds_get_object_by_samオフライン SAM アカウントの完全一致セレクターに対し、許可リストに登録されたメタデータを読み取ります
ntds_get_object_sid明示的な曖昧性/完全性ステータスとともに SID メタデータを返します
ntds_get_domain_infoドメインメタデータと、証拠に裏付けられたフォレストルートの帰属情報を読み取ります
ntds_get_trusts認証シークレットを含めずに、信頼関係のメタデータをページ分割して読み取ります
イベントログ
ツール説明
evtx_list_filesディレクトリ内の EVTX ファイルを一覧表示します
evtx_get_statsイベント数、期間、イベント ID の分布を取得します
evtx_searchフィルター、簡潔なフィールド射影、応答量の上限、安定した続きを指定して検索します
evtx_get_eventソースに紐付いた参照を使って、正規化されたイベント全体を取得します
evtx_correlate_logon_id明示的な時間枠内で、サブジェクト/ターゲットの LUID の出現を結合します
evtx_exportハッシュ、完了時の診断情報、上限付きプレビューとともに、フィルタリング済みの JSONL を保存します
evtx_ntlm_operational_summaryNTLM 4021/4022/4023 イベントをグループ化し、まれなプロセスとユーザーの組み合わせを提示します
security_descriptor_decode明示的な 16 進数/base64 から、サイズ上限付きの自己相対記述子バイト列をデコードします
evtx_describe_security_descriptorEVTX 属性記述子の内容を説明するか、そのソースプレースホルダーを報告します
evtx_security_searchセキュリティイベントの事前構築済み検索(ログオン、プロセス作成など)
evtx_attack_summary迅速なトリアージ向けの簡潔な TSV サマリー。イベントごとに 1 行で、攻撃に関連する列のみを表示します
evtx_explain_event_idイベント ID の説明を取得します
レジストリ
ツール説明
registry_get_key特定のキーと値を取得します
registry_searchパターンで値を検索します
registry_queryサブツリー範囲、フィールド射影、診断情報に対応した、完全一致/部分一致/正規表現によるページ分割型レジストリクエリ
registry_get_persistenceRun キーとサービスを取得します
registry_get_usersSAM からユーザーアカウントを取得します
registry_get_usb_historyUSBSTOR の識別情報、物理シリアル番号、WPD デバイス名、追加のボリュームラベルを関連付けます
registry_get_system_infoOS バージョン、ホスト名、タイムゾーンを取得します
registry_get_networkネットワーク構成を取得します
ユーティリティ
ツール説明
ingest_parsed_csvEric Zimmerman の CSV 出力(MFTECmd、PECmd、AmcacheParser、SrumECmd)をインポートします
forensics_list_important_eventsチャネルごとに重要なイベント ID を一覧表示します
forensics_list_registry_keysカテゴリごとにフォレンジック用レジストリキーを一覧表示します
リモート収集
ツール説明
remote_collect_artifactsWinRM を使用してアーティファクトを収集します(パスワードまたはパス・ザ・ハッシュ)
remote_get_system_infoリモートシステムの情報を取得します

設定

VirusTotal API キー
# Option 1: Environment variable
export VIRUSTOTAL_API_KEY="your-api-key-here"

# Option 2: Config file
mkdir -p ~/.config/winforensics-mcp
echo "your-api-key-here" > ~/.config/winforensics-mcp/vt_api_key

無料の API キーは virustotal.com で取得できます。無料プランでは 1 分あたり 4 リクエストに制限されています。クライアントはレート制限を処理し、結果を 24 時間キャッシュします。


トラブルシューティング

DiE(Detect It Easy)が見つからない
# Debian/Ubuntu
sudo apt install detect-it-easy

# Or download from https://github.com/horsicq/DIE-engine/releases
SIDR が見つかりません

ソースチェックアウトには、Linux ARM64 および x86_64 用の、不要な部分を取り除いた SIDR リリースが含まれています。現在の Rust ターゲット向けに、固定されたリビジョンを再ビルドするには、次を実行します。

bash scripts/build_sidr.sh

別のインストールを使用する場合は、WINFORENSICS_SIDR_PATH に SIDR 0.9.2 の実行ファイルを設定してください。パーサーは、実行ファイルのパス、バージョン、SHA-256、データベースの状態、抽出の完全性、証拠のハッシュをすべての応答に含めて報告します。同梱されたサイドカーの Apache-2.0 ライセンスについては、.tools/SIDR-LICENSE を参照してください。

MCP サーバーを削除する

MCP クライアントのサーバー設定から winforensics-mcp のエントリーを削除してください。


ライセンス

クレジット:omerbenamram/evtx(Rust EVTX パーサー)、strozfriedberg/sidr(Windows Search)、Rohitab Batra(API Monitor)、Neo23x0/signature-base(YARA ルール)、horsicq/DIE-engine(Detect It Easy)

winforensics-mcp のコアコードは MIT ライセンスです。LICENSE を参照してください。

オプションの同梱 IoC パックには、異なるライセンスが適用される場合があります。

  • winforensics_mcp/ioc_packs/impacket-iocs には、ThatTotallyRealMyth/Impacket-IoCs に由来する素材が含まれており、GPL-2.0 ライセンスが適用されます。winforensics_mcp/ioc_packs/impacket-iocs/LICENSE を参照してください。

DFIR コミュニティのために開発されています。Windows は不要です >)

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。