滥用COM注册表结构:CLSID,LocalServer32和InprocServer32学习

  1. 前言
  2. 正文

前言

昨天看了一篇:滥用COM注册表结构:CLSID,LocalServer32和InprocServer32进行横向渗透的文章,感觉还不错。决定搞懂这波操作

正文

供应商包括和/或留下可能被攻击者滥用以进行横向移动,规避,绕过和持久性的注册表,可以导致攻击者进行利用和横向移动

使用rundll32.exe -sta {CLSID} 可以调用CLSID,rundll只能用于运行dll
:rundll32.exe -sta {CLSID}只能在powershell2.0版本或2.0版本上执行

rundll32不是2.0版本或以上将出现以下错误

防御手段:卸载程序后,清除注册表里的项值,监视可疑事件(例如:rundll32.exe的使用情况),并实施强大的应用程序白名单(AWL)策略/规则

枚举所有LocalServer32键值

$inproc = gwmi Win32_COMSetting | ?{ $_.LocalServer32 -ne $null }
$inproc | ForEach {$_.LocalServer32} > values.txt
```

枚举所有所有InprocServer32的键值

 $inproc = gwmi Win32_COMSetting | ?{ $_.InprocServer32 -ne $null }
$paths = $inproc | ForEach {$_.InprocServer32} > demo.txt

根据上面找到的路径,去寻找是否这个二进制文件。如果缺失的话就可以执行利用 关键字:File Not Found

自己做的一个小测试:
PS:由于没有真实环境,根据上面的ps1代码收集了所有LocalServer32的二进制路径
我拿FlashUtil_ActiveX.exe做实验
Z0vzPe.png

由于一开始,这个二进制文件权限是TrustedInstaller所有者,你先将其改为Everyone Allow
现在假设缺少这个FlashUtil_ActiveX.exe
首先一开始使用get-acl “文件路径” | fl 查看这个二进制文件的路径权限
Z0xFqP.png

由于上面我们进行收集了注册表所有CLSID,现在去HKCU\CLSID里面搜索FlashUtil_ActiveX.exe,后面得到CLSID
Z0xmGQ.png

我们将calc.exe改名为FlashUtil_ActiveX.exe,然后copy到那个文件路径。
然后执行

[activator]::CreateInstance([type]::GetTypeFromCLSID("CLSID","IP地址"))

即可弹出calc

如果出下如下图指标画出来的错误,先删除原来copy进行的exe。然后在copy一次在执行即可
Z0xYiF.png

通过上面的ps1代码寻找了localServer32和InprocServer32后,如果有关键File not found的话代表那个CLSID缺少二进制文件或dll

注意,powershell版本不同,不能远程操作COM (windows7版本,powershell 1.0,无法控制windows 10 powershell版本5.0)

Z0xNRJ.png

滥用注册表COM CSLID与Rundll32
根据文章中的说明,执行上面所说的ps1代码,然后寻找缺少的dll的路径,使用get-acl “文件路径” | fl 查看路径的权限
Z0xDZ6.png

像上图这种,Everyone为文件所有者的话。可以copy一个恶意dll来代替缺少的dll,然后使用rundll32 -sta {CLSID}执行即可
Z0xsIO.png

让我们使用以下命令加载我们的DLL有效载荷与相应的CLSID:

rundll32.exe -sta {3d09c1ca-2bcc-40b7-b9bb-3f3ec143a87b}

Z0xcJe.png

注意:

HKCU中的CLSID值优先于HKLM中的CLSID值
rundll32 -sta{CLSID} 只能是CLSID里的InprocServer32里面的dll调用
或者直接使用rundll32调用dll

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:滥用COM注册表结构:CLSID,LocalServer32和InprocServer32学习

本文作者:九世

发布时间:2019-07-07, 08:31:09

最后更新:2019-07-07, 09:31:35

原始链接:http://422926799.github.io/posts/d9256889.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录