joeprince20047-oss/brute_force_simulator
GitHub: joeprince20047-oss/brute_force_simulator
基于 Python/Flask/Tkinter 构建的教育型暴力破解模拟器,提供本地沙盒环境以演示字典破解、暴力枚举和撞库攻击。
Stars: 0 | Forks: 0
# ⚡ 暴力破解模拟器



## ⚠️ 道德使用声明
该工具**专用于教育目的**、实习展示,
以及对您拥有的系统进行授权的渗透测试。
**严禁在未经书面许可的情况下,将其用于真实网站、云服务或任何系统。**
## 功能
- **3 种攻击模式** — 字典破解、纯暴力破解、撞库攻击
- **多线程引擎** — 可配置的线程池(1–50 个线程)
- **本地沙盒服务器** — 带有锁定模拟的 Flask 登录目标
- **实时 GUI 仪表盘** — 基于 Tkinter 的实时统计查看器
- **自动报告工具** — 将结果保存为 CSV 和 JSON 格式并存放于 `logs/` 目录
- **Dry Run 模式** — 在不发送真实请求的情况下预览攻击
- **GitHub Actions CI** — 每次推送时运行 pytest
## 项目结构
```
brute_force_simulator/
├── main.py # CLI entry point
├── src/
│ ├── engine/
│ │ ├── attacker.py # Core attack engine + threading
│ │ ├── wordlist.py # Wordlist loader & brute force generator
│ │ ├── reporter.py # Results logger (CSV + JSON)
│ │ └── config.py # Settings dataclass
│ ├── target/
│ │ ├── server.py # Flask sandbox login server
│ │ ├── auth.py # Lockout & rate-limit guard
│ │ └── templates/login.html
│ └── gui/
│ └── dashboard.py # Tkinter live dashboard
├── tests/ # pytest test suite
├── wordlists/
│ └── common_passwords.txt
├── .github/workflows/ # CI/CD pipelines
│ ├── ci.yml
│ └── release.yml
├── docs/architecture.md
├── requirements.txt
└── README.md
```
## 快速开始
### 1. 克隆并安装
```
git clone https://github.com/YOUR_USERNAME/brute-force-simulator.git
cd brute-force-simulator
pip install -r requirements.txt
```
### 2. 启动沙盒目标服务器
```
# Terminal 1
python -m src.target.server
# → 运行于 http://127.0.0.1:5000/login
```
### 3. 运行模拟器
```
# Terminal 2 — 字典攻击
python main.py \
--target http://127.0.0.1:5000/login \
--wordlist wordlists/common_passwords.txt \
--username admin \
--threads 5
# 纯暴力破解(最多 4 个字符的所有组合)
python main.py \
--target http://127.0.0.1:5000/login \
--mode bruteforce \
--max-length 4
# 带 GUI 仪表板
python main.py \
--target http://127.0.0.1:5000/login \
--wordlist wordlists/common_passwords.txt \
--gui
# 试运行(无实际请求)
python main.py \
--target http://127.0.0.1:5000/login \
--wordlist wordlists/common_passwords.txt \
--dry-run
```
## CLI 选项
| 标志 | 默认值 | 描述 |
|---|---|---|
| `--target` | 必填 | 目标登录 URL |
| `--wordlist` | — | 密码文件路径 |
| `--username` | admin | 要攻击的用户名 |
| `--mode` | dictionary | dictionary / bruteforce / stuffing |
| `--threads` | 5 | 工作线程数 (1–50) |
| `--delay` | 0.0 | 尝试之间的延迟秒数 |
| `--max-length` | 4 | bruteforce 模式的最大长度 |
| `--timeout` | 5 | HTTP 超时时间(秒) |
| `--dry-run` | false | 在不发送真实请求的情况下预览 |
| `--gui` | false | 启动 Tkinter 仪表盘 |
## 运行测试
```
pytest tests/ -v
```
## 演示凭证(仅限沙盒)
| 用户名 | 密码 |
|---|---|
| admin | secret123 |
| user | password1 |
## 技术栈
| 层级 | 技术 |
|---|---|
| 语言 | Python 3.11 |
| Web 服务器 | Flask 3.x |
| HTTP 客户端 | requests |
| GUI | Tkinter |
| 测试 | pytest |
| CI/CD | GitHub Actions |
## 许可证
MIT © 2025 Prince
标签:Flask, PoC, Python, Tkinter, 后端开发, 安全规则引擎, 教育实验, 无后门, 暴力破解