siddharth-mohanty/phishing_detector
GitHub: siddharth-mohanty/phishing_detector
基于Python的多模块钓鱼网站检测工具,通过静态分析和浏览器自动化技术提供0-100加权风险评分。
Stars: 0 | Forks: 0
# 🛡️ 统一钓鱼网站检测器
## 📋 目录
- [功能特性](#-features)
- [模块概览](#-module-overview)
- [环境要求](#-requirements)
- [安装说明](#-installation)
- [使用方法](#-usage)
- [输出示例](#-output-example)
- [项目结构](#-project-structure)
- [免责声明](#-disclaimer)
- [贡献指南](#-contributing)
- [许可证](#-license)
## ✨ 功能特性
- **11 个检测模块**,涵盖静态、网络和基于动态浏览器的分析
- **加权聚合评分** —— 每个模块共同贡献于单一的 0–100 钓鱼风险评分
- **两种扫描模式** —— 完整扫描(所有模块)或快速扫描(无浏览器自动化)
- **ANSI 彩色终端输出**,带有每个模块的风险条
- **交互式模式调优器**,用于权限 API regex 模式
- **优雅降级** —— 如果未安装 Selenium/Playwright,浏览器模块将被干净地跳过
- **首次运行时自动安装缺失的 pip 包**
## 🔍 模块概览
| # | 模块 | 检查内容 | 需要浏览器 |
|---|--------|---------------|-----------------|
| 01 | SSL/TLS 证书分析器 | 证书有效性、密码强度、CA 信任、密钥大小、tunnel+DV 组合 | No |
| 02 | URL 特征评分器 | 16 项特征的加权模型:品牌模糊匹配、熵、重定向、短链接 | No |
| 03 | TLD / Token 检查器 | 主机名标签与 80 多个可疑 TLD/关键字 token 的对比 | No |
| 04 | Unicode / 字符检查器 | 希腊字母相似符、货币符号、Punycode 解码 | No |
| 05 | IP / WHOIS / ASN 分析器 | 反向 DNS、ASN 描述、国家/地区滥用率 | No |
| 06 | Permission API 扫描器 | 摄像头、麦克风、地理位置、剪贴板、MIDI、DeviceOrientation API | Optional (Playwright) |
| 07 | CAPTCHA / 登录检查器 | DOM CAPTCHA 检测、表单绕过尝试、受保护内容前后对比 | Yes (Playwright) |
| 08 | 自动填充 / 隐藏表单扫描器 | BeautifulSoup + Selenium 隐藏字段和敏感自动填充检测 | Yes (Selenium) |
| 09 | 虚假 CAPTCHA 验证器 | 提交错误的 CAPTCHA,检查网站是否接受 | Yes (Selenium) |
| 10 | OTP 安全检查器 | 检测 OTP 字段,提交无效 OTP,捕获后端 API 调用 | Yes (seleniumwire) |
| 11 | URL Scheme 检查器 | 标记 HTTP、FTP 或非标准 Scheme | No |
## ⚙️ 环境要求
### 核心(必需)
```
Python 3.8+
requests
beautifulsoup4
cryptography
ipwhois
lxml
```
### 浏览器自动化(可选,用于模块 07–10)
```
selenium
seleniumwire
playwright
Google Chrome + ChromeDriver (matching versions)
```
## 🚀 安装说明
### 1. 克隆仓库
```
git clone https://github.com/siddharth-mohanty/phishing-detector.git
cd phishing-detector
```
### 2. 安装核心依赖
```
pip install -r requirements.txt
```
### 3. 安装浏览器依赖(可选,用于完整扫描)
```
pip install selenium seleniumwire playwright
python -m playwright install chromium
```
## 🖥️ 使用方法
### 交互模式
```
python phishing_detector.py
```
你将被提示执行以下操作:
1. 输入要扫描的 URL
2. 选择扫描模式:**完整 (Full)**(所有 11 个模块)或 **快速 (Fast)**(仅静态,无浏览器)
### 扫描模式说明
| 模式 | 运行模块 | 预计时间 |
|------|------------|--------------|
| 完整扫描 (Full scan) | 所有 11 个 | 30–90 秒 |
| 快速扫描 (Fast scan) | 模块 01–06, 11 | 5–15 秒 |
### 模式调优器(Permission 模块)
从扫描模式菜单中选择选项 `3`,可以在运行扫描之前为 Permission API Scanner 添加、删除或保存自定义 regex 模式。
## 📊 输出示例
```
══════════════════════════════════════════════════════════════════════
UNIFIED PHISHING DETECTION REPORT
Target : https://suspicious-paypa1-login.tk
Scanned: 2025-06-01 14:32:10 UTC
══════════════════════════════════════════════════════════════════════
[SSL/TLS Certificate]
issuer : Let's Encrypt
cert_type : DV
days_until_expiry: 12
• DV cert — domain-only validation
• Short validity period (<30 days)
Module Risk: 65/100 [█████████████░░░░░░░]
...
══════════════════════════════════════════════════════════════════════
FINAL PHISHING RISK SCORE
81.4/100 [████████████████░░░░]
VERDICT: HIGH RISK — Likely Phishing
══════════════════════════════════════════════════════════════════════
RECOMMENDATIONS:
✖ DO NOT visit or enter credentials on this site.
✖ Report the URL to your security team / browser vendor.
✖ If you already clicked, change passwords & enable MFA.
```
## 📁 项目结构
```
phishing-detector/
├── phishing_detector.py # Main tool
├── requirements.txt # Core pip dependencies
├── requirements-browser.txt# Browser automation dependencies
├── .gitignore
├── LICENSE
└── README.md
```
## ⚠️ 免责声明
本工具仅限用于**教育、研究和防御性安全目的**。
- 仅扫描你拥有或**明确获得授权**测试的 URL 和网站
- 未经授权,请勿使用此工具测试生产系统
- 浏览器自动化模块(08–10)会与 Web 表单交互 —— 在对任何网站运行它们之前,请确保你已获得许可
- 作者不对本工具的滥用行为承担任何责任
## 🤝 贡献指南
欢迎贡献!方式如下:
1. Fork 本仓库
2. 创建一个功能分支:`git checkout -b feature/module-12-whois`
3. 提交你的更改:`git commit -m "Add: WHOIS domain age checker`
4. 推送到分支:`git push origin feature/module-12-whois`
5. 开启一个 Pull Request
请确保新模块遵循标准的返回格式:
```
{"module": "Module Name", "score": 0–100, "flags": [(msg, COLOR)], "info": {}}
```
查看 [CONTRIBUTING.md](CONTRIBUTING.md) 获取完整指南。
## 📄 许可证
本项目基于 MIT 许可证授权 —— 详见 [LICENSE](LICENSE)。
标签:C2日志可视化, DNS枚举, Playwright, Python安全工具, Selenium自动化, SSL证书分析, URL分析, Web安全, 反钓鱼, 域名信誉, 威胁情报, 密码管理, 开发者工具, 指纹识别, 特征提取, 社会工程学防御, 网络安全工具, 蓝队分析, 逆向工具, 钓鱼网站检测, 风险评分