Suryavardhan23007/credential-stuffing-simulator
GitHub: Suryavardhan23007/credential-stuffing-simulator
一个用于演示凭证填充攻击及绕过弱速率限制的教育性安全模拟框架,包含攻击、规避、防御与容器化模块。
Stars: 0 | Forks: 0
# Credential Stuffing 攻击模拟器与速率限制绕过框架
## 概述
本项目是一个教育性网络安全模拟框架,旨在演示登录系统中薄弱的速率限制保护如何通过凭证填充技术被绕过。
该项目模拟以下内容:
- 凭证填充攻击
- User-Agent 轮换
- 伪造 IP 轮换
- 请求时间随机化
- 检测成功登录
- 防御性应对措施
该框架完全在本地隔离环境中运行,使用 Docker 容器和刻意设计的有漏洞的应用程序。
# 免责声明
本项目严格用于:
- 教育目的,
- 网络安全意识培养,
- 以及道德安全研究。
本框架:
- 必须仅针对本地托管的有漏洞的应用程序,
- 不得用于公共系统,
- 不得使用真实的泄露凭证,
- 不得进行未经授权的测试。
# 问题陈述
Web 应用程序的登录端点受到简单速率限制的保护,但保护措施不足。
目标是构建一个自动化的凭证填充框架,该框架能够:
1. 轮换多个模拟的 IP 地址
2. 改变 User-Agent 头
3. 随机化请求时间
4. 检测成功登录
5. 生成攻击报告
6. 演示防御缓解措施
# 架构
```
+----------------------+
| credentials.txt |
+----------------------+
|
v
+----------------------+
| Attack Engine |
| aiohttp async |
+----------------------+
|
---------------------------------------
| | |
v v v
User-Agent Fake IP Rotation Random Delays
Rotation (X-Forwarded-For)
|
v
+----------------------+
| Flask Login Target |
| Weak Rate Limiter |
+----------------------+
|
v
+----------------------+
| Monitoring & Logs |
+----------------------+
|
v
+----------------------+
| Defense Layer |
| CAPTCHA / Lockout |
+----------------------+
|
v
+----------------------+
| Reports & Dashboard |
+----------------------+
```
# 技术栈
| 组件 | 技术 |
|---|---|
| 攻击引擎 | Python |
| 异步请求 | aiohttp |
| 有漏洞的应用程序 | Flask |
| 数据库 | SQLite |
| 规避技术 | fake-useragent |
| 监控 | Flask 日志 |
| 容器 | Docker |
| 编排 | Docker Compose |
| 协作 | GitHub |
| 仪表板(可选) | Streamlit |
# 项目结构
```
credential-stuffing-simulator/
│
├── attacker/
│ ├── attack.py
│ ├── credentials.txt
│ ├── requirements.txt
│ └── Dockerfile
│
├── evasion/
│ ├── user_agents.py
│ ├── ip_rotation.py
│ ├── delay_manager.py
│
├── target-app/
│ ├── app.py
│ ├── templates/
│ ├── database.db
│ ├── requirements.txt
│ └── Dockerfile
│
├── defense/
│ ├── captcha.py
│ ├── account_lock.py
│ ├── mitigation_report.md
│
├── logs/
│
├── dashboard/
│
├── docker-compose.yml
│
├── README.md
│
└── PROJECT_CONTEXT.md
```
# 团队职责
## 人员 1 — 攻击引擎
职责:
- 构建异步凭证填充引擎
- 实现自动化登录请求
- 检测成功登录
- 生成攻击报告
技术:
- Python
- aiohttp
- asyncio
## 人员 2 — 规避技术 + Docker + 网络
职责:
- 实现 User-Agent 轮换
- 模拟 IP 轮换
- 随机化请求时间
- 配置 Docker 网络
- 管理容器通信
技术:
- fake-useragent
- Docker
- Docker Compose
## 人员 3 — 目标应用程序 + 监控
职责:
- 构建有漏洞的 Flask 登录应用程序
- 实现弱速率限制
- 配置监控和日志记录
- 管理 SQLite 用户数据库
技术:
- Flask
- SQLite
- Flask-Limiter
## 人员 4 — 防御 + 仪表板 + 演示
职责:
- 实现 CAPTCHA 模拟
- 实现账户锁定
- 构建缓解报告
- 准备最终演示
技术:
- Flask
- 仪表板/UI 工具
- 文档
# 功能特性
## 攻击性功能
- 凭证填充自动化
- 异步并发请求
- 伪造 IP 轮换模拟
- User-Agent 轮换
- 请求时间随机化
- 登录成功检测
## 防御性功能
- CAPTCHA 模拟
- 账户锁定
- 自适应身份验证
- 监控和日志记录
- 更强的速率限制
# 黑客松文档包
所需提交的文档位于此仓库中:
- README:`ReadMe.md`
- 设置文档:`SETUP_DOCUMENTATION.md`
- 威胁模型文档:`THREAT_MODEL_WRITEUP.md`
- 绕过演示:`BYPASS_DEMONSTRATION.md`
- 缓解/防御文档:`defense/mitigation_report.md`
- 代码注释:位于核心文件中(`attacker/attack.py`、`target-app/app.py`、`defense/*.py`、`evasion/*.py`)
# Docker 使用
## 构建容器
```
docker-compose build
```
## 启动服务
```
docker-compose up
```
## 停止服务
```
docker-compose down
```
# 运行项目
## 步骤 1 — 启动目标应用程序
```
cd target-app
python app.py
```
## 步骤 2 — 运行攻击引擎
```
cd attacker
python attack.py
```
## 步骤 3 — 监控日志
查看:
- 失败的登录尝试
- 成功的登录
- 可疑 IP
- 请求模式
# 演示流程
## 阶段 1 — 有漏洞的系统
展示弱速率限制。
## 阶段 2 — 攻击被阻止
演示正常攻击触发:
- HTTP 429
- 请求过多
## 阶段 3 — 启用规避技术
启用:
- 伪造 IP 轮换
- User-Agent 轮换
- 随机延迟
演示绕过。
## 阶段 4 — 启用防御
启用:
- CAPTCHA
- 账户锁定
- 自适应身份验证
演示攻击预防。
# 重要说明
本项目有意简化了以下内容:
- IP 轮换
- 代理基础设施
- 分布式攻击
以保持:
- 安全性,
- 合法性,
- 教育价值,
- 以及黑客松可行性。
未实现真实的攻击基础设施。
# MITRE ATT&CK 映射
技术:
- T1110.004 — 凭证填充
参考:
https://attack.mitre.org/techniques/T1110/004/
# 未来改进
未来可能的增强:
- 真正的仪表板可视化
- 基于机器学习的异常检测
- 设备指纹识别
- 分布式攻击模拟
- SIEM 集成
- Kubernetes 部署
# 贡献者
- 人员 1 — 攻击引擎
- 人员 2 — 规避技术 + Docker
- 人员 3 — 目标应用程序 + 监控
- 人员 4 — 防御 + 演示
# 许可协议
本项目仅用于:
- 学术用途,
- 网络安全教育,
- 以及授权的安全研究。
# 分支策略
项目采用多分支协作工作流,允许团队成员独立工作而不会产生冲突。
## 分支
| 分支名称 | 分配的模块 |
|---|---|
| main | 最终集成的稳定项目 |
| attack-engine | 攻击自动化模块 |
| evasion-module | 规避技术 + Docker 网络 |
| target-app | 有漏洞的 Flask 应用程序 |
| defense-module | 防御机制 + 演示 |
# 开发工作流
每位团队成员:
1. 在本地克隆仓库
2. 切换到分配的分支
3. 仅在其分配的模块/文件夹内工作
4. 将提交推送到其分支
5. 最终代码合并到 `main`
# 文件夹所有权
| 文件夹 | 负责的分支 |
|---|---|
| attacker/ | attack-engine |
| evasion/ | evasion-module |
| target-app/ | target-app |
| defense/ | defense-module |
# Git 工作流
## 克隆仓库
```
git clone
```
## 切换分支
```
git checkout attack-engine
```
示例:
```
git checkout evasion-module
```
## 推送更改
```
git add .
git commit -m "Added feature"
git push origin
```
#最终集成
在所有模块完成后:
```
git checkout main
git merge attack-engine
git merge evasion-module
git merge target-app
git merge defense-module
git push origin main
```
# 容器化模块化设计
项目采用容器化模块化架构:
- 攻击引擎独立运行
- 目标应用程序在隔离环境中运行
- 网络和规避技术被安全模拟
- 防御机制可以独立启用/禁用
这改善了:
- 可扩展性
- 可维护性
- 隔离测试
- 云原生兼容性
# 协作注意事项
- 团队成员应主要在其分配的文件夹内工作
- 除非必要,避免修改无关模块
- 推送更新前定期拉取最新更改
- 在最终集成期间仔细解决合并冲突
标签:aiohttp, Docker, IP伪装, Kubernetes, PoC, Python, 凭证填充攻击, 安全培训, 安全防御评估, 异步编程, 攻击模拟, 教育框架, 数据展示, 无后门, 暴力破解, 本地环境, 版权保护, 用户代理旋转, 红队, 网络安全, 自动化攻击, 计算机取证, 请求拦截, 逆向工具, 速率限制绕过, 防御对策, 隐私保护, 驱动签名利用