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, 威胁检测, 撞库检测, 无后门, 网络安全, 隐私保护