所以,我最近才开始尝试 EDR。由于这是我第一次测试 EDR,所以我想要一个开源 EDR 解决方案,这就是 Elastic 的原因。
本文的前言是为了避免EDR检测并执行横向移动到另一台机器。
实验室设置来自 Zeropointsecurity 的 CRTO II 课程。因此,在深入研究之前,对 Cobalt Strike 可延展配置文件进行了一些设置,大多数用于逃避 Cobalt Strike 相关 EDR 检测的配置都是使用以下文章中提到的技术完成的。除此之外还有一些其他配置,但是,出于文章标题的考虑,我将避免详细介绍。
在解释规避技术之前,我先解释一下场景。我们有 2 台机器,WKSTN-1 和 WKSTN-2。两台机器都部署了 EDR 代理,WKSTN-2 启用了 ASR。用户有权访问 WKSTN-1,并且是 WKSTN-2 上的本地管理员。我需要执行横向移动。
因此首先,我必须通过 SMB 传输我的 P2P 信标,它会生成以下警报:通过 SMB 共享可能进行横向工具传输。
如果我们查看规则查询,我们会发现,我们可以通过改变加载器的魔法字节及其扩展来逃避这条规则。
(file.Ext.header_bytes : "4d5a*" or file.extension : ("exe", "scr", "pif", "com", "dll"))] by process.entity_id
我们可以从可塑的 C2 配置文件中修改 PE 在内存中的加载方式。
其次,我们将加载器的扩展名更改为 .png。这样我们就可以避免此警报并将加载器从 WKSTN-1 转移到 WKSTN-2。
传输文件后,如果我们将文件的扩展名从 .png 更改为 .exe,则会生成警报:通过文件共享进行远程执行
如果我们查看此警报的查询,我们将命中以下规则集
process.pid == 4 and (file.extension : "exe" or file.Ext.header_bytes : "4d5a*")] by host.id, file.path
为了逃避此警报,我们可以将扩展名从 .png 更改为 .scr。“.scr”本质上是 Microsoft 用于屏幕保护程序的可执行文件。
更改扩展名后,我们可以使用 SharpWMI 在机器上远程执行 WMI 命令并尝试执行此有效负载,但是会生成另一个警报:WMI 传入横向移动。
在研究了规避技术之后,我发现了另一种不使用 WMI 来执行远程命令的方法。我不会详细介绍这种方法,但你可以在这里阅读。我在 Cobalt Strike 中加载了 scshell BOF 并执行了远程命令,但是,又生成了另一个新警报:通过服务执行系统 Shell。
scshell 10.10.120.102 XblAuthManager "C:\windows\system32\cmd.exe /c C:\windows\CLSMBL.scr"
阅读此警报后,很明显它被检测到是因为 cmd.exe 进程以 SYSTEM 用户身份远程执行。
process.name : ("cmd.exe", "powershell.exe", "pwsh.exe", "powershell_ise.exe")
这种警报很容易规避,只需直接执行有效载荷就足够了。
scshell 10.10.120.102 XblAuthManager "C:\windows\CLSMBL.scr"
然而,并非一切都顺利,又生成了另一个警报:通过 Windows 服务进行可疑执行。
在查看了此警报的规则集后,我注意到了以下排除:
我将存储加载程序的文件路径更改为C:\ProgramData\Microsoft\Search,从那里执行加载程序并获得了 Beacon。:D
漏洞链
1.验证对 WKSTN-2 的访问权限
2. 将 .png 文件上传到排除目录
3. Cobalt Strike 使用“fork and run”来执行命令,Elastic 会检测到这种情况,因此为了避免这种情况,我使用不变的非托管运行空间 PowerShell 将扩展名更改为 .scr。由于这将加载“System.Management.Automation.dll”,我们需要使用已知的进程来加载此 DLL,这就是我在示例中选择 msiexec.exe 的原因。
4. 使用 scshell 执行远程文件
5. 连接 Beacon
结论
我们能够逃避 EDR 警报并从 WKSTN-1 到 WKSTN-2 进行横向移动。
参考
https://www.cobaltstrike.com/blog/cobalt-strike-and-yara-can-i-have-your-signature
https://securityintelligence.com/x-force/defining-cobalt-strike-reflective-loader/
https://www.elastic.co/guide/en/security/current/potential-lateral-tool-transfer-via-smb-share.html
https://www.elastic.co/guide/en/security/current/remote-execution-via-file-shares.html
https://www.elastic.co/guide/en/security/current/wmi-incoming-lateral-movement.html
https://www.elastic.co/guide/en/security/current/system-shells-via-services.html
https://github.com/elastic/protections-artifacts/blob/main/behavior/rules/privilege_escalation_suspicious_execution_via_windows_services.toml
https://github.com/Mr-Un1k0d3r/SCShell
https://www.elastic.co/guide/en/security/current/suspicious-powershell-engine-imageload.html
感谢您抽出
.
.
来阅读本文
点它,分享点赞在看都在这里