在当今的环境中,Mimikatz(一种凭据转储工具)可以被每个 Windows Defender 防病毒软件和 EDR 检测到。这就是为什么某些威胁行为者选择使用 Minidump 等工具而不是 Mimikatz 来从 LSASS 进程中提取凭据。在这种情况下,我的目标是演示 MiniDump 的使用并探索逃避 Windows Defender 检测的方法。
测试环境
操作系统:Windows 10 专业版
版本:21H2
操作系统版本:19044.1288
体验包:Windows功能体验包120.2212.3920.0
Windows Defender 最后更新于 2023 年 11 月 13 日(最新)
Windows 更新最后更新时间为 2022 年 4 月
准备 MiniDump 恶意软件
- 从 C++ 代码创建小型转储可执行文件。该程序将使用名为 MiniDumpWriteDump 的 Win32 API 将 LSASS 转储到内存。为了逃避 Windows Defender,转储的数据在写入磁盘之前必须使用 XOR 进行加密。
参考:https://shorsec.io/blog/its-all-in-the-details-the-curious-case-of-an-lsass-dumper-gone-undetected/
2.使用Donut生成MiniDump可执行文件的ShellCode
docker run -it — rm -v “ ${PWD} :/workdir” donut -i minidump.exe -a 3 -b 3 -e 2 -z 2 -f 8 -o shellcode-hex.bin
参数解释
-a = architecture : x86+amd64
-b = Bypass AMSI/WLDP/ETW-z = compress with aPLib
-f = set shellcode output format to hex
3. 使用 Golang 注入器从 ShellCode 创建可执行文件。我选择了一种标准注入技术,该技术会生成一个子进程,注入其中,然后自行终止。
参考: https: //github.com/Jhangju/goLang-injectors/blob/main/CreateProcess/main.go
go mod init main go get golang.org/x/sys/windows go build main.go
执行
我尝试执行 MinuDump Executable 的每个版本。结果如下。
根据我的测试,如果我使用纯 MiniDump,Windows Defender 可以在执行时检测到活动,并随后隔离 MiniDump 和 LSASS.dmp 文件。在仅使用异或而不进行注入的情况下,文件将被立即检测并隔离。最后,我将 MiniDumpWriteDump 函数与 XOR、Donut ShellCode 和 Golang Injector 结合使用。在这种情况下,Windows Defender 无法检测到文件或活动。
使用 Sysmon 进行检测(详细配置)
事件 ID 1 流程创建
此事件将通过命令行显示恶意软件“mini-v2-createprocess.exe”的执行情况。
事件 ID 7 图像已加载
该程序将“ntdll.dll”和“kernel32.dll”加载到系统中。
“ntdll.dll”文件包含 Windows NT 内核不可或缺的函数,为各种系统服务提供核心功能,包括进程和内存管理。
“kernel32.dll”文件为用户和内核级程序提供基本的系统服务,充当应用程序和实际硬件之间的桥梁。
事件 ID 1 流程创建
此事件将指示“mini-v2-createprocess.exe”生成“notepad.exe”作为子进程。
事件 ID 10 进程已访问
随后,进程“mini-v2-createprocess.exe”访问了进程“notepad.exe”。这表明合法的“notepad.exe”进程被注入来执行某些代码。
事件 ID 5 进程终止
将代码注入“notepad.exe”后,进程“mini-v2-createprocess.exe”自行终止。
在继续下一步之前,了解常规“notepad.exe”正在使用的 DLL 文件非常重要。 DLL列表如下:
事件 ID 7 图像已加载
在正常列表中加载附加 DLL 的“notepad.exe”显得可疑。具体来说,“amsi.dll”文件的存在值得注意,因为它与 Windows 操作系统上的反恶意软件扫描接口 (AMSI) 相关。这表明恶意软件试图绕过 AMSI。此行为与“Donut”的使用一致,其中包括生成 shellcode 时绕过 AMSI 的功能
值得注意的是其他 DLL 的存在,特别是“dbghelp.dll”和“dbgcore.dll”。这些文件与 Microsoft 调试工具关联,用于调试 Windows 系统上的应用程序。值得注意的是,Win32 API 的某些函数(包括主要用于生成指定进程的小型转储文件的“MiniDumpWriteDump”)依赖于这些 DLL。事实上,“notepad.exe”通常不需要这些 DLL,因此此事件显得可疑。
推荐人:https://learn.microsoft.com/en-us/windows/win32/api/minidumpapiset/nf-minidumpapiset-minidumpwritedump
事件 ID 10 进程已访问
此事件表示“notepad.exe”访问了 LSASS 进程。此操作通常与获取 LSASS 中存储的敏感信息(例如凭据)的尝试相关。
事件 ID 11 文件已创建
获得 LSASS 进程的访问权限后,恶意软件会继续将该进程转储到磁盘上的转储文件中。
事件 ID 5 进程终止
最后,注入的记事本进程自行终止。
结论
据我测试,此技术仅适用于 Windows 10,不适用于最新更新的 Windows 11。Sysmon 可以检测所有活动,但需要详细配置才能显示所有事件。但是,它可能对您的计算机有害,因为它会在您的计算机上生成大量日志。
原文始发于微信公众号(安全狗的自我修养):结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论