大家好,今天我将展示如何混淆 Mimikatz 下载程序以绕过 Defender 检测。
我将使用安装了 Visual Studio 和 python 的虚拟机,同时在 Windows Defender 中还将 Documents 文件夹作为例外,我们可以在其中工作而不受 Defender 的打扰。
确保进入 Windows 安全中心并禁用样本提交!这样我们就能确保自己的工作技术不会太快被泄露。同时避免上传到 VirusTotal。
我们将对 BetterSafetyKatz 进行混淆。
https://github.com/Flangvik/BetterSafetyKatz
BetterSafetyKatz 的工作方式是,它将直接从 gentilkiwi GitHub 存储库获取最新的 Mimikatz 预编译版本,在运行时修补检测到的签名,并使用 SharpSploit DInvoke 将其放入内存中。您还可以将链接或路径作为参数传递给可执行文件,它将尝试从那里获取 Mimkatz zip 存档。
我将下载 BetterSafetyKatz 并从 zip 文件中提取项目。
现在我将使用 InvisibilityCloack 进行初步混淆
https://github.com/h4wkst3r/InvisibilityCloak
这是一个 Python 脚本,它将对 C# Visual Studio 项目进行修改。它将更改文件上的项目名称,然后根据我们给出的方法对字符串进行混淆。
我将把 BetterSafetyKatz 文件夹作为 -d 的参数,然后我将使用 -n 参数将项目名称更改为 DarkMagician,最后指定我想要使用 -m reverse 反转所有字符串。
现在我们应该看到我们的项目文件已被重命名。
我们将在 Visual Studio 中打开它,然后将其编译为 Release
它应该能够成功编译且没有任何错误,我们可以运行该程序以确保它能正常工作。
完美!现在让我们尝试看看 Defender 是否仍能检测到它,如果能,则找出我们可能需要更改代码的哪些部分。
为此,我们将使用 DefenderCheck
https://github.com/matterpreter/DefenderCheck
它表明 Defender 仍将可执行文件检测为恶意文件。现在让我们看看输出,看看是什么原因导致它检测到它。
输出似乎显示了一些变量和函数名称,其中最突出的是“SharpSploit”,这是 BetterSafetyKatz 使用的 .NET 后期利用库,这可能是触发 Defender 的原因。我将使用 VisualStudio 中的“文件中的替换”选项将单词 SharpSploit 的每个实例替换为其他内容。
我们再次编译代码并确保它仍然有效。
现在我将再次运行 DefenderCheck。
如果它给出了不同的结果,那么这是一个很好的迹象,表明我们改变了它正在检测的东西。现在我们看到了不同的函数和变量名。既然我经常看到 Token 这个词,为什么不试着替换它呢?
我再次编译,确保它正常工作,然后再次运行 DefenderCheck。
尽管我们可以看到单词 Token 发生了变化,但我们再次得到了类似的结果。有时,DefenderCheck 输出的最后几行会触发检测。我将替换单词“Utilities”。
然后再次编译,确保它仍然有效,然后再次运行 DefenderCheck。
我们得到了不同的结果,我将再次押注在最后一行,并将“助手”一词替换
然后编译,确保它有效并再次运行 DefenderCheck。
我们得到了不同的结果,这里有多个候选人,所以我要做的是替换其中的许多。
我将替换“MiniDump”、“NtRead”和“NtWrite”。
我们再次编译,确保它正常工作,然后再次运行 DefenderCheck。
这次它似乎检测到了其中一个反转的字符串。
我将删除该行,因为我们并不真正需要它,因为它所做的只是将消息打印到控制台。
让我们再次编译并运行 DefenderCheck,这次它没有发现威胁!
现在我将再次启用实时监控,将文件复制到 Program Files 并运行它。我们可以看到它运行良好,无需触发 Defender!
我为什么要将它移到 Program Files?经过大量实验后,我意识到如果我们将它放在用户文件夹中,Defender 行为检测将被触发并吞噬我们的可执行文件,但是如果我将它放在 Program Files 中,它不会触发 Defender 行为检测。我确保没有将 Program Files 添加为排除项,还测试了将非混淆的恶意软件放入 Program Files 中,结果发现 Defender 立即吞噬了它们。由于 Mimikatz 是我们理想情况下以管理员权限运行的东西,所以我们可以将其放在 Program Files 中以避免触发行为检测。
最后要说的是,如果几周甚至几天后这不再起作用,请不要感到惊讶。更多地使用本文作为混淆工具的起点,并研究更多方法来进一步混淆它们,例如,您可以尝试其他用于 C# 的混淆工具!
原文始发于微信公众号(Ots安全):混淆 Mimikatz 下载程序以逃避 Defender(2024)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论