2025 年 EDR 规避的新趋势

admin 2025年2月17日09:55:48评论29 views字数 2900阅读9分40秒阅读模式
2025 年 EDR 规避的新趋势

您已经知道端点检测和响应 (EDR)会监控 Windows API 调用是否存在可疑行为。通常,他们使用用户模式 API 挂钩等技术来拦截 ntdll.dll 中的函数。到目前为止,我们使用了诸如直接系统调用、C 语言、汇编语言、SysWhispers 或 Halo's Gate 等规避方法,但仅靠这些措施已经不够了,因为现代 EDR 已经发展并包含了多种检测机制:

  • Windows 和 EDR 现在使用Windows 事件跟踪 (ETW)来捕获实时活动。 ETW 可以检测进程何时进行异常系统调用或在 RWX 内存中执行代码。

  • 另外,我们不要忘记AMSI(反恶意软件扫描接口),它可以扫描并阻止正在运行的 shellcode。

  • 在内核模式下监控。即使我们避免使用 ntdll.dll 中的钩子,现代 EDR 也会在内核模式下检查系统调用。这意味着即使攻击者使用直接系统调用,EDR 仍然可以检测到异常行为(例如 RWX 内存分配)。

  • 启发式和基于行为的检测:即使没有 ntdll.dll 中的挂钩,也可以检测到将代码加载到可执行内存中、进行堆栈修改或产生可疑子进程的进程。

  • 一些 EDR 实现基于机器学习的检测,寻找代码执行中的行为模式。

  • 内存检查和 shellcode 检测。此外,EDR hooks、ETW 和 Page Guard 等工具可以检测 shellcode 何时尝试在非合法内存中执行。

  • 一些 EDR 现在强制针对系统调用践踏进行保护并监视进程正在调用哪些 Windows 函数。

...

那么我们凡人究竟怎样才能逃避我们所喜爱的和臭名昭著的 EDR 呢?

你可以想象,攻击者已经开发出新技术来绕过这些保护措施。在本文中,我们探讨了逃避 EDR 的最新技术:

🔨 1. 高级 Syscall Stomping

您已经知道,现代 EDR 已经可以检测直接系统调用,因此攻击者采用了系统调用踩踏等技术来混淆检测机制。

📝概念:

不是直接调用可疑的系统调用(例如NtAllocateVirtualMemory),而是用所需系统调用的号码覆盖另一个系统调用。

👨‍💻 汇编代码示例:

mov r10, rcxmov eax, 0x3F  ; Cambiar el número de syscallsyscallret

✅优点:避免在 EDR 日志中检测到可疑的系统调用。 

🚨缺点:一些 EDR 现在可以检测系统调用序列中的异常。

🔨 2. 使用影子堆栈进行间接系统调用

Windows 已经实现了Shadow Stacks来检测函数调用篡改。攻击者已经开始使用间接系统调用,从映射内存调用函数。

👨‍💻 C 代码示例:

HMODULE hNtdll = LoadLibraryA("C:\Windows\System32\ntdll.dll");pNtAllocateVirtualMemory NtAllocateVirtualMemory = (pNtAllocateVirtualMemory)GetProcAddress(hNtdll, "NtAllocateVirtualMemory");

✅优点:使用干净的副本,ntdll.dll避免钩子。 

🚨缺点:ntdll.dll如果您从不寻常的位置进行映射,某些 EDR 会检测。

🔨 3. 滥用 Windows 回调

2025 年最有效的趋势之一是滥用Windows 回调(例如APC)DPC和ETW在合法进程的上下文中执行恶意代码。

📝概念:

EDR 依赖于ETW记录可疑事件。通过在运行时禁用 ETW,可以逃避检测。

👨‍💻 禁用 ETW 的 C++ 示例:

voidDisableETW(){    ULONG OldProtect;    PVOID EtwEventSend = GetProcAddress(GetModuleHandleA("ntdll.dll"), "EtwEventWrite");    VirtualProtect(EtwEventSend, 1, PAGE_EXECUTE_READWRITE, &OldProtect);    *(BYTE*)EtwEventSend = 0xC3// Reemplaza la primera instrucción con RET}

✅优点:防止EDR记录可疑事件。 

🚨缺点:一些 EDR 检测到ntdll.dll内存中的修改。

🔨 4.地狱之门和天堂之门 2.0

这些技术允许在不被发现的情况下切换x86和x64执行系统调用。

📝概念:

天堂之门: 64 位进程执行 32 位系统调用以避免被发现。

地狱之门 2.0:系统调用直接从 识别并执行ntoskrnl.exe。

✅优点:完全避免钩住ntdll.dll。 

🚨缺点:在现代版本的 Windows 上难以实现和检测。

🔨5.幻影进程

一种将合法进程替换为恶意进程而 EDR 无法检测到的技术。

👨‍💻示例:

创建一个暂停的进程(CreateProcess用CREATE_SUSPENDED)。

进程内存被替换(NtUnmapViewOfSection + VirtualAllocEx)。

该进程恢复(ResumeThread)。

✅优点:该进程在日志中仍然显示为合法。 

🚨缺点:高级 EDR 可以检测执行流程中的异常。

🔨 6. 其他

对象回调滥用:操纵内核对象回调以在特权进程中执行恶意代码。

Process Hollowing 2.0:改进的变体,使用监控较少的 API 来替换内存中的进程。

内核回调劫持:劫持内核回调以转移合法进程的执行。

LSASS 线程操作滥用:在 LSASS 中创建和操作线程以逃避检测,而无需转储整个内存。

更远? 2025 年 EDR 规避的新趋势 好吧,我认为我们有一个很好的列表,可以开始深入研究其中的一些,并将它们添加到 Windows 上的 Maldev 系列中:

MalDev 实践系列:

  • 基本 shellcode 加载器

https://www.hackplayers.com/2022/07/maldev-practico-shellcode-loader-basico.html

  • shellcode注入基础

https://www.hackplayers.com/2022/07/maldev-practico-shellcode-injection.html

  • 僵尸线程

https://www.hackplayers.com/2022/07/maldev-practico-zombiethread.html

  • 基本 AV 规避 

https://www.hackplayers.com/2022/07/maldev-practico-evasion-de-av-basica.html

  • 基本 EDR 规避  

https://www.hackplayers.com/2022/08/maldev-practico-evasion-de-edr-basica.html

  • 无线程进程注入

https://www.hackplayers.com/2023/03/maldev-practico-threadless-injection.html

  • 早期级联注入

https://www.hackplayers.com/2025/01/early-cascade-injection.html

请记住...如果您真的想逃避 EDR,您将需要使用 组合技术...

原文始发于微信公众号(Ots安全):2025 年 EDR 规避的新趋势

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月17日09:55:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   2025 年 EDR 规避的新趋势https://cn-sec.com/archives/3748265.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息