EmadYaY/PhishiUrl
GitHub: EmadYaY/PhishiUrl
一款集钓鱼 URL 检测、同形字域名生成与网站克隆于一体的安全测试工具,帮助识别和模拟同形字钓鱼攻击。
Stars: 30 | Forks: 9

# PhishiUrl - 钓鱼检测与模拟工具
PhishiUrl 是一款功能强大的钓鱼攻击检测与模拟工具,旨在帮助网络安全专业人员和渗透测试人员识别和缓解漏洞。该工具具备多种功能,包括同形字 URL 生成、网站克隆和 URL 安全分析,专为符合道德规范的安全测试而构建。
相关文章:[PDF](homograph_full.pdf "PhishiUrl")
**当前版本**:1.3.0
**作者**:Emad
**GitHub 仓库**:github.com/EmadYaY/PhishiUrl
## ⚠️ 法律警告
严禁将此工具用于非法目的,例如窃取数据或进行真实的钓鱼攻击。PhishiUrl 仅供在获得网站所有者明确许可的情况下进行合法的渗透测试。任何未经授权的使用均由用户自行承担责任。
## ✨ 功能
### 高级钓鱼检测
- 识别 URL 中的 Unicode 同形字字符(西里尔文、希腊文等)
- 检测用于品牌冒充的 ASCII 字符替换(例如 `faceb00k` → `facebook`,`paypa1` → `paypal`)
- 检测可疑关键词(例如 login、verify、secure)
- 集成 VirusTotal 和 PhishTank API 进行 URL 安全分析
### 钓鱼 URL 生成
- 通过将字符替换为 Unicode 外观相似字符来建议同形字域名(例如用 `о` 替换 `o`)
- 使用 WHOIS 检查域名可用性
### 网站克隆
- 通过下载资源(HTML、CSS、JS、图片)克隆网页
- `--download-js` 选项用于下载 JavaScript 文件
- `--download-all` 选项用于下载所有资产(图片、字体等)
- 保留 SPA 资产目录结构(例如 `/assets/`)
- 在提交表单时捕获用户输入数据(例如用户名、密码)
- 捕获数据后自动重定向到原始域名
### Iframe 模式
- 在 iframe 中显示原始网站,同时静默捕获用户数据
- `--use-iframe` 选项用于启用 iframe 模式代替克隆
- 通过 `/keylog` 端点支持键盘记录
### 使用 Ngrok 进行隧道传输
- 使用 Ngrok 创建隧道,以便远程访问伪造页面
- 生成二维码以便快速访问隧道 URL
### Hosts 文件管理
- 修改系统 hosts 文件以在本地映射同形字域名
- 适用于 Windows(需要管理员权限)、Linux 和 macOS(需要 sudo)
### 报告
- 在 `report.json` 和 `credentials.txt` 中生成 URL 分析和捕获数据的详细报告
- 可选的键盘记录数据保存在 `keylog.txt` 中(在 iframe 模式下)
## 🛠️ 前置条件
- Python 3.7 或更高版本
- Google Chrome(用于基于 Selenium 的 DOM 丰富)
- 依赖项:
pip install click rich requests pyngrok python-whois qrcode beautifulsoup4 lxml selenium webdriver-manager
- 仅限 Windows:`pip install pywin32`
- Ngrok Token:用于隧道传输(添加到 config.json)
- VirusTotal API Key:用于 URL 分析(可选,添加到 config.json)
- PhishTank API Key:用于 PhishTank 查询(可在 phishtank.org 免费获取,添加到 config.json)
## 📦 安装说明
1. 克隆仓库:
git clone https://github.com/EmadYaY/PhishiUrl.git
cd PhishiUrl
2. 创建并激活虚拟环境:
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows CMD
.\venv\Scripts\Activate.ps1 # Windows PowerShell
3. 安装依赖项:
pip install .
4. 配置 `config.json`:
{
"ngrok_token": "YOUR_NGROK_TOKEN",
"virustotal_api_key": "YOUR_VIRUSTOTAL_API_KEY",
"phishtank_api_key": "YOUR_PHISHTANK_API_KEY",
"templates_path": "./templates"
}
## 🚀 命令与用法
### 1. 检查 URL 是否为钓鱼网站
使用同形字、品牌冒充、关键词和外部 API 检测可疑 URL。
```
phishiurl check --url faceb00k.com
```
使用文件(每行一个 URL,UTF-8 编码):
```
phishiurl check --file urls.txt --output results.json
```
### 2. 启动隧道和 Web 服务器
使用 Ngrok 建立钓鱼页面隧道并启动本地服务器。
```
phishiurl tunnel --port 8080 --template instagram_login.html --use-ngrok
```
### 3. 建议同形字域名
使用同形字字符生成相似域名。
```
phishiurl suggest --domain google.com --check-availability
```
### 4. 使用外部 API 检查 URL
使用 VirusTotal 或 PhishTank 分析 URL。
```
phishiurl api_check --url faceb00k.com --service virustotal
phishiurl api_check --url faceb00k.com --service phishtank
```
### 5. 克隆网站或使用 Iframe
克隆网站、使用本地文件或在 iframe 中显示,捕获用户数据,并在本地或远程提供服务。
克隆所有资产:
```
phishiurl clone --url https://domain.tld/login --port 8080 --use-ngrok --download-js --download-all
```
使用 iframe 模式:
```
phishiurl clone --url https://domain.tld/login --port 8080 --use-ngrok --use-iframe
```
从本地文件克隆:
```
phishiurl clone --local-folder ./my_website --port 8080
```
### 6. 显示帮助
```
phishiurl help
```
## 🧪 测试工具
### 测试钓鱼检测
```
phishiurl check --url "faceb00k.com/login"
# Expected: PHISHING (分数 ≥ 70) — 检测到品牌冒充
phishiurl check --url "google.com"
# Expected: SAFE (分数 = 0)
```
使用文件(使用 UTF-8 编码创建):
```
# Windows PowerShell
"faceb00k.com`ngoogle.com`npaypa1.com/verify" | Out-File -Encoding utf8 urls.txt
phishiurl check --file urls.txt --output results.json
```
### 测试网站克隆
1. 打开具有管理员权限的终端或使用 `sudo`(Linux/Mac)
2. 运行克隆命令:
phishiurl clone --url https://domain.tld/login/ --port 8080 --download-js --download-all
3. 在浏览器中打开 `http://localhost:8080`
4. 提交表单 — 凭据应保存在:
templates/cloned/domain_tld/credentials.txt
### 测试 Iframe 模式
```
phishiurl clone --url https://domain.tld/login/ --port 8080 --use-iframe
```
- 页面在 iframe 中显示原始网站
- 按键记录在 `keylog.txt` 中
### 测试同形字生成
```
phishiurl suggest --domain google.com --check-availability
```
预期输出包括像 `gооgle.com`(西里尔字母 о)这样的域名以及 WHOIS 可用性状态。
## 🔍 检测引擎
PhishiUrl v1.3.0 使用多层检测系统:
| 层级 | 示例 | 分数 |
|-------|---------|-------|
| Unicode 同形字(西里尔文/希腊文) | `facebооk.com` | +60 |
| 品牌冒充(0→o, 1→l + 品牌匹配) | `faceb00k` → `facebook` | +70 |
| 可疑替换(无品牌匹配) | `g0t0.com` | +30 |
| URL 中的可疑关键词 | `/verify`, `/login` | 每个 +15 |
| 异常长的 URL | >75 个字符 | +10 |
| VirusTotal 标记为恶意 | — | +50 |
| PhishTank 标记为恶意 | — | +50 |
分数 ≥ 60 的 URL 被归类为 **PHISHING**(钓鱼)。
## 🎯 未来目标与改进

### 计划改进
#### 优化网站克隆
- 集成 [goclone](https://github.com/goclone-dev/goclone) 以实现更快、更准确的网站克隆
- 修复加载动态资源的问题(例如外部 API)
#### 增强安全检测
- 添加安全标头检测(例如 `X-Frame-Options`)以标记受保护的站点
- 集成 [Spoofy](https://github.com/MattKeeley/Spoofy) 等工具进行 DNS/电子邮件漏洞分析
#### 高级报告
- 使用 Matplotlib 生成可视化报告
- 统计分析(例如成功钓鱼尝试的次数)
### 新功能
#### Iframe 模式增强
- 可自定义的 iframe 外观(伪造标头、favicon)
#### 高级键盘记录器
- 具有启用/禁用切换功能的实时键盘记录
#### OSINT 集成
- 集成 [Telepathy](https://github.com/EmadYaY/Telepathy) 用于基于 Telegram 的钓鱼分析
#### 反向代理支持
- 基于 Nginx 的反向代理以绕过 iframe 限制
### 与其他工具集成
- [DLP Toolbox](https://dlptoolbox.com):结合钓鱼模拟测试数据防泄露策略
- [Email Spoof Test](https://emailspooftest.com):测试电子邮件安全并模拟电子邮件钓鱼攻击
## 🤝 贡献
我们欢迎各种贡献!如需报告错误、建议功能或提交 Pull Request:
1. Fork 仓库:github.com/EmadYaY/PhishiUrl
2. 进行更改并提交 Pull Request
3. 使用 GitHub Issues 进行错误报告和功能请求
## 📜 版本历史
### 版本 1.3.0(2026 年 3 月)
- **跨平台支持**:现在可在 Linux 和 macOS 上运行(不再仅限 Windows)
- **改进的检测引擎**:品牌冒充检测(`faceb00k` → `facebook`、`paypa1` → `paypal` 等)
- **修复**:`check --file` Unicode/编码错误(来自 PowerShell 的 UTF-16 BOM)
- **修复**:克隆期间保留 SPA 资产路径结构(`/assets/` 子目录)
- **修复**:VirusTotal API 升级到 v3,针对免费层级采用提交后轮询流程
- **修复**:PhishTank 现在需要 API 密钥 — 提供了清晰的错误消息
- **修复**:`suggest` 命令不再产生重复行
- **修复**:`BeautifulSoup new_tag()` 名称冲突崩溃
- **新增**:`clone` 命令上的 `--use-iframe` 标志
- **新增**:用于 iframe 键盘记录的 `/keylog` 端点
- **新增**:通过 `webdriver-manager` 自动管理 ChromeDriver
- **改进**:带有 Rich 面板的控制台输出和更清晰的日志记录
### 版本 1.2.8(2025 年 4 月)
- 新增 `--download-all` 选项以下载所有资产
- 新增带有 `--use-iframe` 选项的 iframe 模式
- 仅在表单提交时捕获数据
- 改进了对下载资源路径的处理
### 版本 1.2.7
- 新增初始克隆功能和 Ngrok 集成
## 📄 许可证
本项目采用 MIT 许可证授权。有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
标签:Ask搜索, ESC8, IDN同形异义词, PhishTank, Python, Unicode安全, URL分析, VirusTotal, 凭据窃取, 同形字攻击, 品牌保护, 域名欺诈, 威胁情报, 开发者工具, 无后门, 社会工程学, 网站克隆, 网络安全, 逆向工具, 钓鱼检测, 隐私保护