绕过 EDR 执行横向移动

admin 2024年12月26日14:42:08评论33 views字数 2811阅读9分22秒阅读模式

由于这是我第一次测试 EDR,因此我想要一个开源的 EDR 解决方案,因此选择了 Elastic。

本文的前言是避免 EDR 检测并执行对另一台计算机的横向移动。

实验室设置来自 Zeropointsecurity 的 CRTO II 课程。因此,在我们深入研究之前,Cobalt Strike 可塑性配置文件有一些设置,大多数用于逃避 Cobalt Strike 相关 EDR 检测的配置都是使用下一篇文章 https://www.cobaltstrike.com/blog/cobalt-strike-and-yara-can-i-have-your-signature 中提到的技术完成的。除此之外,还有一些其他配置,但是,为了文章的标题,我将避免详细介绍。

在解释规避技术之前,我将解释一下这种情况。所以,我们有 2 台机器,WKSTN-1 和 WKSTN-2。两台计算机都部署了 EDR 代理,并且 WKSTN-2 启用了 ASR。用户有权访问 WKSTN-1,并且是 WKSTN-2 的本地管理员。我需要进行横向移动。

因此,首先,我必须通过 SMB 传输我的 P2P 信标,这将生成以下警报:Potential Lateral Tool Transfer via SMB Share(通过 SMB 共享进行潜在横向工具传输) https://www.elastic.co/guide/en/security/current/potential-lateral-tool-transfer-via-smb-share.html。

如果我们查看 rule 查询,我们会看到我们可以通过更改 loader 的 magic bytes 及其扩展来规避此规则。

(file.Ext.header_bytes :"4d5a*"or file.extension : ("exe","scr","pif","com","dll"))]by process.entity_id

我们可以从可延展的 C2 配置文件中修改 PE 在内存中的加载方式。

绕过 EDR 执行横向移动绕过 EDR 执行横向移动

其次,我们将 loader 的扩展名更改为 .png。这样我们就可以避免此警报并将我们的加载程序从 WKSTN-1 转移到 WKSTN-2。

传输文件后,如果我们要将文件的扩展名从 .png 更改为 .exe,将生成一个警报:通过文件共享远程执行

如果我们查看此警报的查询,我们将命中以下规则集

process.pid ==4and (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 并执行了远程命令,但是,生成了另一个新警报:System Shells via Services。

scshell 10.10.120.102 XblAuthManager"C:windowssystem32cmd.exe /c C:windowsCLSMBL.scr"

阅读此警报,很明显,检测到该警报是因为 cmd.exe 进程正在以 SYSTEM 用户身份远程执行。

process.name : ("cmd.exe","powershell.exe","pwsh.exe","powershell_ise.exe")

这个警报很容易规避,直接执行有效载荷就足够了。

scshell 10.10.120.102 XblAuthManager"C:windowsCLSMBL.scr"

然而,并非一切都很顺利,还生成了另一个警报:通过 Windows 服务执行可疑。

在查看此警报的规则集后,我注意到了以下排除项:

绕过 EDR 执行横向移动绕过 EDR 执行横向移动

我将加载程序存储位置的文件路径更改为 C:ProgramDataMicrosoftSearch,从那里执行加载程序并获得一个信标。:D

漏洞利用链

  1. 验证对 WKSTN-2 的访问
绕过 EDR 执行横向移动绕过 EDR 执行横向移动

2. 将 .png 文件上传到 excluded 目录

绕过 EDR 执行横向移动绕过 EDR 执行横向移动

3. Cobalt Strike 使用“fork and run”来执行命令,Elastic 会检测到这些命令,因此为了避免我使用不变的非托管运行空间 PowerShell 将扩展名更改为 .scr。由于这将加载 “System.Management.Automation.dll”,因此我们需要使用已知加载此 DLL 的进程,这就是我在示例中选择 msiexec.exe 的原因。

绕过 EDR 执行横向移动绕过 EDR 执行横向移动

4. 使用 scshell 执行远程文件

绕过 EDR 执行横向移动绕过 EDR 执行横向移动
绕过 EDR 执行横向移动绕过 EDR 执行横向移动

5. 连接到 Beacon

绕过 EDR 执行横向移动绕过 EDR 执行横向移动

结论

我们能够规避 EDR 警报并执行从 WKSTN-1 到 WKSTN-2 的横向移动。

引用

  1. https://www.cobaltstrike.com/blog/cobalt-strike-and-yara-can-i-have-your-signature
  2. https://securityintelligence.com/x-force/defining-cobalt-strike-reflective-loader/
  3. https://www.elastic.co/guide/en/security/current/potential-lateral-tool-transfer-via-smb-share.html
  4. https://www.elastic.co/guide/en/security/current/remote-execution-via-file-shares.html
  5. https://www.elastic.co/guide/en/security/current/wmi-incoming-lateral-movement.html
  6. https://www.elastic.co/guide/en/security/current/system-shells-via-services.html
  7. https://github.com/elastic/protections-artifacts/blob/main/behavior/rules/privilege_escalation_suspicious_execution_via_windows_services.toml
  8. https://github.com/Mr-Un1k0d3r/SCShell
  9. https://www.elastic.co/guide/en/security/current/suspicious-powershell-engine-imageload.html

原文始发于微信公众号(安全狗的自我修养):绕过 EDR 执行横向移动

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月26日14:42:08
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   绕过 EDR 执行横向移动https://cn-sec.com/archives/3555015.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息