欢迎回来!在此博客文章中,我们将再次面对 Microsoft 的 Defender For Endpoint EDR,看看我们是否可以从低完整性上下文转到域管理员,并在域控制器上远程执行代码!
在过去的几个月里,我一直在深入研究不同的技术,看看我们能用开源工具做些什么来对抗目前最流行的 EDR 之一。
在这篇博客中,我将介绍一些关于使用域控制器的常见概念,但使用我找到的不同技术。
这些包括:
-
使用 UACME 自定义二进制文件的 UAC 旁路
-
使用 CrackMapExec 和 SharpWMI.exe 进行横向移动
-
会话传递到 Covenant
-
带 Covenant 的 DCSync
那么让我们开始吧!
浩劫 C2
我已经介绍了如何启动和运行 Havoc。如果你不熟悉它,可以看看我的帖子 使用 Havoc C11 在 Windows 2 上安装系统.
启动我的 C2 后,我将生成一些 shellcode 并通过我自己的 shellcode 工具 Harriet 运行它。
现在我有了一个 FUD 二进制文件,我可以将其传输到我的 AD 环境中的第一个工作站。
根据我之前的帖子,我们这里有一个非常小的 AD 环境。出于时间和博客空间的目的,我们将从中等上下文中的已知 DA 开始。
我将我的植入物转移到 Win11-Blue.blueteam.local 并取回我们最初的信标。
让我们检查 EDR,看看初始执行是否成功。
全都安静!好!我们可以继续前进。执行一个简单的 “whoami” 命令表明 Danny 在 DA 组中。
运行 SharpUp 告诉我们,我们可以执行 UAC 绕过来获取管理员权限。
自定义 UACME 二进制文件
在上一篇文章中,我使用了 ComputerDefaults 获取 admin 的方法,但 Defender For Endpoint 目前正在捕获该方法。我们希望获得没有警报的 DA,因此我们将做一件离谱的事情:将一些东西放到磁盘上!
在我的 Windows 11 开发计算机上,我克隆了 UACME 项目。
git clone https://github.com/hfiref0x/UACME.git
我们加载 sln 文件并加载了我们的项目。
编译后,UACME 二进制文件命名为 Akagi,因此我们将开始自定义在解决方案资源管理器的该部分中找到的文件。
展开项目,我们会看到头文件、资源等的几个部分。
我们可以通过快速查找和替换项目中找到的常见字符串来开始我们的过程。
我们可以替换的其他一些字符串如下:
赤城
UACME公司
UAC
有效载荷
如果我们现在尝试构建解决方案,它会失败。
它找不到图标文件,因为我们没有更改它的名称。因此,我们需要在 Akagi 文件夹中更改它的名称。
更改图标的名称后,它会成功构建。
现在,如果我们查看构建的二进制文件的详细信息,我们会看到有一些明显的属性。
我们在项目中快速搜索 APT 92,找到包含这些描述的 Resources.rc 文件。
遍历 Source files(源文件),我们看到 methods 文件夹。
这些方法文件中的每一个都表示要在已编译的二进制文件中使用的不同 UAC 旁路。如果我们遍历这些方法中的每一个,我们会看到带有方法名称的各种注释。要绕过 Defender 和其他 AV 引擎,我们需要从每个方法文件中删除这些注释。
从方法文件中删除所有注释可能需要很长时间,但我们应该只需要执行一次,即可获得不会被 AV 捕获的二进制文件。
在我们从文件中删除所有注释并重新编译后,我们得到了我们的二进制文件。对 AntiScan.me 运行它,我们会看到我们绕过了几个 AV 供应商。
根据 Windows Defender 对其进行扫描,我们发现它未被检测到。
获取管理员
回到 Havoc,我们只需要将二进制文件上传到我们的目标。
让我们检查 Microsoft 的 EDR,看看我们是否已经被抓住了。
看起来不像。让我们继续吧!
在目标上放置 UACME 二进制文件后,我们需要使用我们的方法执行它。Powershell 和 shell 命令可能会让我们陷入困境,因此让我们使用 WMI。幸运的是,SharpWMI 允许我们在内存中运行命令。
但首先,我们需要一个适用于 Windows 11 的方法。
59 看起来不错。让我们用 SharpWMI 调用我们的方法。
dotnet inline-execute /home/user/Desktop/SharpWMI.exe action=exec computername=WIN11-BLUE.blueteam.local command=“C:UsersdannyDownloadsAcaji.exe 59 C:UsersdannyDownloadsInj3c13.exe”
我们取回了我们的管理员信标!
再次检查我们的 EDR,我们没有检测到。
伟大!因此,既然我们已经确定可以在不触发 EDR 的情况下执行代码,那么我们可以使用相同的方法跨域移动到 DC。
注意:当然,您不会在实际应用程序中执行此操作。我们有一个 DA,因此我们可以直接进行 DCsync,但我们想看看是否可以在不更改 EDR 的情况下移动。
横向移动
所以在 WIN11-BLUE 上,我们能够上传我们的二进制文件,但是当我们在 DC 上没有信标时,我们该怎么做呢?
在之前的博文中,我证明了我们可以使用 Powershell 和计划任务来做到这一点。在这篇文章中,我们将使用不同的方法。我们将使用 CrackMapExec 将二进制文件上传到目标,然后使用 SharpWMI 调用它。
为我们的攻击做准备
因此,对于这个 POC,我们将再次假装 DC 上有一份我们需要泄露的绝密文件。我们需要做的第一件事是获取用户 Danny 的密码或哈希值。
由于我们是管理员,我们可以使用多种方法来获取哈希值,但对我来说最简单的是会话传递给 Covenant 并使用他们的 DCsync 命令。
所以在 Covenant 上,我们设置了我们的 shellcode 文件并将其下载到我们的本地系统。
为简单起见,我将文件名更改为 grunt.bin,然后我将通过 Harriet 运行它。这将对其进行加密,以便我们可以通过 EDR。
现在我们有一个二进制文件,我们可以使用 Donut 将其转换回 shellcode。
最后一部分是将其注入到 Havoc 可执行文件的进程中。
成功注入 shellcode 后,我们转到 Covenant 并有一个新的 grunt 签入。
让我们来看看 EDR。
这里没什么可看的!我们可以继续前进!
回到 Covenant,我们可以使用 DCsync 命令并获取 Danny 的哈希值。几秒钟后,Danny 和域已归所有者所有。
好吧,很酷。因此,我们已经证明了我们可以获取 DA 的哈希值。但是一旦你有了它,你会怎么处理它呢?请记住,我们执行的目标不是获得域控制权,而是获得 DC 上的秘密文件。
移动到域控制器
我们有一个 FUD 可执行文件,需要将其上传到 DC。为此,我们将使用 CrackMapExec。所以这是我们的命令。
crackmapexec smb 192.168.1.9 -u danny -H 83c4be1a3fd33a182dafc8bd3bf53d00 -d blueteam.local — put-file /home/kali/Desktop/Inj3c13.exe \WINDOWS\TEMP\25N0v3.exe
我们使用的是 SMB 模块,并且我们有域控制器的 IP。然后我们使用 danny 的用户名并输入他的 NTLM 哈希。我们有域,然后使用 “ — put-file” 命令和我们的 FUD 可执行文件的路径,然后是我们希望将文件拖放到 DC 上的目录。
让我们试一试。
就这样,我们的可执行文件就在 DC 上了!现在我们需要调用它。我们可以使用 SharpWMI.exe 在内存中执行此操作,就像我们对 WIN11-BLUE 所做的那样。
现在我们在 DC 上有一个高度完整的信标!
让我们找到战利品吧!
经过一番列举,我们在 Danny's Documents 文件夹中找到了它。
让我们下载它。
在我们查看之前,让我们先检查 EDR。
这东西有什么用呢?
这是战利品!
好吧!因此,在这篇文章的结论中,让我们谈谈我们做了什么以及我们是怎么做到的。
我们从低完整性信标开始,然后通过创建自定义的 UACME 二进制文件来升级我们的权限,该二进制文件通过 Windows Defender 和 Windows Defender for Endpoint。
然后,我们调用内存中带有 SharpWMI.exe 的 UACME 二进制文件,以便更隐蔽地使用 Powershell 或 shell 命令。
一旦我们的权限最大化,我们就向 Covenant 执行会话传递,以使用 DCsync 命令获取 DA 的 NTLM 哈希。然后,我们使用 CrackMapExec 将信标上传到 DC 并使用 SharpWMI.exe 调用它。
那么,这个环境是如何为我们的成功而设计的呢?默认情况下,域控制器、Windows Server 或 Windows 11 工作站的 WMI 未打开。
但是,在现代企业环境中,这些计算机中的大多数都将打开 WMI,以便系统管理员更轻松地进行故障排除。我们也从 DA 的账户开始了我们的旅程,但那只是为了让文章更方便一些。
同样重要的是要了解我们没有在系统上安装任何其他 AV。如果您还记得,BitDefender 将我们的 UACME 二进制文件视为恶意的。因此,在真正的渗透测试中使用它时要小心。
其它课程
QT开发底层原理与安全逆向视频教程
linux恶意软件开发对抗与基于ebpf网络安全视频教程(2024最新)
linux文件系统存储与文件过滤安全开发视频教程(2024最新)
linux高级usb安全开发与源码分析视频教程
linux程序设计与安全开发
-
windows恶意软件开发与对抗视频教程
-
-
-
windows网络安全防火墙与虚拟网卡(更新完成)
-
-
windows文件过滤(更新完成)
-
-
USB过滤(更新完成)
-
-
游戏安全(更新中)
-
-
ios逆向
-
-
windbg
-
-
还有很多免费教程(限学员
-
-
-
更多详细内容添加作者微信
-
-
原文始发于微信公众号(安全狗的自我修养):从工作站到域控制器,配备 Havoc C2 和 Microsoft EDR
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论