结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测

admin 2024年1月29日21:20:59评论21 views字数 2805阅读9分21秒阅读模式

结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测

在当今的环境中,Mimikatz(一种凭据转储工具)可以被每个 Windows Defender 防病毒软件和 EDR 检测到。这就是为什么某些威胁行为者选择使用 Minidump 等工具而不是 Mimikatz 来从 LSASS 进程中提取凭据。在这种情况下,我的目标是演示 MiniDump 的使用并探索逃避 Windows Defender 检测的方法。

 

测试环境

操作系统:Windows 10 专业版

版本:21H2

操作系统版本:19044.1288

体验包:Windows功能体验包120.2212.3920.0

结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
操作系统信息

Windows Defender 最后更新于 2023 年 11 月 13 日(最新)

结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
Windows Defender 已更新

Windows 更新最后更新时间为 2022 年 4 月

结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
去年的最后一次 Windows 更新

准备 MiniDump 恶意软件

  1. 从 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

结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
将可执行文件转换为 ShellCode
结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
十六进制格式的 ShellCode

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
结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
生成Shellcode注入程序

执行

我尝试执行 MinuDump Executable 的每个版本。结果如下。

结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
测试结果

根据我的测试,如果我使用纯 MiniDump,Windows Defender 可以在执行时检测到活动,并随后隔离 MiniDump 和 LSASS.dmp 文件。在仅使用异或而不进行注入的情况下,文件将被立即检测并隔离。最后,我将 MiniDumpWriteDump 函数与 XOR、Donut ShellCode 和 Golang Injector 结合使用。在这种情况下,Windows Defender 无法检测到文件或活动。

结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
MiniDump 逃避 Windows Defender

使用 Sysmon 进行检测(详细配置)

事件 ID 1 流程创建

此事件将通过命令行显示恶意软件“mini-v2-createprocess.exe”的执行情况。

结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
MiniDump进程创建

事件 ID 7 图像已加载

该程序将“ntdll.dll”和“kernel32.dll”加载到系统中。

“ntdll.dll”文件包含 Windows NT 内核不可或缺的函数,为各种系统服务提供核心功能,包括进程和内存管理。

“kernel32.dll”文件为用户和内核级程序提供基本的系统服务,充当应用程序和实际硬件之间的桥梁。

结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
加载图像ntdll.dll
结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
加载的图像kernel32.dll

事件 ID 1 流程创建

此事件将指示“mini-v2-createprocess.exe”生成“notepad.exe”作为子进程。

结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
MiniDump 衍生记事本

事件 ID 10 进程已访问

随后,进程“mini-v2-createprocess.exe”访问了进程“notepad.exe”。这表明合法的“notepad.exe”进程被注入来执行某些代码。

结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
小型转储访问记事本进程

事件 ID 5 进程终止

将代码注入“notepad.exe”后,进程“mini-v2-createprocess.exe”自行终止。

结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
MiniDump 自行终止

在继续下一步之前,了解常规“notepad.exe”正在使用的 DLL 文件非常重要。 DLL列表如下:

结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
记事本使用过的普通DLL列表

事件 ID 7 图像已加载

在正常列表中加载附加 DLL 的“notepad.exe”显得可疑。具体来说,“amsi.dll”文件的存在值得注意,因为它与 Windows 操作系统上的反恶意软件扫描接口 (AMSI) 相关。这表明恶意软件试图绕过 AMSI。此行为与“Donut”的使用一致,其中包括生成 shellcode 时绕过 AMSI 的功能

结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
记事本加载amsi,dll

值得注意的是其他 DLL 的存在,特别是“dbghelp.dll”和“dbgcore.dll”。这些文件与 Microsoft 调试工具关联,用于调试 Windows 系统上的应用程序。值得注意的是,Win32 API 的某些函数(包括主要用于生成指定进程的小型转储文件的“MiniDumpWriteDump”)依赖于这些 DLL。事实上,“notepad.exe”通常不需要这些 DLL,因此此事件显得可疑。

结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
记事本加载dbghelp.dll
结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
记事本加载dbgcore.dll
结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
小型转储 需要 dbghelp.dll 和 dbgcore.dll

推荐人:https://learn.microsoft.com/en-us/windows/win32/api/minidumpapiset/nf-minidumpapiset-minidumpwritedump

事件 ID 10 进程已访问

此事件表示“notepad.exe”访问了 LSASS 进程。此操作通常与获取 LSASS 中存储的敏感信息(例如凭据)的尝试相关。

结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
受感染的记事本访问 LSASS 进程

事件 ID 11 文件已创建

获得 LSASS 进程的访问权限后,恶意软件会继续将该进程转储到磁盘上的转储文件中。

结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
受感染的记事本转储文件到磁盘

事件 ID 5 进程终止

最后,注入的记事本进程自行终止。

结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测
受感染的记事本自行终止

结论

据我测试,此技术仅适用于 Windows 10,不适用于最新更新的 Windows 11。Sysmon 可以检测所有活动,但需要详细配置才能显示所有事件。但是,它可能对您的计算机有害,因为它会在您的计算机上生成大量日志。

 

原文始发于微信公众号(安全狗的自我修养):结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月29日21:20:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   结合使用 MiniDumpWriteDump、Donut 和进程注入技术来逃避 Windows Defender 检测http://cn-sec.com/archives/2439819.html

发表评论

匿名网友 填写信息