本文将展示如何混淆 Mimikatz 下载器,以绕过 Defender 检测,注意⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。
我将使用一台虚拟机,并在其上安装了 Visual Studio 和 Python。我还将 Windows Defender 中的文档文件夹设为例外,这样我们可以在不被 Defender 打扰的情况下进行操作。
请确保在 Windows 安全设置中禁用样本提交!这样我们可以确保不会过早暴露我们自己的工作技巧。还要避免上传到 VirusTotal。
我们将混淆 BetterSafetyKatz:https://github.com/Flangvik/BetterSafetyKatz
BetterSafetyKatz 的工作方式是,它将直接从 gentilkiwi GitHub 仓库获取最新的预编译 Mimikatz 版本,进行运行时修补已检测到的签名,并使用 SharpSploit DInvoke 将其加载到内存中。你还可以将链接或路径作为参数传递给可执行文件,它会尝试从那里获取 Mimkatz 的 zip 压缩包。
我将下载 BetterSafetyKatz 并从 zip 文件中提取项目。
现在,为了进行一些初步的混淆,我将使用 InvisibilityCloak:https://github.com/h4wkst3r/InvisibilityCloak
这是一个 Python 脚本,可以对 C# Visual Studio 项目进行修改。它将更改文件中的项目名称,然后根据我们给定的方法对字符串进行混淆。
我将把 BetterSafetyKatz 文件夹作为 -d 参数传递,然后将项目名称更改为 DarkMagician,并使用 -n 参数,最后指定我希望使用 -m reverse 来反转所有字符串。
现在我们应该看到我们的项目文件已经被重命名。
我们将在 Visual Studio 中打开它,然后以 Release 方式编译。
它应该能够成功编译且没有错误,我们可以运行程序以确保它正常工作。
完美!现在,让我们尝试看看Defender是否仍然检测到它,如果检测到,找出我们可能需要更改的代码部分。
为此,我们将使用DefenderCheck:https://github.com/matterpreter/DefenderCheck
DefenderCheck将自动将可执行文件分割成若干部分,以识别哪些文件部分触发了Defender的警告。
使用DefenderCheck时,我们需要从在Defender中添加为例外的文件夹运行它,然后禁用实时监控。
它显示Defender仍然将可执行文件检测为恶意。现在让我们查看输出,看看是什么可能导致它被检测到。
输出似乎显示了一些变量和函数名,其中最显眼的是“SharpSploit”,这是BetterSafetyKatz使用的一个.NET后渗透库,可能正是这个触发了Defender。我将使用Visual Studio中的“替换文件中的内容”选项,将“SharpSploit”这个词的每个实例替换为其他内容。
我们再次编译代码,并确保它仍然正常工作。
现在,我将再次运行DefenderCheck。
如果它给我们不同的结果,那是一个好兆头,说明我们改变了它之前检测到的内容。现在我们看到不同的函数和变量名称。既然我看到“Token”这个词出现得很频繁,那为什么不试着替换它呢?
我再次编译,确保它能正常工作,然后再次运行 DefenderCheck。
我们再次得到类似的结果,尽管我们可以看到“Token”已经被更改。有时,触发检测的可能是 DefenderCheck 输出的最后几行。我将替换“Utilities”这个词。
然后再次编译,确保它仍然可以正常工作,再次运行 DefenderCheck。
我们得到了不同的结果,我再次猜测是最后几行中的某一行,替换掉了“Helpers”这个词。
然后重新编译,确保它正常运行,再次运行 DefenderCheck。
我们得到了不同的结果,这里有多个候选项,所以我将替换其中的许多。
我将替换“MiniDump”,“NtRead”和“NtWrite”。
我们再次编译,确保它正常工作,然后再次运行 DefenderCheck。
这次似乎是检测到了其中一个反转的字符串。
我将删除那行代码,因为我们实际上并不需要它,它只是向控制台打印一条消息。
我们再编译一次并运行 DefenderCheck,这次它没有发现任何威胁!
现在我会再次启用实时监控,将文件复制到程序文件夹并运行。我们可以看到它运行完美,没有触发 Defender!
为什么我把它移动到程序文件夹?经过多次实验,我意识到,如果我们将其放在用户文件夹中,Defender的行为检测会被触发,导致我们的可执行文件被删除;但是如果把它放在程序文件夹中,Defender的行为检测就不会被触发。我确保没有将程序文件夹添加为排除项,还测试过将未经过混淆的恶意软件放入程序文件夹,Defender立刻就会删除它们。由于Mimikatz是我们理想中需要以管理员权限运行的工具,因此我们可以将其放在程序文件夹中,以避免触发行为检测。
声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。
原文始发于微信公众号(白帽子左一):混淆Mimikatz下载器以规避Defender检测
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论