DecoyMini 技术交流社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4951|回复: 1

[T1546] T1546.015 - COM 劫持

[复制链接]

188

主题

35

回帖

30

荣誉

Rank: 9Rank: 9Rank: 9

UID
2
积分
354
精华
1
沃币
2 枚
注册时间
2021-6-24

论坛管理

发表于 2022-1-12 16:36:45 | 显示全部楼层 |阅读模式
一、概念

攻击者可以通过执行由对 COM 对象的引用被劫持触发的恶意内容来建立持久性,COM 是 Windows 内部的一个系统,允许通过操作系统实现软件组件之间的交互,对各种 COM 对象的引用存储在注册表中。攻击者可以使用 COM 系统插入恶意代码,通过劫持 COM 引用和关系作为持久性手段来代替合法软件执行。劫持 COM 对象需要更改注册表以替换对合法系统组件的引用,这可能导致该组件在执行时无法工作。当系统组件通过正常的系统操作执行时,将执行攻击者的代码。攻击者可能会劫持使用频率足够高的对象,以保持一致的持久性级别,但不太可能破坏系统内的显着功能,以避免可能导致检测的系统不稳定。

二、涉及到的组织或恶意软件

ADVSTORESHELL、APT28、BBSRAT、ComRAT、JHUHUGIT、KONNI、Mosquito

三、案例

ADVSTORESHELL

某些 ADVSTORESHELL 变种实现持久化是通过将 Payload 注册为 Shell Icon Overlay handler COM 对象

相关报告:http://www.welivesecurity.com/wp ... t-sednit-part-2.pdf

APT28

APT28 将 Payload 替换合法的 MMDeviceEnumerator 对象达到 COM 劫持以实现持久性

相关报告:

http://www.welivesecurity.com/wp ... et-sednit-part1.pdf

https://www.welivesecurity.com/2019/05/22/journey-zebrocy-land/

BBSRAT

根据系统的 CPU 架构,BBSRAT 可以通过替换 COM 对象来实现持久化,例如 MruPidlList {42aedc87-2188-41fd-b9a3-0c966feabec1} 或者 Microsoft WBEM New Event Subsystem {F3130CDB-AA52-4C3A-AB32-85FFC23AF9C1}

相关报告:http://researchcenter.paloaltone ... d-to-roaming-tiger/

ComRAT

ComRAT 通过替换注册表位置中 shell32.dll 路径来劫持 COM 对象以实现持久性

  1. HKCU\Software\Classes\CLSID{42aedc87-2188-41fd-b9a3-0c966feabec1}\InprocServer32
复制代码

JHUHUGIT

JHUHUGIT 通过劫持名为 MMDeviceEnumerator 的类并将 Payload 注册为 Shell Icon Overlay handler COM 对象 ({3543619C-D563-43f7-95EA-4DA7E1CC396A}) 来建立持久性

相关报告:

http://www.welivesecurity.com/wp ... et-sednit-part1.pdf

https://blog.talosintelligence.c ... decoy-document.html

KONNI

KONNI 修改 ComSysApp 服务来加载恶意 DLL Payload

相关报告:https://medium.com/d-hunter/a-lo ... mpaign-b45a0f321e9b

Mosquito

相关报告:https://medium.com/d-hunter/a-lo ... mpaign-b45a0f321e9b

四、缓解措施

这种类型的攻击很难通过预防性控制来轻松缓解,因为它是基于对系统特性的滥用。

五、如何检测

搜索已替换的注册表引用,是检测组件对象模型劫持的有效方法。要注意,尽管一些第三方应用在 HKEY_CURRENT_USER\Software\Classes\CLSID\ 中定义自已的用户 COM 对象,但并不代表位于该路径下的所有用户 COM 对象都不是恶意的,需要对其进行检测。否则,由于此类恶意的用户 COM 对象会在系统加载,所以很难在启动过程中被系统自身发现。而且,用户 COM 对象的注册表项一般不会发生变更,只要发现已知的正常路径被替换,或某个二进制文件被替换为不常见的、指向一个未知位置的二进制文件,就表示有可疑行为,防守方应对此进行调查。同样,可以收集并分析软件 DLL 加载的情况。如果出现任何与 COM 对象注册表修改相关的异常 DLL 加载,则可能表示攻击者已经劫持了 COM 对象。

示例

攻击者可以通过劫持对 COM 对象的引用来触发恶意内容,以此建立持久化或权限提升。这可以通过替换 HKEY_CURRENT_USER\Software\Classes\CLSID\HKEY_CURRENT_MACHINE\Software\Classes\CLSID\ 键下的 COM 对象注册表项来完成。因此,我们在分析时会重点研究在这些键下是否发生了任何变化。

下面这段伪代码用来搜索 COM 对象注册表项是否发生了变更:

  1. registry_keys = search (Registry:Create AND Registry:Remove AND Registry:Edit)
  2. clsid_keys = filter registry_keys where (key = "*\Software\Classes\CLSID\*")
  3. output clsid_keys
复制代码

下面这段伪代码是在 Splunk 平台查找是否有已创建、删除或重命名的注册表项,以及在 Windows COM 对象注册表项下已设置或重命名的注册表项值:

  1. index=__your_sysmon_index__ (EventCode=7 OR EventCode=13 OR EventCode=14)
  2. TargetObject="*\\Software\\Classes\\CLSID\\*"
复制代码

评分

参与人数 1荣誉 +10 金钱 +10 贡献 +10 热心 +10 收起 理由
liuming + 10 + 10 + 10 + 10 很给力!

查看全部评分

0

主题

16

回帖

0

荣誉

Rank: 1

UID
4
积分
25
精华
0
沃币
4 枚
注册时间
2021-6-25
发表于 2022-1-13 15:39:29 | 显示全部楼层
很给力,不错的内容,值得学习和鼓励
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼

Archiver|小黑屋|DecoyMini 技术交流社区 (吉沃科技) ( 京ICP备2021005070号 )

GMT+8, 2024-12-22 16:23 , Processed in 0.064028 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表