EmadYaY/PhishiUrl

GitHub: EmadYaY/PhishiUrl

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

Stars: 30 | Forks: 9

![image-1](1.jpg "PhishiUrl") # 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**(钓鱼)。 ## 🎯 未来目标与改进 ![image-2](2.jpg "PhishiUrl") ### 计划改进 #### 优化网站克隆 - 集成 [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, 凭据窃取, 同形字攻击, 品牌保护, 域名欺诈, 威胁情报, 开发者工具, 无后门, 社会工程学, 网站克隆, 网络安全, 逆向工具, 钓鱼检测, 隐私保护