C++编写的绕过EDR的漏洞验证工具

简介

自注入Shellcode生成器是一种用于绕过各种EDR(终端威胁检测与响应)技术的工具,它基于C++编写,利用了Windows的线程池技术来隐藏调用堆栈,并采用间接系统调用来规避NTDLL中的挂钩。

图片[1]-C++编写的绕过EDR的漏洞验证工具-山海云端论坛

功能特点

  • 调用堆栈欺骗:利用Windows线程池技术,隐藏调用堆栈,使得执行路径看起来不符合恶意软件行为的特征。
  • 间接系统调用POC:通过间接调用系统调用来绕过NTDLL中的挂钩,以规避EDR的检测。
图片[2]-C++编写的绕过EDR的漏洞验证工具-山海云端论坛
图片[3]-C++编写的绕过EDR的漏洞验证工具-山海云端论坛

实现原理

自注入Shellcode生成器通过以下方式实现EDR规避:

  1. 调用堆栈欺骗:利用Windows线程池技术隐藏调用堆栈。从Cordyceps代码中可以看到,它执行了一个跳转到ntdll以利用其中一个系统调用指令。然而,当在ntdll中执行返回时,会返回到ntdll中的tpWorker代码。因此,从EDR的角度来看,似乎是ntdll在调用自身的另一部分,这样就不会被视为恶意操作。
  2. 间接系统调用:通过间接调用系统调用来规避NTDLL中的挂钩。这种方法使得系统调用的真实目标在运行时才会被解析,从而使得EDR无法准确地检测到恶意行为。

未来升级

  • 实现自动搜索系统调用号的机制,以提高工具的灵活性和适用性。
  • 添加内存有效载荷解密功能,以增强工具的隐蔽性和攻击效果。

汇编与编译

<code>nasm -f win64 ./syscalls.asm -o ./syscalls.obj g++ -o cordyceps.exe main.cpp syscalls.obj</code>

注意事项

  • 此POC是为Windows 10开发的。在实际环境中使用时,需要根据相应的Windows版本调整系统调用号。

项目地址

https://github.com/pard0p/CallstackSpoofingPOC

通过结合调用堆栈欺骗和间接系统调用技术,自注入Shellcode生成器提供了一种有效的方式来绕过各种EDR技术的检测,为渗透测试和安全研究提供了有力工具。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容