翻译作者:Nirvana(信安之路红蓝对抗小组成员) 成员招募:信安之路红蓝对抗小组招募志同道合的朋友
这个系列的文章翻译由信安之路红蓝对抗小组的所有成员共同完成,后续将陆续发布,敬请期待!
Windows 分布式组件对象模型(DCOM)是一种透明的中间件,它使用远程过程调用(RPC)技术将组件对象模型(COM)的功能扩展到本地计算机之外。COM 是支持软件对象之间交互的 Windows 应用程序编程接口(API)的组件。通过COM,客户机对象可以调用服务器对象的方法,这些对象通常是动态链接库(dll)或可执行文件(exe)
与本地和远程服务器 COM 对象交互的权限由访问控制列表(ACL)在注册表中决定。默认情况下,只有管理员可以通过 DCOM 远程激活和启动 COM 对象。
攻击者可使用 DCOM 进行横向移动,通过 DCOM,攻击者可在拥有适当权限的情况下通过 Office 应用程序以及包含不安全方法的其他 Windows 对象远程获取任意甚至直接的 shellcode 执行。
在本篇文章中,我们将主要关注与以下两个 COM 对象的使用相关的关键检测指标:
ShellWindows(clsid=9ba05972-f6a8-11cf-a442-00a0c90a8f39)
shellbrowserwindow(clsid=c08afd90-f2a1-11d1-8455-00a0c91f3880)
使用这些 COM 对象的优势在于,从父进程和子进程的关系来看,它看起来是合法的,因为攻击者远程执行的任何操作(例如,cmd.exe、powershell.exe 等)都将是 explorer.exe 的子进程。在这两个方法的执行过程中,我们观察到唯一可靠的指标是 explorer.exe 将绑定到监听的本地 TCP 端口(rpc 动态 TCP 端口 >=49152)。这是非常可疑的(explorer.exe 很少有网络连接,如果有,它将绑定到 Microsoft IP 范围,而不是高 TCP 端口到高 TCP 端口)
下面是使用 dcom\shellbrowserwindow com
对象远程执行 cmd.exe 时的示例:
CBR:
进程名:explorer.exe and ipport:[49152 TO *] and netconn_count:[1 TO *]
我们可以使用安全日志 5158 来检测相同的行为:
IBM 查询语句:
select sourceport, destinationport from events where eventid=5158 and UTF8(payload) IMATCHES '(?i)(.*explorer.exe.*)' last 30 DAYS
https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventID=5158
https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/
https://attack.mitre.org/techniques/T1175/
https://blog.menasec.net/2019/02/threat-hunting-18-lateral-movement-via.html
安全事件 4616 记录系统时间的更改。合法的系统时间变化将有一下特征:
svchost.exe
作为进程名
NT AUTHORITY\LOCAL SERVICE
作为帐户名
https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventID=4616
https://blog.menasec.net/2019/02/threat-hunting-19-suspicious-system.html
使用 Microsoft Windows Shell Core/Operational EID 9707/9708
(默认情况下打开)检测从 run/runonce
自启动位置运行的命令行进程,有利于取证,获取执行历史和计数。
事件文件路径:
%SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-Shell-Core%4Operational.evtx
以下是一台计算机正在运行或从 run/run one
运行的程序的案例:
这些事件对于查找使用 run 或 runone 作为启动机制来感染的痕迹非常有价值。
https://blog.menasec.net/2019/02/threat-hunting-20-runrunonce-eid.html