ekorangin/phising-website-reporter

GitHub: ekorangin/phising-website-reporter

一个自动化钓鱼网站举报与取证平台,集成移动端仿真截图、RDAP/DNS 查询和多渠道威胁情报广播,帮助安全团队高效完成钓鱼网站的调查与下架。

Stars: 0 | Forks: 0

# 🛡️ 钓鱼网站举报与自动下架中心 一个现代、高性能的 monorepo 平台,专为网络安全社区、威胁情报分析师和品牌保护团队设计,用于举报、调查、获取取证证据,并向恶意钓鱼网站发送多渠道下架通知。 ## 📌 目录 - [概述与描述](#-overview--description) - [核心功能](#-key-features) - [系统要求](#-system-requirements) - [流程与架构工作流](#-process--architecture-workflow) - [安装与配置指南](#-installation--setup-guide) - [API 参考](#-api-reference) - [项目结构](#-project-structure) - [许可证](#-license) ## 📖 概述与描述 **Phishing Website Reporter** 是一个自动化的钓鱼网站调查与下架平台。它结合了 Playwright 移动端 headless 浏览器自动化、超快 DNS 解析、域名注册商 RDAP 查询、外发二级威胁链接收集(WhatsApp、Telegram、Google Forms、APK 恶意软件),以及一个多渠道威胁广播模块,可向全球主要的威胁情报提供商(Google Safe Browsing、Microsoft Defender SmartScreen、McAfee WebAdvisor 和 NordVPN CyberSec)举报钓鱼 URL。 ## ✨ 核心功能 - **简洁的公开举报界面:** 采用居中的表单布局,支持 URL 验证、受害品牌名称输入和 Turnstile CAPTCHA 验证。 - **实时去重层:** 自动检测同一 URL 的重复举报,增加威胁命中次数(+1)并显示当前状态,而无需重新触发繁重的 worker 任务。 - **自动化取证处理 Worker:** - **域名与 IP RDAP 查询:** 自动识别域名注册商详细信息、托管基础设施所有者以及官方滥用行为联系电子邮件地址 (`abuse@...`)。 - **超快 DNS 解析:** 采用本地操作系统 DNS 查询 (<10ms),并自动回退到 Cloudflare DNS-over-Https (DoH)。 - **全页取证截图:** 使用 Playwright headless 浏览器捕获全页移动端仿真截图(Android/iOS User-Agent 和视口)。 - **跨域链接收集器:** 扫描目标页面,查找外发二级诈骗渠道(WhatsApp `wa.me`、Telegram `t.me`、Google Forms 和 `.apk` 恶意软件下载 URL)。 - **三列管理员分流仪表板:** 专业的分流工作区,具有按 `hit_count DESC` 排序的优先级队列、技术取证规格卡片、浏览器模拟边框截图查看器以及分组的外发链接风险矩阵。 - **多渠道威胁情报广播:** 批准后,自动跨 5 个安全渠道分发威胁通知: 1. 📧 **注册商与托管提供商滥用电子邮件** 2. 🔴 **Google Safe Browsing API**(在 Chrome、Firefox 和 Safari 中触发红色插页式警告页面) 3. 🪟 **Microsoft Defender SmartScreen**(在 Edge 和 Windows Defender 中触发黑名单保护) 4. 🔒 **McAfee WebAdvisor / SiteAdvisor**(将 URL 添加到 McAfee 恶意网站数据库) 5. 🌐 **NordVPN Threat Protection / CyberSec**(阻止 Nord Security 用户的 DNS 解析) - **自动化 Janitor 失效验证:** 后台调度程序(每小时运行一次),定期验证已批准威胁 URL 的可用性。当网站下线时(*NXDOMAIN / HTTP 404 / Safe Browsing 警告*),状态会自动设置为 `COMPLETED`。 ## ⚙️ 系统要求 在运行应用程序之前,请确保您的环境满足以下前提条件: - **Node.js:** v18.x 或更高版本 (`node -v`) - **npm:** v9.x 或更高版本 - **Playwright Chromium:** 用于捕获取证截图的 headless 浏览器引擎 - **操作系统:** Windows 10/11、macOS 或 Linux ## 🔄 流程与架构工作流 ``` flowchart TD A[Public Reporter] -->|Submits URL & Victim Brand| B(Public Report Form) B -->|Submit POST /api/reports| C{Check Database Duplicates} C -->|Duplicate Found| D[Increment Hit Count + Show Status Modal] C -->|New Report| E[Save PENDING Status & Queue Forensic Job] E --> F[Automated Forensic Worker] subgraph Forensic Processing F --> G[Parse Main Domain & Query Domain RDAP] F --> H[High-Speed OS DNS Lookup & DoH Fallback] F --> I[Query IP RDAP & Match Known Registrar Map] F --> J[Playwright Mobile Spoofing Full-Page Screenshot] F --> K[Harvest Outgoing WhatsApp / Telegram / APK Links] end J & K --> L[(SQLite Database)] L --> M[Admin Triage Dashboard] M -->|Analyst Review| N{Approve / Reject} N -->|Reject| O[Status REJECTED] N -->|Approve| P[Multi-Vector Threat Dispatcher] subgraph Multi-Vector Broadcast P --> Q1[1. Registrar Abuse Email] P --> Q2[2. Google Safe Browsing Red Screen] P --> Q3[3. Microsoft Defender SmartScreen] P --> Q4[4. McAfee WebAdvisor Database] P --> Q5[5. NordVPN CyberSec DNS Block] end P --> R[Status APPROVED] R --> S[Scheduled Janitor Checker - Every 1hr] S -->|Site Offline / NXDOMAIN / 404| T[Status COMPLETED] ``` ### 逐步流程: 1. **举报提交:** 用户提交可疑 URL 和受害品牌名称。 2. **去重检查:** 系统查询数据库。如果重复,则增加命中次数并打开实时状态叠加层。 3. **取证扫描:** Worker 解析域名信息、IP 地址、注册商滥用电子邮件,捕获移动端屏幕截图,并收集外发诈骗链接。 4. **管理员分流审查:** 安全分析师在三列管理员仪表板内审查取证证据。 5. **多渠道分发:** 批准后,威胁报告将同时广播到注册商滥用电子邮件、Google Safe Browsing、Microsoft SmartScreen、McAfee 和 NordVPN。 6. **失效验证:** Janitor 服务每小时监控一次网站状态,直到其被自动下架。 ## 🚀 安装与配置指南 ### 1. 克隆仓库 ``` git clone https://github.com/ekorangin/phising-website-reporter.git cd phising-website-reporter ``` ### 2. 安装 Monorepo 依赖项 ``` npm run install:all ``` ### 3. 安装 Playwright Chromium 引擎 ``` npx playwright install chromium ``` ### 4. 运行开发服务器 ``` npm run dev ``` 此命令同时启动两个服务器: - **Express 后端 API 服务器:** [http://localhost:5000](http://localhost:5000) - **Vite React 前端 UI:** [http://localhost:5173](http://localhost:5173) ## 📡 API 参考 | 方法 | Endpoint | 描述 | | :--- | :--- | :--- | | `POST` | `/api/reports` | 提交新的可疑 URL 报告 (`reported_url`, `target_brand_raw`)。 | | `GET` | `/api/reports/status?url=...` | 通过 URL 检查报告状态。 | | `GET` | `/api/reports/pending` | 检索管理员控制台所有待处理的分流案例。 | | `POST` | `/api/reports/:id/approve` | 批准报告并跨 5 个威胁情报渠道进行广播。 | | `POST` | `/api/reports/:id/reject` | 拒绝报告。 | | `DELETE` | `/api/reports/pending` | 从数据库中删除所有待处理的案例。 | | `DELETE` | `/api/reports/:id` | 通过 ID 删除特定报告。 | | `GET` | `/api/brands?q=...` | 检索品牌建议自动补全。 | | `POST` | `/api/janitor/run` | 手动触发站点可用性验证检查。 | ## 📁 项目结构 ``` phising-website-reporter/ ├── client/ # React Frontend (Vite) │ ├── src/ │ │ ├── components/ │ │ │ ├── AdminDashboard.jsx # 3-Column Admin Triage Console │ │ │ ├── PublicForm.jsx # Public Reporting Form Component │ │ │ └── StatusModal.jsx # Deduplication Status Modal │ │ ├── App.jsx # Main Navigation & View Switcher │ │ └── index.css # Vanilla CSS Styling & Design Tokens │ └── package.json ├── server/ # Express.js Backend & Workers │ ├── src/ │ │ ├── index.js # Express API Server Entrypoint & Routes │ │ ├── worker.js # Playwright Forensic & Screenshot Worker │ │ ├── threat_dispatcher.js# Multi-Vector Threat Intelligence Dispatcher │ │ ├── mailer.js # Registrar Abuse Email Generator │ │ ├── janitor.js # Scheduled Site Death Checker │ │ └── db.js # SQLite Database Initialization │ ├── public/screenshots/ # Captured Forensic Screenshot Directory (.jpg) │ └── package.json ├── README.md # Project Documentation └── package.json # Root Monorepo Scripts ``` ## 📄 许可证 该项目基于 [MIT 许可证](LICENSE) 授权开放。欢迎社区网络安全与威胁情报协作。
标签:DNS解析, MITM代理, Playwright, RDAP查询, 十六进制编辑器, 反钓鱼, 威胁情报, 开发者工具, 开源项目, 特征检测, 自动化响应, 自定义脚本