这个系列的文章翻译由信安之路红蓝对抗小组的所有成员共同完成,后续将陆续发布,敬请期待!
CACTUSTORCH 是一种 JavaScript 和 VBScript 的 shellcode 生成器。它的核心功能是利用 JavaScript 调用对象还原序列化(还原到内存)和从内存载入一个任意的 .NET v2/3.5 程序(脚本用 base64 编码)然后创建远程线程去执行。
支持的输出格式包括 vba(能够通过 office 文档分发)和 HTA。它仅支持注入 32 位的可执行文件。
当执行时,我们能从 sysmon envt8 “CreateRemoteThread”发现:
1、 在一个 32 位程序里创建 64 位的远程线程
2、StartModule/StartFunction 没有映射为 Image
通过 IBM AQL 查询:
select "SourceImage", "TargetImage", "StartModule", "StartFunction" from events where eventid=8 and (SourceImage IMATCHES '(?i)((.*system32\(cscript.|.wscript.*|.*mshta.*))|(.*winword.*|.*excel.*|.*powerpnt.*))') and (TargetImage imatches '.*syswow64.*')
使用默认 CACTUSTORCH 脚本测试:
1 个月测试期间,这个 AQL 查询只匹配了这个事件(12 次,效果不错)
https://github.com/mdsecactivebreach/CACTUSTORCH
https://github.com/tyranid/DotNetToJScript
https://docs.microsoft.com/en-us/dotnet/api/system.runtime.serialization.formatters.binary.binaryformatter?view=netframework-4.7.2
https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=90008
https://blog.menasec.net/2019/02/threat-hunting-detecting-cactustorch.html
RDPWRAP 是一种能够在非 windows server 上启用多并发 RDP 连接的合法第三方工具,它能够让攻击者在受害者还在使用它们计算机的时候使用远程连接操作受害者计算机。
使用 CarbonBlack:
regmod:HKLM\SYSTEM\CurrentControlSet\services\TermService\Parameters\ServiceDll or (process_name:svchost.exe and modload:rdpwrap.dll and modload:termsrv.dll)
相关:
同时要警惕 Terminal Server 注册表值的不正常修改:
1、fSingleSessionPerUser :允许单用户多个连接
2、fDenyTSConnections :允许 Terminal Services 连接
使用 CarbonBlack:
regmod: HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\fSingleSessionPerUser
regmod: HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\fDenyTSConnections
https://github.com/stascorp/rdpwrap
https://blog.menasec.net/2019/02/threat-hunting-rdp-hijacking-via.html>
在这篇文章中,我们将讨论如何检测攻击者使用的两个方法来绕过基于宏的 office 恶意文件的现有标准/已知检测。
方法一:WMI
macro 调用 WMI 生成一个新的进程,它能改变执行流,让 winword.exe 生成 cmd.exe 变成让 wmiprvse.exe 来生成 cmd.exe。(winword.exe 没有生成任何东西,从而绕过标准检测规则):
在 macro 执行过程中,winword.exe 会载入 4 个 WMI 相关模块,这些模块并不常用,所以可以用来检测这种技术。
C:\Windows\System32\wbem\wmiutils.dll
C:\Windows\System32\wbemcomn.dll
C:\Windows\System32\wbem\wbemdisp.dll
C:\Windows\System32\wbem\fastprox.dll
使用 CBR EDR 检测:
(process_name:winword.exe or process_name:excel.exe or process_name:powerpnt.exe) and modload:wmiutils.dll and modload: wbemcomn.dll and wbemdisp.dll and modload:fastprox.dll
方法二:ShellBrowserWindow / ShellBrowser COM Objects
Macro 代码利用下面 COM 对象:
ShellWindows (ClsID = {9BA05972-F6A8-11CF-A442-00A0C90A8F39})
ShellBrowserWindow (ClsID = {c08afd90-f2a1-11d1-8455-00a0c91f3880})
macro 执行后,它的 explorer.exe 会调用或生成 cmd.exe,这种方式很难用常规检测去定位(winword.exe 会生成 powershell.exe 或 cmd.exe 等等)。
COM 调用后,svchost.exe 承载的 DCOMLaunch 服务会生成一个涉及 ShellBrowserWindows CLSID 的具有命令行属性的 rundll32.exe 实例:
我们能够用上面的追踪来建立 EDR 或者系统检测规则。
使用 CBR EDR:
process_name:rundll32.exe and (cmdline:*9BA05972-F6A8-11CF-A442-00A0C90A8F39* or cmdline:*c08afd90-f2a1-11d1-8455-00a0c91f3880*) and parent_name:svchost.exe
https://blog.menasec.net/2019/02/threat-hunting-doc-with-macro-invoking.html