ExtonHoward/BunnyBrute.py

GitHub: ExtonHoward/BunnyBrute.py

一个轻量级的 Python 密码喷射工具,专门用于对 RabbitMQ/AMQP 代理进行凭证测试,支持批量目标、TLS 加密和可配置的延迟策略。

Stars: 0 | Forks: 0

# BunnyBrute 一个轻量级的 Python 工具,用于针对 RabbitMQ / AMQP 代理测试凭证。支持单一目标或批量目标列表、凭证喷射、TLS、可配置延迟、抖动等。 ## 功能 - 喷射单一凭证对或完整的用户名/密码列表 - 接受来自文件的多个目标(每行一个 `host` 或 `host:port`) - 每个目标的多端口扫描 - TLS/AMQPS 支持 - 可在尝试之间配置延迟和抖动以减少噪音 - 使用 `--max-attempts` 限制总尝试次数 - 首次成功后提前退出(使用 `--stop-on-success`) - 自动检测缺少的依赖项并提供安装说明 ## 环境要求 - Python 3.7+ - [pika](https://pypi.org/project/pika/) ### 安装依赖 **pip:** ``` pip install pika ``` **apt (Debian/Ubuntu):** ``` sudo apt install python3-pika ``` 如果在运行脚本时缺少任何必需的库,它将打印安装说明并在尝试任何连接之前退出。 ## 安装说明 ``` git clone https://github.com/ExtonHoward/BunnyBrute.py cd BunnyBrute sudo apt install python3-pika ``` ## 运行 Naabu ``` python3 BunnyBrute.py --targets FILE [options] ``` ### 参数 #### 目标 | 参数 | 描述 | |---|---| | `--targets FILE` | **(必需)** 目标文件路径,每行一个。每行可以是主机名/IP 或 `host:port`。 | | `--ports PORTS` | 以逗号分隔的端口列表,用于未指定端口的目标。默认为 `5672`。 | | `--vhost VHOST` | 要进行身份验证的 AMQP 虚拟主机。默认为 `/`。 | #### 用户 *(提供一个即可)* | 参数 | 描述 | |---|---| | `--user USERNAME` | 要测试的单个用户名。 | | `--users FILE` | 包含用户名的文件,每行一个。 | #### 密码 *(提供一个即可)* | 参数 | 描述 | |---|---| | `--password PASSWORD` | 要测试的单个密码。 | | `--passwords FILE` | 包含密码的文件,每行一个。 | #### 时间与限速 | 参数 | 默认值 | 描述 | |---|---|---| | `--delay SECONDS` | `0.5` | 每次尝试之间的固定暂停。增加此值以减少噪音 / 避免账户锁定。 | | `--jitter SECONDS` | `0.0` | 每次尝试时在 `--delay` 基础上增加的随机额外延迟(0 到 JITTER 之间)。 | | `--timeout SECONDS` | `5.0` | 每次尝试的 Socket / 连接超时时间。 | | `--max-attempts N` | `0` (无限制) | 在所有目标上尝试 N 次后停止。 | #### 连接选项 | 参数 | 描述 | |---|---| | `--ssl` | 使用 TLS/AMQPS。配合端口 `5671` 使用。 | | `--stop-on-success` | 首次成功登录后立即退出。 | ## 示例 **单一目标,单一凭证对:** ``` python3 BunnyBrute.py --targets hosts.txt --user guest --password guest ``` **对多个目标喷射凭证列表:** ``` python3 BunnyBrute.py --targets hosts.txt --users users.txt --passwords passwords.txt --delay 1.0 ``` **TLS 连接,首次有效登录即停止:** ``` python3 BunnyBrute.py --targets hosts.txt --ports 5671 --users users.txt --passwords passwords.txt --ssl --stop-on-success ``` **增加抖动以随机化时间:** ``` python3 BunnyBrute.py --targets hosts.txt --ports 5672,5671 --users users.txt --passwords passwords.txt --delay 0.5 --jitter 0.3 ``` **非默认 vhost,最多尝试 50 次:** ``` python3 BunnyBrute.py --targets hosts.txt --user admin --passwords passwords.txt --vhost myapp --max-attempts 50 ``` ## 目标文件格式 每行一个条目。除非使用 `--ports` 覆盖,否则纯主机名/IP 使用默认端口(`5672`)。内联的 `host:port` 优先级高于其他所有设置。 ``` 192.168.1.10 rabbitmq.example.com 10.0.0.5:5671 10.0.0.6:5672 ``` ## 输出 ``` [*] Testing target 10.0.0.5:5672 [-] FAIL 10.0.0.5:5672 admin:admin [-] FAIL 10.0.0.5:5672 admin:password [+] SUCCESS 10.0.0.5:5672 admin:rabbit123 [*] Done. Total attempts: 3 ``` | 前缀 | 含义 | |---|---| | `[*]` | 信息 | | `[+]` | 成功登录 | | `[-]` | 失败尝试 | | `[!]` | 警告 / 达到限制 | ## 许可证 MIT — 详情请参阅 [LICENSE](LICENSE)。
标签:AMQP, CTF学习, PoC, Python, RabbitMQ, TLS/SSL支持, 内网渗透, 凭据测试, 协议安全, 多线程扫描, 安全测试, 密码喷射, 攻击性安全, 数据统计, 无后门, 暴力破解, 消息队列, 端口扫描, 网络安全, 逆向工具, 隐私保护, 黑盒测试