Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
acCOMplice — 用于发现和利用COM劫持的工具 | Kitploit
工具/GitHubGitHub/nccgroup/accomplice
持久化机制后渗透利用红队Payload 开发
GitHubnccgroup/accomplice

acCOMplice

用于发现和利用COM劫持的工具

查看仓库
339516年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

acCOMplice

你的 COM 劫持同伙

作者:David Tulis (@kafkaesqu3)

概述

该仓库包含用于探索 COM 劫持的代码示例和概念验证。COM 劫持是一种 Windows 后渗透技术,可用于持久化或防御规避。

有关 COM 接口、如何发现劫持以及滥用劫持的技术, 请参阅 Derbycon 9 上的演讲, COM 劫持技术。

  • 幻灯片: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

用于 COM 劫持滥用的 3 个概念验证模板,如 Derbycon 9 演讲中所示:

  • 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 之类的方法并直接打印到控制台 更稳定。

以下展示了注入的 DLL 在主 chrome.exe 进程内运行的 情况:

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,我从中大量借用了代码
    • 代理 COM 以实现稳定劫持
  • Matt Nelson (@enigma0x3):
    • 利用计划任务和 COM 处理程序劫持实现用户态持久化
  • @bohops 关于 COM 劫持的系列文章:
    • 滥用 COM 注册表结构:CLSID、LocalServer32 与 InprocServer32
    • 滥用 COM 注册表结构(第 2 部分):劫持与加载技术
  • James Forshaw (@tiraniddo):
    • 玩转 COM
    • 60 秒了解 COM
    • OleViewDotNet
  • Casey Smith (@subtee) + @enimga0x3:
    • Windows 操作系统考古学(幻灯片、代码)
下载工具