BruteLoops
一个极其简单的库,为针对认证接口的高效密码暴力攻击提供基础逻辑。
文档
文档可在 此处 找到。
如果你在寻找旧版示例模块...
请参阅 BFG。
示例已转移至独立项目,以减少代码和打包问题。数据库和攻击能力也已合并为单个二进制文件。
主要特性
- 协议无关 — 只要能用 Python 编写回调函数,BruteLoops 就能用于攻击该接口
- SQLite 支持 — 所有用户名、密码和凭据均维护在 SQLite 数据库中。
- 随附配套工具 (
dbmanager.py),用于创建和管理输入数据库
- 喷射与填充攻击合二为一 — BruteLoops 在同一攻击逻辑和数据库中同时支持喷射攻击与填充攻击,这意味着你可以配置单个数据库并运行攻击,无需大量重新配置和混淆。
- 猜测调度 — SQLite 数据库中的每个用户名都带有一个时间戳,在每次认证事件后更新。这意味着我们可以通过精确调度每个认证事件,显著降低锁定账户的可能性。
- 精细配置避免锁定事件 — 微软的锁定策略可使用 BruteLoops 参数 1:1 匹配:
auth_threshold = 锁定阈值
max_auth_jitter = 锁定观察窗口
- BruteLoops 的 SQLite 数据库中会跟踪每个认证事件的时间戳。每个用户名拥有不同的时间戳,以确保认证事件高度可控。
- 攻击恢复 — 可以停止并恢复攻击,无需担心丢失攻击进度或锁定账户。
- 多进程 — 利用多进程加速攻击!通过配置并行猜测数量,你实际上是在告诉 BruteLoops 要并行猜测多少个用户名。
- 日志记录 — 每个认证事件可选地记录到磁盘。在红队行动中,这些信息可通过提供详细的攻击时间线(可映射回日志事件)为客户提供价值。
- 熔断器 — 熔断器行为类似断路器。在结束攻击循环前可允许异常发生 x 次。它们还能在一段时间后重置,从而实现诸如“出现 6 次 ConnectionErrors 后退出”的配置。
依赖
BruteLoops 需要 Python3.7 或更新版本 以及 SQLAlchemy 1.3.0,后者可通过 pip 和本仓库中的 requirements.txt 文件获取:python3.7 -m pip install -r requirements.txt
安装
git clone https://github.com/arch4ngel/bruteloops
cd bruteloops
python3 -m pip install -r requirements.txt