Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
phishcollector — PhishCollector 是一个用于收集、分析和跟踪钓鱼网站的研究框架。 | Kitploit
工具/GitHubGitHub/olizimmermann/phishcollector
OSINT (开源情报)钓鱼工具侦察威胁源与聚合器信息收集钓鱼攻击Web安全威胁情报论文与研究学习与教育网络爬虫
GitHubolizimmermann/phishcollector
2335个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

phishcollector

PhishCollector 是一个用于收集、分析和跟踪钓鱼网站的研究框架。

查看仓库

PhishCollector

PhishCollector 是一个用于收集、分析和追踪钓鱼网站的 研究框架。它有意设计成一个起点——检测规则、技术特征、词表和插件都是纯数据结构,研究人员应当阅读、扩展并根据自身威胁态势进行调整。

提交可疑 URL 后,PhishCollector 将:

  • 在 无头 Chromium 浏览器 中加载页面(启用 JavaScript,随机 User-Agent,使用 stealth 反机器人措施)
  • 捕获 完全渲染的 HTML、整页截图 以及每一条 网络请求
  • 下载所有链接的 JavaScript 和 CSS 资源
  • 指纹识别 网站:IP/ASN/地理位置、TLS 证书、WHOIS、技术栈、favicon 哈希(Shodan 兼容的 mmh3)、表单分析、钓鱼指标检测
  • 爬取 发现的链接、robots.txt 路径和 sitemap URL(可选词表模糊测试)
  • 查询 URLhaus 和/或 VirusTotal 以获取威胁声誉
  • 将所有数据存储在 PostgreSQL 中,支持跨采集搜索和趋势分析

所有结果均可通过 REST API、Web 仪表板 和 CLI 访问。


截图

仪表板

采集详情


快速开始

root@kitploit:~
cp .env.example .env          # 进行配置(见下文)
docker compose up --build     # 启动 db + app + frontend
服务URL
GUIhttp://localhost:3000
API 文档http://localhost:8000/docs
数据库localhost:5432

配置

所有设置均为以 PHISH_ 前缀的环境变量。将 .env.example 复制为 .env 并调整。


代理设置

将所有出站流量路由通过代理,可让分析人员的 IP 对钓鱼服务器保持隐藏。

Tor(匿名化)

root@kitploit:~
PHISH_PROXY_URL=socks5://127.0.0.1:9050
PHISH_PROXY_SSL_VERIFY=true   # Tor 不会拦截 TLS

Burp Suite(流量检查)

Burp 充当 TLS 中间人,并为每个 HTTPS 连接提供其自己的 CA 证书。如果不禁用 SSL 验证,通过代理的每个 HTTPS 请求都将失败。

root@kitploit:~
PHISH_PROXY_URL=http://127.0.0.1:8080
PHISH_PROXY_SSL_VERIFY=false  # Burp / 拦截代理必需

注意: PHISH_PROXY_SSL_VERIFY=false 仅影响 Python 后端(插件、指纹识别器、爬虫)发起的出站 HTTPS 连接。Playwright 浏览器无论此设置如何,都已使用 ignore_https_errors=true 运行。

警告: 切勿在没有配置代理时将 PHISH_PROXY_SSL_VERIFY 设置为 false——这会使所有外部 API 调用(URLhaus、VirusTotal)的证书验证失效。


REST API

基础路径:/api/v1

完整的交互式文档位于 /docs(Swagger UI)。

提交扫描

root@kitploit:~
curl -X POST http://localhost:8000/api/v1/collections \
  -H 'Content-Type: application/json' \
  -d '{"url": "https://suspicious-site.example.com", "use_wordlist": true}'

CLI

root@kitploit:~
# 安装(在容器内或使用 requirements.txt 的本地 venv 中)
pip install -e .

# 提交 URL 并等待完成
phishcollector collect https://target.example.com --wait

# 结合词表模糊测试
phishcollector collect https://target.example.com --wordlist --wait

# 列出最近的任务
phishcollector list

# 查看完整详情
phishcollector detail <job-id>

# 下载截图
phishcollector screenshot <job-id> -o capture.png

# 按技术栈 / favicon 哈希 / 国家搜索
phishcollector search --tech WordPress --country RU
phishcollector search --favicon-hash -1234567890

威胁情报插件

URLhaus (abuse.ch)

需要从 auth.abuse.ch 获取免费的 Auth-Key。

root@kitploit:~
PHISH_URLHAUS_ENABLED=true
PHISH_URLHAUS_API_KEY=<您的认证密钥>

VirusTotal

需要从 virustotal.com 获取免费或付费的 API 密钥。

root@kitploit:~
PHISH_VIRUSTOTAL_API_KEY=<您的密钥>

当某个 URL 尚未被 VT 分析过时,PhishCollector 会提交其进行扫描,并每 30 秒自动重取结果,直到解析完成。

添加自定义插件

每个插件是 phishcollector/plugins/ 下的一个单独文件,暴露一个异步函数:

root@kitploit:~
# phishcollector/plugins/myplugin.py
from . import CheckResult

async def check(url: str, proxy_url=None, ssl_verify=True) -> CheckResult:
    # 在此查询您的源 / API
    return CheckResult(
        plugin_name="myplugin",
        status="malicious",   # malicious | suspicious | clean | unknown | error
        score=0.95,           # 0.0–1.0,或 None
        result={"raw": ...},  # 存储为 JSONB,在 GUI 中显示
    )

然后在 phishcollector/plugins/runner.py 中注册:

root@kitploit:~
from .myplugin import check as myplugin_check
tasks.append(myplugin_check(url, proxy_url=settings.proxy_url, ssl_verify=settings.proxy_ssl_verify))

无需其他更改——结果会自动存储、在仪表板中显示,并计入威胁评分。


自定义钓鱼指标

检测引擎有意保持为 纯、可读的数据,以便研究人员针对其追踪的工具包和攻击活动进行调整。所有内容位于一个文件中:

root@kitploit:~
phishcollector/collector/fingerprint.py

PHISHING_PATTERNS — 针对渲染后的 HTML + JS 扫描的正则规则

每个条目是一个 (正则表达式, 可读标签) 元组,按类别分组。任何类别中的匹配都会显示在 指标 标签页,并计入威胁评分。

root@kitploit:~
PHISHING_PATTERNS: dict[str, list[tuple[str, str]]] = {

    "credential_harvest": [
        (r"document\.getElementById\(['\"]password['\"]", "JS 通过 ID 读取密码字段"),
        (r"btoa\s*\(.*password", "对密码进行 Base64 编码"),
        # 在此添加您自己的规则……
    ],

    "obfuscation": [
        (r"\beval\s*\(", "使用 eval()"),
        (r"atob\s*\(", "运行时 Base64 解码"),
    ],

    "exfiltration": [
        (r"api\.telegram\.org/bot", "Telegram bot 外泄"),
        (r"@(?:gmail|yahoo|hotmail|outlook)\.com", "代码中的免费邮箱地址"),
    ],

    "antibot": [
        (r"navigator\.webdriver", "WebDriver 属性检查"),
        (r"ipqualityscore|ipqs\.com", "IPQS 反机器人服务"),
    ],

    "kit_indicators": [
        (r"office365|microsoft365", "Office 365 钓鱼主题"),
        (r"paypal.*limit|limit.*paypal", "PayPal 额度主题"),
        # 您发现了新的工具包?在此添加规则:
        (r"docusign.*sign|e.?sign.*document", "DocuSign 诱饵"),
        (r"(?:dhl|fedex|ups).*track", "包裹快递诱饵"),
    ],
}

添加规则: 在相应类别列表末尾附加一个元组。 添加类别: 新增一个键——类别名称会自动作为 指标 标签页的章节标题显示。

root@kitploit:~
# 示例:追踪新发现工具包的指纹
"my_campaign_2024": [
    (r"panel\.php\?cmd=send", "已知 C2 面板路径"),
    (r"X-Mailer:\s*PHPMailer\s*5\.2\.1", "该工具包使用的特定 PHPMailer 版本"),
],

TECH_SIGNATURES — 技术检测

签名与 HTML、响应头、Cookie 和最终 URL 进行匹配。检测到的技术会显示在 技术 面板中,并支持跨所有采集搜索。

root@kitploit:~
TECH_SIGNATURES: dict[str, dict] = {
    "WordPress": {
        "html":    [r"wp-content", r"wp-includes"],
        "url":     [r"/wp-login\.php"],
        "cookies": ["wordpress_"],
    },
    # 添加任何您想追踪的内容:
    "GoPhish": {
        "html": [r"rid=[a-zA-Z0-9]{20}"],
        "url":  [r"/track\?rid="],
    },
    "Evilginx": {
        "url":  [r"phishlets"],
        "html": [r"__utmz.*evilginx"],
    },
}

每个签名键(技术名称)都会成为可搜索的字符串,例如通过 GET /search?technology=GoPhish 搜索。

词表

默认爬虫词表位于 wordlists/phishing_paths.txt——每行一个路径,# 为注释。其中包含常见的钓鱼工具包路径(gate.php、send.php、result.php、管理面板等)。为您经常遇到的工具包添加路径:

root@kitploit:~
# 新观测到的工具包路径
/panel/send.php
/b374k.php
/uploads/gate.php

安全说明

  • GUI 中永远不会将钓鱼 URL 渲染为可点击链接——每个 URL 均为纯文本,仅附带复制到剪贴板按钮。
  • 捕获的 HTML 以 Content-Type: text/plain 和 Content-Disposition: attachment 提供——浏览器将其作为下载文件而非渲染。
  • 所有到钓鱼服务器的出站连接均可通过代理路由,以确保分析人员的真实 IP 从不暴露。
  • API 密钥比较使用 hmac.compare_digest 以防止时序攻击。
  • nginx 提供内容安全策略、X-Frame-Options: DENY 和 Referrer-Policy: no-referrer。
  • 删除采集将移除所有磁盘上的产物(截图、HTML、资源)以及数据库记录。

数据存储

产物写入 PHISH_DATA_DIR(默认为 /data,Docker 挂载卷):

root@kitploit:~
/data/
  screenshots/   <采集-id>.png
  html/          <采集-id>.html
  assets/
    <采集-id>/
      <sha256-前缀>.js
      <sha256-前缀>.css

其余所有内容(指纹、HTTP 日志、爬虫结果、插件结果、标签、备注)均存储于 PostgreSQL。


项目结构

root@kitploit:~
phishcollector/
  collector/
    browser.py        # Playwright 捕获、stealth JS、UA 轮换
    fingerprint.py    # 所有指纹检测 + PHISHING_PATTERNS + TECH_SIGNATURES
    spider.py         # 链接提取、robots.txt、sitemap、词表模糊测试
    orchestrator.py   # 任务生命周期:将所有模块整合
  plugins/
    __init__.py       # CheckResult 数据类
    urlhaus.py        # abuse.ch URLhaus 插件
    virustotal.py     # VirusTotal v3 插件
    runner.py         # 并发运行已启用的插件
  api/
    routes.py         # FastAPI 端点
  main.py             # 应用入口点、CORS、认证中间件
  models.py           # SQLAlchemy ORM 模型
  config.py           # Pydantic 设置(环境变量)
  database.py         # 引擎、会话工厂、模式迁移
frontend/
  app.js              # 原生 JS SPA
  style.css           # 终端风格 UI
  nginx.conf          # 反向代理 + 安全头
wordlists/
  phishing_paths.txt  # 默认爬虫词表

开发

root@kitploit:~
# 仅启动数据库
docker compose up db -d

# 本地运行 API
pip install -r requirements.txt
playwright install chromium
uvicorn phishcollector.main:app --reload

# 运行测试(如有)
pytest
下载工具
变量默认值描述
PHISH_DATABASE_URLpostgres://…PostgreSQL DSN
PHISH_API_KEY(空)如果设置,所有请求将要求提供 X-API-Key: <值>
PHISH_DATA_DIR/data截图、HTML、资源的存储根目录
PHISH_BROWSER_TIMEOUT30000页面加载超时时间(毫秒)
PHISH_REQUEST_TIMEOUT15HTTP 子请求超时时间(秒)
PHISH_MAX_SPIDER_PAGES50每次任务爬虫访问的最大 URL 数
PHISH_MAX_ASSET_SIZE10485760要存储的最大 JS/CSS 文件大小(字节)
PHISH_PROXY_URL(空)出站代理——见下文
PHISH_PROXY_SSL_VERIFYtrue对于拦截代理请设置为 false——见下文
PHISH_URLHAUS_ENABLEDfalse启用 URLhaus 声誉检查
PHISH_VIRUSTOTAL_API_KEY(空)VirusTotal v3 API 密钥(留空以禁用)
方法路径描述
POST/collections提交 URL 进行采集
GET/collections列出所有采集
GET/collections/{id}完整详情 + 指纹
GET/collections/{id}/screenshot整页 PNG
GET/collections/{id}/html捕获的 HTML(以纯文本形式下载)
GET/collections/{id}/requests网络请求日志
GET/collections/{id}/spider爬虫结果
GET/collections/{id}/plugins威胁情报插件结果
POST/collections/{id}/plugins/refresh重新运行插件(例如获取待处理的 VT 结果)
POST/collections/{id}/rescan重新采集同一 URL(原始内容保留)
PATCH/collections/{id}更新标签和备注
GET/collections/{id}/export?format=json|csv导出采集数据
DELETE/collections/{id}删除采集及其所有产物
GET/search按 IP、favicon 哈希、技术、国家、标题搜索指纹