Jasminelorkan/Credential-Stuffing-Tool
GitHub: Jasminelorkan/Credential-Stuffing-Tool
基于 Python 的凭据填充攻击检测引擎,通过分析 Web 服务器日志中的登录失败率、IP 子网聚类和突发行为三类信号来发现分布式凭据填充攻击。
Stars: 0 | Forks: 0
## 凭据填充检测引擎
## 功能简介
传统的安全工具会对来自同一 IP 的过多登录尝试发出警报。但凭据填充攻击通常使用来自同一子网的数百个不同 IP,每个 IP 只尝试登录一两次——因此没有单个 IP 看起来可疑。这些 IP 很难被检测到,传统工具也无法轻易发现它们。该工具通过分析登录失败率和突发检测,在日志行中识别由相同子网和 IP 组成的模式。它会生成一份包含警报和建议的可用报告。
## 开发动机
大多数初级的网络安全项目都是检测那些具有相同 IP、相同 payload 和相同模式的明显攻击。我想构建一个项目,其中每个单独的请求看起来都是正常的,而现在这个工具必须检测出这些失败尝试的模式。凭据填充正是这种类型的攻击,我想证明自己具备超越常规的洞察力。
## 检测信号
- **信号 1 — 登录失败率:**
计算登录尝试失败的百分比。
- **信号 2 — IP 子网聚类:**
由于攻击者使用相同的子网但不同的 IP,因此对该 IP 子网进行聚类,以分析正在使用的是哪个子网。
- **信号 3 — 突发检测:**
计算 IP 在 10 分钟窗口内进行的登录尝试次数。
## 运行说明
- 运行 log_generator.py 生成 access.logs。
- access.logs 包含 500 条正常流量日志行和 180 条攻击日志行。
- 运行 detector.py 进行登录失败率、IP 子网聚类和突发检测。
- 完成上述操作后,将生成 report.txt 文件。
## 示例输出
```
# =================================
CREDENTIAL STUFFING DETECTION REPORT
...
# =================================
Generated: 2026-06-24 18:26:11
# SUMMARY
Total login attempts: 280
Login failure rate: 91.79%
First attempt: 2023-10-10 13:00:00
Last attempt: 2023-10-10 13:58:12
# ALERTS
ALERT: High login failure rate detected - possible credential stuffing
ALERT: 180 IPs from subnet 91.108.x.x hitting /login - possible distributed attack
ALERT: 201 login attempts between 2023-10-10 13:00:00 and 2023-10-10 13:10:00 - possible burst attack
# RECOMMENDATION
Block suspicious subnets immediately.
Review all successful logins (200 status) for unauthorized access.
Enable rate limiting on /login endpoint.
```
## 使用工具
- Python 3
- Python 库 - random 和 datetime
- VS Code
## 作者
Jasmine Lorkan
标签:AMSI绕过, Python, 威胁检测, 撞库检测, 无后门, 网络安全, 隐私保护