Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Anvil — Anvil は、Windows シッククライアントアプリケーション向けのランタイムファーストの攻撃対象領域評価ツールであり、ペネトレーションテスターやセキュリティ研究者が対象を絞ったアプリケーションセキュリティ評価を実施するために構築されています。1 回のターゲット指定実行で複数の攻撃クラスをカバーします。 | Kitploit
ツール/GitHubGitHub/shellkraft/anvil
特権昇格偵察脆弱性分析エクスプロイトポストエクスプロイトペネトレーションテストバイナリ解析レッドチーミング
GitHubshellkraft/anvil

Anvil

Anvil は、Windows シッククライアントアプリケーション向けのランタイムファーストの攻撃対象領域評価ツールであり、ペネトレーションテスターやセキュリティ研究者が対象を絞ったアプリケーションセキュリティ評価を実施するために構築されています。1 回のターゲット指定実行で複数の攻撃クラスをカバーします。

リポジトリを見る
37445ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

logo


ランタイムファーストの権限昇格および攻撃対象領域評価ツール for Windows シッククライアント。

Anvilは、Windows シッククライアントアプリケーション向けのランタイムファーストの権限昇格および攻撃対象領域評価ツールです。ファイルシステムを盲目的にスキャンするのではなく、Procmon キャプチャと Windows AccessCheck を組み合わせて、ランタイムに観測されかつ標準ユーザーによる書き込みが確認されたパスのみをレポートし、汎用的な列挙ツールにありがちな誤検出ノイズを排除します。


目次

  • 主な機能
  • 仕組み
  • モジュール
  • 必要条件
  • Sysinternals ツール
  • インストール
  • 配布
  • 使用方法
  • 使用例
  • 出力
  • 重大度モデル
  • フィルター
  • 免責事項

主な機能

ほとんどのシッククライアント評価ツールは、1つまたは2つの攻撃クラスをカバーするだけです。Anvilは、ランタイム観測、ACL検証済みの悪用可能性、および幅広い攻撃対象領域がすべて同じターゲット実行に含まれ、ゲート付きパイプラインによって実用的な出力を維持する、という考えに基づいています。

誤検出防止パイプライン

すべての候補は、報告される前に4つの連続したゲートを通過します。

ハードゲート

  • プロセス整合性レベルが High または SYSTEM IL であること
  • パスが System32、SysWOW64、または Program Files 内にないこと
  • 標準ユーザーが書き込み可能なディレクトリであること — Windows AccessCheck API で検証

モジュールロジックゲート

  • シンボリックリンク: 配置フラグ (Supersede、OverwriteIf など) + クロスユーザー書き込み可能ガード
  • COM: レジストリ CLSID が欠落または書き込み可能な DLL パスに関連付けられていること
  • Binary: PATH の順序をチェック — System32 よりも前に書き込み可能なエントリがある場合のみ
  • 引用符なしパス: 中間のファントムディレクトリが書き込み可能であることを確認し、カーネル .sys パスは除外

仕組み

  1. ターゲット解決
    ツールは、ターゲットを実行可能パスに解決します(--exe、--service、または --pid から)。サービスの場合は、ServiceInfo が現在の PID と状態とともに取得されます。

  2. Procmon キャプチャ

    • サービスの場合:Procmon を起動し、サービスをクリーンに再起動(状態遷移待機あり)します。新しい PID をキャプチャします。
    • 通常の EXE の場合:プロセスを Medium 整合性(複製された Explorer トークンを使用)で起動し、標準ユーザーをシミュレートします。PID を記録します。

    プロセス整合性レベルは、起動直後(プロセスが生きている間)に読み取られ、コンテキストに保存されます。

  3. モジュールごとのフィルタリング解析
    各モジュールは、独自の .pmc フィルター(filters/ に保存)を使用して Procmon からのフィルタリングされた CSV エクスポートを要求します。CSV が解析され、一連のゲートが適用されます。

    • 整合性 ≥ High
    • 保護されたシステムディレクトリ内ではないパス
    • 標準ユーザーが書き込み可能なディレクトリ(AccessCheck)
    • 追加のモジュール固有ロジック(例:シンボリックリンクの配置、COM のレジストリからファイルへの関連付け)
  4. 静的相関
    com モジュールは、追加の静的パスを実行します。ターゲットバイナリに埋め込まれた CLSID をスキャンし、それぞれを HKLM および HKCU に対してチェックして、キャプチャウィンドウ中に実行されなかったハイジャック機会を表面化します。これらは [Static Correlation] タグでフラグが付けられます。

  5. レポート
    結果はターミナルに(カラーコード付きで)表示され、必要に応じて JSON またはスタンドアロン HTML レポートに書き出されます。


アーキテクチャ

root@kitploit:~
flowchart TB
    %% Phase 1
    subgraph Phase1["Phase 1: Target & Runtime Discovery"]
        TR["Target Resolver<br/>--exe / --service / --pid"] -->
        IL["Integrity Gate<br/>Medium-IL launch / Service restart"] -->
        PM["Procmon Engine<br/>Runtime FS / Reg / Pipe events"]
    end

    %% Phase 2
    subgraph Phase2["Phase 2: Signal Reduction"]
        direction LR
        PF["Per-Module PMC Filters<br/>High-signal traces only"] -->
        CSV["Filtered CSV Export"]
    end

    %% Phase 3
    subgraph Phase3["Phase 3: Exploitability Gates"]
        HG["Hard Gates<br/>High-Integrity target<br/>Not protected path"] -->
        ACL["AccessChk Validation<br/>Writable by standard user"] -->
        LG["Logic Gates<br/>Module-specific rules"]
    end

    %% Phase 4
    subgraph Phase4["Phase 4: Correlation"]
        RT["Runtime Findings"]
        ST["Static Correlation<br/>COM: CLSID binary scan / registry"]
    end

    %% Phase 5
    subgraph Phase5["Phase 5: Reporting"]
        SV["Severity Engine<br/>P1–P5"] --> OUT["Console Output"]
        SV --> JSON["JSON Report"]
        SV --> HTML["HTML Report"]
    end

    %% Cross-phase flow
    PM --> PF
    CSV --> HG
    LG --> RT
    ST -.-> RT
    RT --> SV

    %% Styling
    classDef p1 fill:#0f2a44,stroke:#4cc9f0,color:#e6f1ff
    classDef p2 fill:#2b193d,stroke:#f72585,color:#fde8f3
    classDef p3 fill:#1f2d1c,stroke:#7ae582,color:#eaf7ea
    classDef p4 fill:#3a1f1f,stroke:#ffb703,color:#fff3d6
    classDef p5 fill:#0b2e2a,stroke:#00f5d4,color:#e6fffb

    class Phase1 p1
    class Phase2 p2
    class Phase3 p3
    class Phase4 p4
    class Phase5 p5
    linkStyle default stroke:#9aa4b2,stroke-width:2px

比較



モジュール

すべての Procmon ベースのモジュールには、filters/ ディレクトリに対応する .pmc フィルターファイルが必要です(フィルター 参照)。


必要条件

Python

  • Python 3.8 以降
  • 管理者として実行する必要があります
  • Windows 10 / Server 2016 以降

Python パッケージ

Anvil は初回実行時に 2 つの依存関係を自動インストールします。手動でインストールすることもできます。

root@kitploit:~
pip install rich pefile
root@kitploit:~
pip install rich>=13.0 pefile>=2023.2.7

Sysinternals ツール

Anvil は 3 つの Sysinternals バイナリを使用します。

解決順序

Anvil は実行のたびに、以下の優先順位で各ツールを解決します。

  1. 明示的なフラグ — --procmon、--handle、または --accesschk(下記参照)
  2. レジストリキャッシュ — HKCU\Software\Anvil(初回解決成功時に書き込まれます)
  3. PATH — 標準の where スタイル検索
  4. 自動ダウンロード — live.sysinternals.com から取得し、%LOCALAPPDATA%\Anvil\sysinternals\ に保存

ツールがどの経路でも解決されると、そのパスがレジストリキャッシュに書き込まれます。以降の実行では手順 1~3 を完全にスキップし、キャッシュされたパスを直接使用します。

ダウンロード失敗

ツールをダウンロードできない場合(インターネットなし、ファイアウォール、プロキシ)、Anvil は構造化エラーを表示して即座に終了します。不足しているツールと使用するフラグを示すエラーメッセージが表示されます。

手動でのバイナリ提供

任意のバイナリへのパスをフラグで指定します。Anvil はそれを %LOCALAPPDATA%\Anvil\sysinternals\ にコピーし、パスをレジストリキャッシュに書き込みます。初回実行後はフラグを再度使用する必要はありません。

root@kitploit:~
python anvil.py --exe "C:\App\target.exe" --procmon   "D:\Tools\Procmon64.exe" --handle    "D:\Tools\handle.exe" --accesschk "D:\Tools\accesschk.exe"

インストール

root@kitploit:~
# リポジトリをクローン
git clone https://github.com/shellkraft/Anvil.git
cd Anvil

# 実行 — 依存関係は初回スキャン時に自動インストール
python.exe anvil.py

ヒント: Anvil を実行する前に、ターミナルを管理者として実行で起動してください。


配布

スタンドアロン実行可能ファイルにコンパイル

PyInstaller が必要です(pip install pyinstaller):

root@kitploit:~
python -m PyInstaller --onefile --console --add-data "filters;filters" --add-data "modules/logo.png;." --icon .\modules\logo.ico --name Anvil anvil.py

出力バイナリは dist\Anvil.exe にあります。ターゲットマシンに Python のインストールは必要ありません。

注意: Windows SmartScreen は、署名されていないため、コンパイルされた実行可能ファイルの初回実行をブロックする可能性があります。

プリビルドバイナリ

プリビルドの Anvil.exe は Releases ページで入手できます。もしインターネットからのランダムバイナリを信頼するという脅威モデルをお持ちであれば。

バージョンSHA-256VirusTotal
V1.0.00ecf5a62...4/72

SHA-256 は certutil -hashfile Anvil.exe SHA256(Windows)または sha256sum Anvil.exe(Linux)で確認できます。


使用方法

root@kitploit:~
python anvil.py [--exe PATH | --service NAME | --pid PID] [options]

ターゲット(いずれか必須)

フラグ説明
--exe PATHターゲット実行可能ファイル。Procmon キャプチャのために Medium IL で起動されます。
--service NAMEWindows サービス名。実行可能ファイルはレジストリから解決され、起動をキャプチャするためにサービスが再起動されます。
--pid PIDすでに実行中のプロセスにアタッチします。Procmon は進行中のアクティビティをキャプチャします。

モジュール選択

フラグデフォルト説明
--modules LISTall実行するモジュールのカンマ区切りリスト。

モジュール名: dll、com、registry、binary、configs、installdir、memory、symlink、unquoted、pesec、pipes

Sysinternals パス

キャプチャ

フラグデフォルト説明
--procmon-runtime SEC30Procmon キャプチャウィンドウ(秒)。起動の遅いアプリケーションでは増やしてください。

出力


使用例

デスクトップアプリケーションの基本スキャン:

root@kitploit:~
python anvil.py --exe "C:\Program Files\MyApp\myapp.exe" --report report.html

起動の遅いアプリケーションのための長いキャプチャウィンドウ:

root@kitploit:~
python anvil.py --exe "C:\Program Files\MyApp\myapp.exe" --procmon-runtime 60 --scan-install-dir

Windows サービスをターゲットにする:

root@kitploit:~
python anvil.py --service MyAppSvc --modules dll,binary,unquoted,registry

すでに実行中のプロセスにアタッチ:

root@kitploit:~
python anvil.py --pid 4872 --report report.html --verbose

特定のモジュールのみ実行:

root@kitploit:~
python anvil.py --exe "C:\App\app.exe" --modules dll,symlink,unquoted

プロセスメモリをスキャンして追加のカスタム文字列を検索:

root@kitploit:~
python anvil.py --exe "C:\App\app.exe" --modules memory --memory-strings "InternalSecret,DevPassword"

エアギャップマシン — Sysinternals を手動で提供(一度コピーされます):

root@kitploit:~
python anvil.py --exe "C:\App\app.exe" --procmon "E:\Sysint\Procmon64.exe" --handle "E:\Sysint\handle.exe" --accesschk "E:\Sysint\accesschk.exe"

出力

ターミナル

重大度に応じて色分けされ、オプションで --verbose 詳細ブロックが表示されます。rich パッケージが必要です(自動インストール)。

Image

JSON (--report findings.json)

機械可読な検出結果オブジェクトの配列:

root@kitploit:~
[
  {
    "severity": "P1",
    "module": "DLL Hijacking",
    "message": "[System→User] Phantom DLL: version.dll",
    "detail": "DLL name   : version.dll\nAttempted  : C:\\ProgramData\\MyApp\\version.dll\n..."
  }
]

HTML (--report report.html) [推奨]

自己完結型の単一ファイルレポート。以下を含みます。

  • 実行サマリーと重大度の内訳
  • モジュールごとの検出結果テーブル
  • 重大度または脆弱性クラスによるフィルタリング
  • 展開可能な完全な詳細
  • スキャンメタデータ(ターゲット、タイムスタンプ、整合性レベル)
Image

重大度モデル


フィルター

すべての .pmc フィルターファイルはリポジトリの filters/ ディレクトリに含まれています。セットアップは不要です。Procmon ベースのモジュールは自動的にそれらを取得します。

フィルターの再作成

フィルターファイルが失われたり破損した場合は、上記のルールを使用して Procmon で再作成します。Filter → Filter… で条件を設定し、File → Export Configuration… で filters/<name>.pmc に保存します。

Anvil は次回のモジュール実行時に自動的に .pmc ファイルを取得します。


免責事項

Anvil は、セキュリティ研究、バグ報奨金プログラム、および許可された侵入テストのためのものです。自分が所有しているか、明示的な書面による許可を得ているシステムでのみ使用してください。

運用上の注意

  • Anvil はキャプチャ中にサービスを再起動します。これにより、評価対象のマシン上のターゲットサービスが一時的に中断されます。
  • メモリモジュールは稼働中のプロセスにアタッチします。実行前にターゲット環境でこれが許容されることを確認してください。
  • 管理者として実行する必要があります。評価の実施規則に沿っていることを確認してください。
ツールをダウンロード
機能AnviLSpartacusRobberwinPEASProcmon
自動探索✅✅✅✅❌
ランタイム検証による探索✅❌❌❌✅
ファントム DLL 検出✅✅❌❌◐
検索順序を考慮した分析✅❌❌❌❌
ACL ベースの書き込み可能性検証✅ (AccessChk)◐◐Basic❌
モジュールごとの信号フィルタリング✅ (.pmc filters)❌❌❌❌
誤検出排除(ゲート付きパイプライン)✅❌❌❌❌
サービス再起動と PID 再取得✅❌❌❌❌
Medium-IL ユーザーシミュレーション✅❌❌❌❌
DLL ハイジャック(シッククライアント対応)✅❌❌◐❌
COM ハイジャック相関✅❌❌❌❌
名前付きパイプ ACL / 偽装分析✅❌❌❌❌
シンボリックリンク / ジャンクション悪用検出✅❌◐◐❌
メモリ内秘密情報(稼働中プロセススキャン)✅❌❌◐❌
PE セキュリティ / 緩和策分析✅❌❌◐❌
特権昇格評価(悪用手法を除く)✅✅✅❌❌
自動悪用❌✅✅❌❌
信頼性 / 重大度スコアリング✅ (P1–P5)❌❌❌❌
ターゲット固有分析 (exe / svc / pid)✅❌❌❌✅
構造化レポート (JSON / HTML)✅❌❌TXT❌
自己完結型バイナリ配布✅✅✅✅✅
モジュールフラグチェック内容
DLL ハイジャックdll.dll の CreateFile イベント — 書き込み可能なディレクトリ内のファントム DLL およびロードされた DLL
COM ハイジャックcom標準ユーザーが書き込み可能な COM サーバーレジストリキー;ProgID のバイナリスキャン
バイナリハイジャックbinary.exe の CreateFile イベント — ファントム EXE の配置および書き込み可能な EXE ディレクトリ
安全でない設定configs書き込み可能なディレクトリからの設定ファイルアクセス(.ini、.xml、.json、.yaml など)
インストールディレクトリinstalldirルート ACL、昇格マニフェスト EXE、および書き込み可能なサブディレクトリ
メモリ文字列memory稼働中プロセスのメモリをスキャンして資格情報、トークン、API キー、JWT、接続文字列を検出
シンボリックリンク攻撃symlinkユーザー書き込み可能な temp / appdata パス内のジャンクションおよびシンボリックリンクベクトル
引用符なしサービスパスunquoted中間のファントムディレクトリが書き込み可能な引用符なし ImagePath を持つサービス
レジストリ特権昇格registry標準ユーザーが書き込み可能で、サービス/アプリケーションの動作を制御するレジストリキー
PE セキュリティフラグpesecターゲットバイナリの ASLR、DEP、CFG、SafeSEH、Authenticode の欠落
名前付きパイプ ACLpipes許容的な DACL または偽装可能な ACE を持つ名前付きパイプ
バイナリ使用モジュールダウンロード
Procmon64.exeすべての Procmon ベースのモジュールProcessMonitor.zip
handle.exe名前付きパイプ ACL モジュールHandle.zip
accesschk.exe名前付きパイプ ACL モジュール — パイプ DACL 列挙AccessChk.zip
フラグ説明
--procmon PATHProcmon64.exe へのパス。%LOCALAPPDATA%\Anvil\sysinternals\ にコピーされます。
--handle PATHhandle.exe へのパス。%LOCALAPPDATA%\Anvil\sysinternals\ にコピーされます。
--accesschk PATHaccesschk.exe へのパス。%LOCALAPPDATA%\Anvil\sysinternals\ にコピーされます。
フラグデフォルト説明
--report FILE—レポートを生成 — 拡張子が形式を決定します:.json は JSON、.html(またはその他)は自己完結型 HTML レポート。
--verboseoffターミナルに検出結果の詳細ブロックを表示します。
--no-coloroffANSI カラー出力を無効にします。
--skip-authenticodeoffAuthenticode 署名チェックをスキップします(大規模なインストールディレクトリで高速)。
--scan-install-diroffインストールディレクトリ内のすべての DLL を PE セキュリティチェックに含めます。
--memory-strings STR,...—プロセスメモリ内で検索する追加のカンマ区切り文字列。
レベルラベル一般的な CVSS意味
P1クリティカル8.0 – 8.8自動トリガーされる権限昇格(ユーザー操作不要)
P2高7.0 – 7.9ユーザー操作または弱いトリガーで悪用可能
P3設定ミス4.0 – 6.9引用符なしパス、緩和策の欠落 — 直接悪用不可
P4低影響0.1 – 3.9現実世界での影響が限定的な情報ベクトル
P5情報N/Aコンテキストと観察結果であり、脆弱性ではない
ファイルモジュール主要フィルタールール
filters/dll.pmcDLL ハイジャックOperation is CreateFile、Path ends with .dll
filters/binary.pmcバイナリハイジャックOperation is CreateFile、Path ends with .exe
filters/config.pmc安全でない設定Operation is CreateFile(コード内で拡張子フィルター)
filters/com.pmcCOM ハイジャックOperation is RegQueryKey、Path contains HKLM
filters/symlink.pmcシンボリックリンク攻撃Operation is CreateFile