如何使用COM-Hunter检测持久化COM劫持漏洞

2022-07-19
674

关于COM-Hunter

COM-Hunter是一款针对持久化COM劫持漏洞的安全检测工具,该工具基于C#语言开发,可以帮助广大研究人员通过持久化COM劫持技术来检测目标应用程序的安全性。

关于COM劫持

微软在Windows 3.11中引入了(Component Object Model, COM),作为一种实现对象的方法,这些对象可以被不同的框架(ActiveX, COM+, DCOM等)使用,并且在不同的Windows环境中允许互操作性,进程间通信和代码重用。COM对象的滥用使安防团队能够代表受信任的进程执行任意代码。执行COM劫持不需要管理员权限,因为HKCU注册表配置单元中的类在HKLM中的类之前执行。唯一影响高完整性进程(提升)的例外情况是,仅从HKLM位置加载对象,以防止特权提升。

功能介绍

1、在目标用户的计算机中查找有效的CLSID;

2、通过目标用户计算机中的任务调度器(Task Scheduler)查找有效的CLSID;

3、找出是否有人已经使用了这些有效的CLSID来进行持久化COM劫持(LocalServer*32/InprocServer*32);

4、找出是否有人通过任务调度器(Task Scheduler)使用了任何有效的CLSID来执行持久化COM劫持(LocalServer*32/InprocServer*32);

5、尝试通过任务调度器(Task Scheduler)自动执行持久化COM劫持;

6、尝试使用“TreatAs”键来引用其他组件;

工具要求

.NET Framework v4.8

工具下载

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/nickvourd/COM-Hunter.git

工具帮助信息

[+] Usage:

 

    .\COM-Hunter.exe  

 

-> General Options:

    -h, --help      显示帮助信息和退出

    -v, --version    显示工具当前版本

    -a, --about     显示跟工具相关的其他信息

 

-> Modes:

    Search  搜索模式

    Persist  持久化模式

 

-> Search Mode:

    Get-Entry     搜索有效的CLSID条目

    Get-Tasksch  通过任务调度器搜索有效的CLSID条目

    Find-Persist   搜索是否有人已经使用了一个有效的CLSID(安全防御)

    Find-Tasksch 搜索是否有人通过任务调度器(Task Scheduler)使用了任何有效的CLSID(安全防御)

 

-> Persist Mode:

    General     使用常用方法在注册表中实现持久化COM劫持

    Tasksch     尝试通过任务调度器实现持久化COM劫持

    TreatAs     在注册表中尝试使用TreatAs注册表键实现持久化COM劫持

 

-> General Usage:

    .\COM-Hunter.exe  持久化General  

 

-> Tasksch Usage:

    .\COM-Hunter.exe  持久化Tasksch 

 

-> TreatAs Usage:

.\COM-Hunter.exe  持久化TreatAs  

工具使用样例

搜索包含有效CLSID的条目(搜索模式)

.\COM-Hunter.exe Search Get-Entry

寻找持久化劫持点(搜索模式)

.\COM-Hunter.exe Search Find-Persist

常用方法(持久化模式)

.\COM-Hunter.exe Persist General 'HKCU:Software\Classes\CLSID\...' C:\Users\nickvourd\Desktop\beacon.dll

计划任务(持久化模式)

.\COM-Hunter.exe Persist Tasksch C:\Users\nickvourd\Desktop\beacon.dll

有效CLSID格式样例

Software\Classes\CLSID\...

HKCU:Software\Classes\CLSID\...

HKCU:\Software\Classes\CLSID\...

HKCU\Software\Classes\CLSID\...

HKEY_CURRENT_USER:Software\Classes\CLSID\...

HKEY_CURRENT_USER:\Software\Classes\CLSID\...

HKEY_CURRENT_USER\Software\Classes\CLSID\...

许可证协议

本项目的开发与发布遵循MIT开源许可证协议。

项目地址

COM-Hunter:【GitHub传送门

参考资料

https://courses.zeropointsecurity.co.uk/courses/red-team-ops

https://twitter.com/zeropointsecltd

https://twitter.com/dimtsikopoulos

https://twitter.com/0xvm

转载时必须以链接形式注明原始出处及本声明

扫描关注公众号