使用shellcode打造MSF免杀payload

0x00 前言
经常有同学提及MSF payload的免杀问题,其实除了Veil之处,还有另一种比较轻巧的方案可以打造免杀的payload,那就是shellcode。
0x01 从哪里开始
shellcode是什么,可以去drops搜索学习,但这并不是本文的重点。因为MSF已经为我们提供了shellcode的生成功能,接下来我们就拿最常用的payload:reverse_tcp来做测试吧!(其它的payload均可以)
CobaltStrike:payload>windows>meterpreter>reverse_tcp设置选项如下:监听9527端口。
1.jpg
接下来以同样的方式生成c格式的payload,打开payload查看:
2.jpg
没错,你看到的是shellcode,那么如何编译成我们需要的exe呢?
0x02 如何执行shellcode
经过一番搜索,大致得到了这么几种执行shellcode的方法(c语言,其它语言执行shellcode的方法可自己去寻找)
1:
3.jpg
2:
4.jpg
3:
5.jpg
4:
6.jpg
5:
7.jpg
6:
8.jpg
7:
9.jpg
8:
10.jpg
使用vc6默认的Debug方式编译cpp代码,得到8个payload:
11.jpg
分别使用360安全卫士(开启QVM及小红伞引擎,最新病毒库)和360杀毒扫描:
12.jpg
13.jpg
看起来,免杀是没有问题了,那么这些shellcode是否能正常执行呢?执行生成的8个exe测试下连接效果:
14.jpg
0x03 总结
实际测试过程中发现,减小exe的体积会增加被查杀的风险,使用默认的编译选项即可完美兔杀!
不同的编译器编译生成的exe免杀效果也不同哦!

参考:http://www.360doc.com/content/12/1210/14/1317564_253203715.shtml
http://blog.163.com/rshell/blog/static/41619170201110302937361/

【via@zone-redfree