COM 劫持
COM 劫持 是什么?
COM 劫持一种持久化技术,将 Windows 组件对象模型的 CLSID 查找重定向到攻击者代码,只要宿主进程实例化该对象就会执行。
COM 劫持(MITRE ATT&CK T1546.015)滥用 Windows 组件对象模型的注册机制。每个 COM 对象由位于 HKLM 或 HKCU 的 CLSID 标识;Windows 优先检查每个用户的 HKCU\Software\Classes\CLSID,因此普通用户即可为高频 CLSID 注册恶意的 InProcServer32,从而让 Explorer、Office 或计划任务加载其 DLL 或脚本对象。由于触发点是合法的 CoCreateInstance API 调用,因而隐蔽性强、能够跨越重启保持。检测重点是 HKCU 下的新 CLSID 项、可写路径下的未签名 DLL,以及 explorer.exe 的异常子进程;防御措施包括启用 AppLocker/WDAC、Sysmon 注册表监控,以及收紧敏感键的写权限。
● 示例
- 01
在 HKCU\Software\Classes\CLSID 下注册恶意 InProcServer32,劫持 Explorer 登录时加载的 CLSID。
- 02
劫持计划任务的 COM 处理程序,让例行任务加载攻击者代码。
● 常见问题
COM 劫持 是什么?
一种持久化技术,将 Windows 组件对象模型的 CLSID 查找重定向到攻击者代码,只要宿主进程实例化该对象就会执行。 它属于网络安全的 攻击与威胁 分类。
COM 劫持 是什么意思?
一种持久化技术,将 Windows 组件对象模型的 CLSID 查找重定向到攻击者代码,只要宿主进程实例化该对象就会执行。
COM 劫持 是如何工作的?
COM 劫持(MITRE ATT&CK T1546.015)滥用 Windows 组件对象模型的注册机制。每个 COM 对象由位于 HKLM 或 HKCU 的 CLSID 标识;Windows 优先检查每个用户的 HKCU\Software\Classes\CLSID,因此普通用户即可为高频 CLSID 注册恶意的 InProcServer32,从而让 Explorer、Office 或计划任务加载其 DLL 或脚本对象。由于触发点是合法的 CoCreateInstance API 调用,因而隐蔽性强、能够跨越重启保持。检测重点是 HKCU 下的新 CLSID 项、可写路径下的未签名 DLL,以及 explorer.exe 的异常子进程;防御措施包括启用 AppLocker/WDAC、Sysmon 注册表监控,以及收紧敏感键的写权限。
如何防御 COM 劫持?
针对 COM 劫持 的防御通常结合技术控制与运营实践,详见上方完整定义。
COM 劫持 还有哪些其他名称?
常见的别称包括: 组件对象模型劫持, CLSID 劫持。
● 相关术语
- attacks№ 331
DLL 劫持
一种滥用 Windows DLL 搜索顺序的攻击,使合法程序加载攻击者控制的库,而不是预期的库。
- attacks№ 054
AppInit_DLLs
Windows 早期持久化技术,通过滥用注册表值,将指定 DLL 加载到所有链接 user32.dll 的用户态进程中。
- attacks№ 515
IFEO 注入
一种利用 Windows 注册表 Image File Execution Options 项的持久化与提权技术,只要目标可执行文件启动就会触发攻击者代码。
- attacks№ 1246
WMI 事件订阅持久化
一种持久化手法,注册永久 WMI 事件过滤器和消费者,使攻击者代码在指定系统事件发生时被触发。
- attacks№ 914
注册表 Run 键持久化
经典 Windows 持久化技术,在 Run 或 RunOnce 注册表项中添加条目,使二进制或脚本在每次用户登录时执行。
- attacks№ 975
计划任务持久化
一种持久化与执行手法,攻击者创建或修改 Windows 计划任务,使载荷在登录、开机或定时等触发条件下运行。