joeprince20047-oss/brute_force_simulator

GitHub: joeprince20047-oss/brute_force_simulator

基于 Python/Flask/Tkinter 构建的教育型暴力破解模拟器,提供本地沙盒环境以演示字典破解、暴力枚举和撞库攻击。

Stars: 0 | Forks: 0

# ⚡ 暴力破解模拟器 ![CI](https://github.com/YOUR_USERNAME/brute-force-simulator/actions/workflows/ci.yml/badge.svg) ![Python](https://img.shields.io/badge/python-3.10%2B-blue) ![License](https://img.shields.io/badge/license-MIT-green) ## ⚠️ 道德使用声明 该工具**专用于教育目的**、实习展示, 以及对您拥有的系统进行授权的渗透测试。 **严禁在未经书面许可的情况下,将其用于真实网站、云服务或任何系统。** ## 功能 - **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, 后端开发, 安全规则引擎, 教育实验, 无后门, 暴力破解