拆解RedTiger-Tools项目架构:渗透测试OSINT工具的JSON配置、双模式CLI解析与插件注入机制深度解析
【免费下载链接】RedTiger-Tools
RedTiger-Tools is a multifunction automation tool dedicated to pentesting and OSINT. The project is open source and designed to be fully configurable according to user needs. It also includes a plugin system that allows users to extend or create new features, in order to centralize multiple tools into a single unified platform.
RedTiger-Tools 是一款开源的渗透测试(Pentesting)+ OSINT 开源情报自动化多功能工具,它将 17 个扫描、追踪、查询类工具整合进同一个命令行平台,并支持通过 JSON 文件集中配置和通过插件系统自由扩展。本文带你从目录结构、JSON 配置体系、双模式 CLI 解析到插件注入机制,逐层拆解它的内部架构,即使你刚接触 Python 项目源码,也能看懂它的"工具箱"是如何运转的。
1. 项目总览:一个"瑞士军刀"式工具箱
RedTiger-Tools 把安全工具按三大类组织,内置功能一览:
| 分类 | 内置工具(编号) |
|---|---|
| 🔍 Pentesting | Advanced Scanner、Vulnerability Scanner、Port Scanner、URL Discovery Crawler、IP Pinger、Host Discovery |
| 🕵️ Osint | Dorking Query Engine、Wallet Tracker、Username Tracker、Email Tracker、Email Lookup、Ip Lookup、Phone Number Lookup、Instagram Profile Lookup |
| 🧰 Utilities | File Metadata Scanner、File Metadata Deleter、Website Cloner |
| 🧩 Plugins | 由用户自行扩展(见第 5 节) |
所有工具的源码都集中在 Program/ 目录下,例如端口扫描器 Program/NSPortScanner.py、用户名追踪器 Program/OUsernameTracker.py。这种"一个模块一个工具"的划分,是理解后续架构的钥匙。
2. 目录结构:配置与代码严格分离
RedTiger-Tools 采用数据驱动的目录布局,改配置不用碰代码:
RedTiger-Tools/ ├── redtiger.py # 唯一入口:注册选项、注入插件、双模式调度 ├── setup.py # 一键安装依赖 + 初始化界面设置 ├── Config/ │ └── Utils.py # 全局工具库:加载JSON、日志、代理、颜色 ├── Data/ # 9个JSON配置文件(默认参数、端口库、载荷库等) ├── Plugins/ # 插件目录:放.py文件即自动生效 │ └── Example.py # 官方插件示例 └── Ouput/ # 工具产出的JSON结果路径常量在 Config/Utils.py#L22-L38 中集中定义:程序以自身所在目录为根,推导出Data、Plugins、Ouput等路径,因此项目整体拷到任何位置都能运行。
3. JSON 配置体系:9 个文件一次加载
3.1 启动时统一读入
Config/Utils.py#L42-L50 在模块导入时一次性json.load全部配置文件:
| 配置文件 | 作用 |
|---|---|
| Config/Credits.json | 工具名、版本号、授权、作者信息 |
| Config/UserSettings.json | 界面开关:是否显示装饰色、是否启用交互模式 |
| Data/DefaultParameters.json | 默认超时、默认端口、User-Agent 等运行参数 |
| Data/DefaultPorts.json | 常用端口扫描列表 |
| Data/Ports.json | 端口 → 服务名映射表 |
| Data/VulnerabilityPayloads.json | 漏洞扫描的测试载荷库 |
| Data/VulnerabilityErrors.json | 漏洞判定的错误特征库 |
| Data/VulnerabilitySensitivePaths.json | 敏感路径探测清单 |
| Data/UsernameTrackerPlateforms.json | 用户名追踪的平台清单 |
这意味着:想加一个扫描平台、改默认超时、扩充漏洞载荷,只改 JSON 即可,完全不涉及 Python 代码——这是该项目"fully configurable"设计的核心。
3.2 默认值占位符替换
Data/DefaultParameters.json 中的 User-Agent 支持占位符:"%TOOL_NAME%/%TOOL_VERSION%"。加载时 Config/Utils.py#L68-L74 会把%TOOL_NAME%、%TOOL_VERSION%替换成真实值,版本号升级后请求头自动跟随,无需手工维护。
3.3 配置回写与远程版本检查
界面设置通过 Program/TSettingsUpdate.py 的SettingsUpdate函数写回 Config/UserSettings.json,而 setup.py 安装时也复用同一函数(setup.py#L46-L71),保证"安装时配置"和"运行中配置"逻辑一致。
此外 Config/Utils.py#L238-L247 的CheckUpdate会请求远端仓库的Credits.json比对tool_version,启动横幅上就会提示"Update available!"。
4. 双模式 CLI 解析:两次 argparse 协作
启动时 Config/Utils.py#L111-L112 只做一个判断:sys.argv长度大于 1 则has_cli_args为真。redtiger.py#L204-L242 的Menu()据此分流:
- 带参数 →
HandleCli:一次性命令行模式,适合脚本化调用 - 无参数 → 交互菜单:打印分类菜单,输入编号循环选择
4.1 第一阶段:只解析"你选了哪个工具"
redtiger.py#L110-L149 的HandleCli先为每个工具注册一个布尔开关(如--advanced-scanner/-as),然后用parse_known_args做一次"宽容解析"——它不关心后面的参数是否合法,只负责找出用户敲了哪个工具,剩下的参数原样保留。
这样做的好处:17 个工具的参数互不冲突,第一遍解析永远不会因为参数不匹配而报错。
4.2 第二阶段:为选中工具注册完整参数
确定工具后,程序重建一个新的 parser,把该工具在Options()中登记的参数表(required、choices、type、nargs、help等)逐条注册进去,再对剩余参数做严格解析,最后把结果作为关键字参数传给工具函数(redtiger.py#L151-L172)。
4.3 自定义错误体验
项目没有用 argparse 默认的错误输出,而是自定义了RedTigerArgumentParser(Config/Utils.py#L159-L164)重写error方法:报错时打印提示"Use --help or -h",并自动回到交互菜单重新加载,对新手非常友好。
参数示例:
python redtiger.py --port-scanner -ps --target 192.168.1.1 --mode range --port 80-1000 --protocol-scan TCP5. 插件注入机制:丢一个 .py 文件即可扩展
这是 RedTiger-Tools 最有特色的设计。InjectPlugins函数(redtiger.py#L35-L71)在每次启动时执行四步:
- 扫描目录:遍历
Plugins/下所有.py文件,跳过官方示例Example.py; - 动态加载:用
importlib.util.spec_from_file_location把文件加载为模块——不依赖包导入路径,插件放进来就能跑; - 调用契约:要求模块提供
Register()函数,返回包含name/description/function/arguments四个键的字典(见 Plugins/Example.py#L7-L54); - 自动编号:插件沿用内置选项表的结构
(name, description, category, function, arguments),编号从内置工具的最大编号之后顺延,避免冲突,并统一归入Plugins分类显示在菜单中。
单个插件加载失败会被try/except静默跳过,不会拖垮主程序——健壮性设计值得借鉴。
插件在 CLI 模式下同样生效:它的arguments表会被同一套两阶段解析器自动注册,与内置工具体验完全一致。
6. 快速上手与插件扩展实战
🚀 三步跑起来(需要 Python 环境):
git clone https://gitcode.com/gh_mirrors/red/RedTiger-Tools cd RedTiger-Tools python3 setup.py && python3 redtiger.py🧩 写第一个插件:把 Plugins/Example.py 复制一份改名(不能叫Example.py),修改Register()返回的名称、描述和参数,再让Run()完成你的逻辑即可。注意插件函数里要兼容交互模式——参数缺失时用input()手动询问(Plugins/Example.py#L56-L65),这样菜单模式和 CLI 模式都能调用它。
7. 架构总结
| 层次 | 关键文件 | 职责 |
|---|---|---|
| 入口调度 | redtiger.py | 注册 17 个工具、注入插件、CLI/菜单双模式分流 |
| 全局基础设施 | Config/Utils.py | 加载 JSON 配置、日志/代理/错误处理、版本检查 |
| 配置数据层 | Data/ | 默认参数、端口库、漏洞载荷等平台数据 |
| 功能模块层 | Program/ | 一模块一工具,命名规则 NS*/O*/U*/T* 对应四大类 |
| 扩展层 | Plugins/ | 基于Register()契约的免重启插件注入 |
一句话总结:RedTiger-Tools 用"JSON 管数据、注册表管选项、importlib 管扩展、两次 argparse 管解析"四招,把十余个独立工具熔铸成统一平台。无论你想学习 Python 命令行工具的分层写法,还是给它贡献一个插件,这份架构地图都能让你快速上手。
【免费下载链接】RedTiger-Tools
RedTiger-Tools is a multifunction automation tool dedicated to pentesting and OSINT. The project is open source and designed to be fully configurable according to user needs. It also includes a plugin system that allows users to extend or create new features, in order to centralize multiple tools into a single unified platform.
相关推荐
AppFlowy 完整安装指南:3 条路线搭好开源 Notion 替代品与本地 AI 知识库
AppFlowy 完整安装指南:3 条路线搭好开源 Notion 替代品与本地 AI 知识库 AppFlowy 是一个开源的 AI 协作工作空间,也是 Noti
知识管理内容协同AI 应用企业应用深入解析APT2自动化渗透测试工具包
深入解析APT2自动化渗透测试工具包 什么是APT2 APT2是一款功能强大的自动化安全评估工具包,其名称中的"APT"并非指高级持续性威胁 Advanced
D3Ext/WEF项目解析:WiFi渗透测试框架深度指南
D3Ext/WEF项目解析:WiFi渗透测试框架深度指南 项目概述 D3Ext/WEF(WiFi Exploitation Framework)是一款专为安全研
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考