com组件 的劫持_COM Object hijacking后门的实现思路——劫持CAccPropServicesClass和MMDeviceEnumerator...

0x00 前言

在之前的文章《Use CLR to maintain persistence》介绍了通过CLR劫持所有.Net程序的方法,无需管理员权限,可用作后门。美中不足的是通过WMI添加环境变量需要重启系统。

本文将继续介绍另一种后门的利用方法,原理类似,但优点是不需要重启系统,同样也不需要管理员权限。

注:

本文介绍的方法曾被木马COMpfun使用

详细介绍地址:

0x01 简介

本文将要介绍以下内容:

· 后门思路

· POC编写

· 防御检测

0x02 COM组件

· COM是Component Object Model (组件对象模型)的缩写

· COM组件由DLL和EXE形式发布的可执行代码所组成

· COM与语言,平台无关

· COM组件对应注册表中CLSID下的注册表键值

0x03 后门思路

注:

同使用CLR劫持.Net程序的方法类似,也是通过修改CLSID下的注册表键值,实现对CAccPropServicesClass和MMDeviceEnumerator劫持,而系统很多正常程序启动时需要调用这两个实例,所以,这就可以用作后门来使用,并且,该方法也能够绕过Autoruns对启动项的检测。

32位系统利用方法:

1、新建文件

在%APPDATA%\Microsoft\Installer\ {BCDE0395-E52F-467C-8E3D-C4579291692E}下放入测试dll,重命名为api-ms-win-downlevel-[4char-random]-l1-1-0._dl

注:

重命名为api-ms-win-downlevel-1×86-l1-1-0._dl

如下图

2、修改注册表

注册表位置:HKCU\Software\Classes\CLS\ID

创建项{b5f8350b-0548-48b1-a6ee-88bd00b4a5e7}

创建子项InprocServer32

Default的键值为测试dll的绝对路径:

C:\\Users\a\AppData\Roaming\MicrosoftInstaller\{BCDE0395-E52F-467C-8E3D-C4579291692E}\api-ms-win-downlevel-1x86-l1-1-0._dl

创建键值: ThreadingModel REG_SZ Apartment

注册表内容如下图

3、测试

启动iexplore.exe,触发后门,多次启动calc.exe,最终导致系统死机

启动过程多次调用实例CAccPropServicesClass(),因此导致启动多个calc.exe,最终系统死机

4、优化

可以对dll加一个互斥量,防止重复加载,只启动一次calc.exe

c++代码为:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值