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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
acCOMplice — COMハイジャックの発見と悪用のためのツール | Kitploit
ツール/GitHubGitHub/nccgroup/accomplice
永続化メカニズムポストエクスプロイトレッドチーミングペイロード開発
GitHubnccgroup/accomplice

acCOMplice

COMハイジャックの発見と悪用のためのツール

リポジトリを見る
339516年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

acCOMplice

あなたのCOMハイジャックの共犯者

著者: David Tulis (@kafkaesqu3)

概要

このリポジトリには、COMハイジャックを調査するためのコードサンプルと概念実証(PoC)が含まれています。COMハイジャックは、永続化や防御回避に使用できるWindowsの侵害後(post exploitation)テクニックです。

COMインターフェースの詳細、ハイジャックの見つけ方、およびハイジャックを悪用するテクニックについては、Derbycon 9で行われたプレゼンテーション『COM Hijacking Techniques』を参照してください。

  • スライド: https://www.slideshare.net/DavidTulis1/com-hijacking-techniques-derbycon-2019
  • プレゼンテーション: https://www.youtube.com/watch?v=pH14BvUiTLY

プロジェクト

  • COMHijackToolkit: COMハイジャックを処理するためのヘルパースクリプトを含むPowershellスクリプト。主な機能:
    • Extract-HijackableKeysFromProcmonCSV: ProcmonのCSVエクスポートを解析してハイジャック可能なオブジェクトを抽出する
    • Hijack-CLSID: 指定したDLLでCLSIDをハイジャックする
    • Hijack-MultipleKeys: 指定したDLLで複数のCLSIDを同時にハイジャックする。頻繁にアクティブ化されるCLSIDを見つけるのに有用
  • InjectionTemplates: Derbyconのプレゼンテーションでデモされた3つのテンプレート
    • CreateProcess で新しいプロセスを作成する
    • CreateRemoteThread で既存のプロセスにインジェクションする
    • CreateThread を使用して現在のプロセス内のスレッドの生存時間を測定する
  • COMinject: COMハイジャックを使用してプロセスインジェクション/マイグレーションを実行できることを示す概念実証
  • masterkeys.csv: 試してみるためのいくつかのキー
  • procmon-filters: ハイジャックの特定と悪用を支援するProcmon用フィルター

使用例

COMHijackToolkit

COMハイジャックを処理するためのヘルパースクリプトを含むPowershellスクリプト。主な機能:

すべてのCOMオブジェクトのCLSIDと、ディスク上の実装の場所を表示する

root@kitploit:~
$keys = Get-CLSIDRegistryKeys -RegHive HKCR
$results = $keys | % {$guid = Extract-GUIDFromText $_; Map-GUIDToDLL -guid $guid 2> $null }

システム上のCLSIDの調査を実施する

root@kitploit:~
$HKCR_keys = Get-CLSIDRegistryKeys -RegHive HKCR
$HKCR_keys | where-object {$_ -like "*inprocserver"} | Measure-Object
$HKCR_keys | where-object {$_ -like "*inprocserver32"} | Measure-Object
$HKCR_keys | where-object {$_ -like "*localserver"} | Measure-Object
$HKCR_keys | where-object {$_ -like "*localserver32"} | Measure-Object

$HKLM_keys = Get-CLSIDRegistryKeys -RegHive HKLM
$HKLM_keys | Measure-Object
$HKCU_keys = Get-CLSIDRegistryKeys -RegHive HKCU
$HKCU_keys | Measure-Object
root@kitploit:~
explorer:{69486DD6-C19F-42e8-B508-A53F9F8E67B8}
explorer:{9E175B6D-F52A-11D8-B9A5-505054503030}
explorer:{30CC9D06-7E62-4966-9777-BC3442E788BD}
explorer:{3eef301f-b596-4c0b-bd92-013beafce793}
explorer:{682159d9-c321-47ca-b3f1-30e36b2ec8b9}
explorer:{6B3B8D23-FA8D-40B9-8DBD-B950333E2C52}
explorer:{9aa46009-3ce0-458a-a354-715610a075e6}
explorer:{9BA05972-F6A8-11CF-A442-00A0C90A8F39}
explorer:{AC36A05C-FB95-4C7A-868C-A43CC8D2D926}
explorer:{B52D54BB-4818-4EB9-AA80-F9EACD371DF8}
explorer:{c2f03a33-21f5-47fa-b4bb-156362a2f239}

システム上に存在しないDLLを参照するCLSIDを見つける:

root@kitploit:~
Find-MissingLibraries

InjectionTemplates

Derbycon 9のプレゼンテーションで実演された、COMハイジャック悪用のための3つの概念実証テンプレート:

  • HijackDLL-Process: DLLが読み込まれたときに新しいプロセスを作成する
  • HijackDLL-CreateRemoteThread: DLLが読み込まれたときにCreateRemoteThread API呼び出しを使用してスレッドインジェクションテクニックを実行する
  • HijackDLL-Threads: ハイジャック後にDLL内で開始されたスレッドの生存時間を測定するのに便利

COMinject

COMハイジャックをプロセスインジェクションに使用できることを示す概念実証:

  • COMInjectDotNet: COMハイジャックを介してサポートされているプロセスにDLLをインジェクションする概念実証クライアント
  • COMInjectTarget: プロセスにインジェクションするターゲットライブラリ

最初のステップは、ハイジャックを実行することです:

root@kitploit:~
COMInjectDotNet.exe chrome.exe C:\COM\COMInjectTarget.dll

ハイジャックはすぐには発動せず、アプリケーションの起動(まだ実行されていない場合)や基本的なアプリケーション操作が必要になる場合があります。おそらく、より頻繁に発動する、より良いCLSIDも存在しますが、これらで十分です。

COMInjectTarget.dll は、C:\COM 内のログファイルに進行状況を記録します。これは、別のプロセス内から AllocConsole のようなものを使って単にコンソールに出力するよりも安定しているようです。

以下は、メインの chrome.exe プロセス内で実行されているインジェクションされたDLLを示しています:

root@kitploit:~
[*] chrome pid=9104 ppid=4900 (count 0)
[*] chrome pid=9104 ppid=4900 (count 1)
[*] chrome pid=9104 ppid=4900 (count 2)
[*] chrome pid=9104 ppid=4900 (count 3)
[*] chrome pid=9104 ppid=4900 (count 4)
[*] chrome pid=9104 ppid=4900 (count 5)

現在サポートされているプロセスは次のとおりです:

  • explorer (デフォルト)
  • chrome
  • excel
  • word
  • outlook

参照とクレジット

COMとCOMハイジャックの詳細については:

  • Leo Loobeek (@leoloobeek):
    • COMProxy、コードを大幅に参考にしました
    • Proxying COM For Stable Hijacks
  • Matt Nelson (@enigma0x3):
    • Userland Persistence with Scheduled Tasks and COM Handler Hijacking
  • @bohops によるCOMハイジャックに関するシリーズ:
    • Abusing the COM Registry Structure: CLSID, LocalServer32, & InprocServer32
    • Abusing the COM Registry Structure (Part 2): Hijacking & Loading Techniques
  • James Forshaw (@tiraniddo):
    • Having Fun with COM
    • COM in 60 seconds
    • OleViewDotNet
  • Casey Smith (@subtee) + @enimga0x3:
    • Windows Operating System Archaeology (スライド, コード)
ツールをダウンロード