隐私泄露查询
SpiderFoot 项目推荐:用开源 OSINT 工具做隐私泄露与攻击面自查
项目地址:https://github.com/smicallef/spiderfoot
适合主题:个人隐私暴露查询、企业外部攻击面盘点、域名资产发现、邮箱与账号泄露线索排查、威胁情报辅助分析。
重要提醒:SpiderFoot 是 OSINT 工具,只应扫描自己拥有或明确授权的目标。不要用它查询、枚举、骚扰或攻击他人资产。
一、为什么推荐 SpiderFoot
SpiderFoot 是一个开源 OSINT 自动化工具。它可以围绕一个目标自动收集公开信息,例如域名、子域名、IP、邮箱、用户名、泄露记录、DNS、证书、社交线索、云资产、黑名单记录、威胁情报等。
如果把传统搜索引擎比作“手动翻资料”,SpiderFoot 更像一个可编排的信息收集工作台。你输入一个目标,例如域名、IP、邮箱、用户名或公司名称,它会调用不同模块自动扩展线索,并把结果整理成图谱和列表。
它最有价值的地方不是“黑客感”,而是帮助个人和团队回答几个非常现实的问题:
- 我的邮箱、域名、用户名是否在公开互联网中过度暴露?
- 公司有哪些对外域名、子域名、IP 和服务被公开索引?
- 是否有历史泄露、暗网线索、Paste 记录或威胁情报命中?
- 哪些公开信息可能被攻击者用于钓鱼、撞库或社会工程?
- 安全团队能否把外部攻击面自查流程标准化?
二、SpiderFoot 能做什么
SpiderFoot 支持 Web UI 和命令行两种使用方式。常见能力包括:
- 域名与子域名发现
- DNS 记录查询
- IP、ASN、网段和开放服务线索收集
- SSL/TLS 证书与证书透明日志查询
- 邮箱、用户名和账号线索发现
- 数据泄露、Paste、黑名单与威胁情报查询
- 公开代码仓库、搜索引擎、社交网络线索收集
- 结果导出为 CSV、JSON、GEXF 等格式
- 通过模块化机制接入第三方 API
它不是漏洞扫描器,也不是入侵工具。它更适合做“公开信息暴露面分析”,帮助你从攻击者视角看自己在互联网上留下了哪些痕迹。
三、主要适用人群
1. 个人隐私保护用户
适合查询:
- 常用邮箱是否出现在公开泄露线索中
- 用户名是否跨平台复用
- 个人域名是否暴露了过多信息
- 旧账号、旧域名、历史记录是否还可被检索
个人用户使用 SpiderFoot 的重点不是“扫别人”,而是建立自己的隐私暴露清单。
2. 企业安全团队
适合用于:
- 外部攻击面梳理
- 子域名资产发现
- 暴露服务线索收集
- 品牌滥用和钓鱼域名线索分析
- 威胁情报初筛
- 红队/蓝队演练前的信息收集
对于中小团队,SpiderFoot 可以作为低成本的攻击面管理起点。
3. 运维、DevOps 与云平台管理员
适合检查:
- 是否有遗留测试域名
- 是否有旧服务器仍被 DNS 指向
- 是否有云服务、对象存储、证书记录被公开索引
- 是否存在命名不规范导致的信息泄露
它可以帮助运维团队定期发现“忘记下线”的互联网资产。
4. 安全研究员与合规审计人员
适合用于:
- 授权目标的信息收集
- 供应商公开暴露面初筛
- 合规检查前的公开信息盘点
- 安全报告中的证据整理
SpiderFoot 的结果可导出,便于进入后续分析和报告流程。
四、隐私保护与合规边界
SpiderFoot 的数据主要来自公开来源和第三方 API。它可以发现很多公开线索,但这不代表所有查询行为都合规。
使用边界
- 只扫描自己拥有或明确授权的域名、IP、邮箱和账号。
- 不要批量枚举他人邮箱、手机号、账号或员工信息。
- 不要把扫描结果用于骚扰、钓鱼、撞库、社工或攻击。
- 企业内部使用前,应获得安全、法务或管理层授权。
- 涉及员工个人信息时,应遵守本地隐私与数据保护法规。
部署隐私建议
SpiderFoot 扫描结果本身可能很敏感。它会保存目标、关联邮箱、域名、IP、泄露线索和威胁情报命中记录,因此部署时要注意:
- 不要把 Web UI 直接暴露到公网。
- 优先绑定
127.0.0.1,通过 SSH 隧道或 VPN 访问。 - 如需团队访问,放在反向代理后面,并启用 HTTPS、认证和访问控制。
- 定期清理不再需要的扫描结果。
- 不要把数据库、导出文件和日志同步到不可信网盘。
- API Key 应放在安全配置中,不要提交到 Git 仓库。
- 扫描结果导出后,应按敏感资料管理。
推荐访问方式:
| 场景 | 推荐方式 | 风险 |
|---|---|---|
| 本机个人使用 | 127.0.0.1 本地访问 |
低 |
| 服务器个人使用 | SSH 隧道访问 | 低 |
| 团队内网使用 | VPN + 反向代理认证 | 中低 |
| 公网直接开放 Web UI | 不推荐 | 高 |
五、项目优点
1. 模块丰富
SpiderFoot 内置大量 OSINT 模块,可以覆盖域名、IP、邮箱、用户名、证书、威胁情报、泄露数据、搜索引擎等多个方向。
2. 自动关联线索
它可以从一个目标扩展出多个关联实体。例如从域名发现子域名,从子域名发现 IP,从 IP 关联 ASN,从邮箱关联泄露线索。
3. Web UI 易上手
相比纯命令行工具,SpiderFoot 的 Web UI 更适合查看结果、筛选事件、追踪模块输出和导出报告。
4. 支持命令行和自动化
对于安全团队,可以用 CLI 或 API 把 SpiderFoot 纳入定期扫描流程。
5. 开源可控
开源版可以自托管,数据不必上传到第三方平台。对重视数据主权的团队来说,这是重要优势。
六、项目缺点
1. 结果质量依赖数据源和 API Key
很多高价值数据源需要 API Key。没有配置 API Key 时,SpiderFoot 仍可运行,但结果会少很多。
2. 误报和噪声不可避免
OSINT 工具经常会发现过期、重复、弱关联或不准确的线索。最终结论必须人工复核。
3. 不是漏洞扫描器
SpiderFoot 主要做公开信息收集,不负责漏洞验证、漏洞利用或补丁建议。不要把它当作 Nessus、OpenVAS、Nuclei 的替代品。
4. 部署安全要自己负责
开源版更适合本地或内网使用。如果直接暴露到公网,扫描结果和 API Key 都可能面临风险。
5. 大规模扫描需要资源规划
目标多、模块多、线程高时,会产生较多网络请求和数据库写入。低配服务器可能会变慢。
七、部署方案选择
推荐优先级:
- Docker Compose:最适合服务器、NAS、实验环境。
- Python 虚拟环境:适合开发者、研究人员、本机临时使用。
- 源码运行:适合二次开发和模块调试。
本文以 Docker Compose 为主,Python 虚拟环境为备用方案。
八、Docker Compose 部署教程
以下步骤适用于 Ubuntu Server 22.04/24.04 或 Debian 12。
第 1 步:安装 Docker
1 | sudo apt update |
验证:
1 | docker --version |
Debian 用户可把 Docker 源中的 ubuntu 换成 debian,或直接参考 Docker 官方安装文档。
第 2 步:创建部署目录
1 | sudo mkdir -p /opt/spiderfoot |
第 3 步:下载稳定版源码
截至 2026-06-28,SpiderFoot GitHub 最新稳定发布版为 v4.0。建议优先使用稳定包,而不是直接拉取 master。
1 | curl -L -o spiderfoot-4.0.tar.gz https://github.com/smicallef/spiderfoot/archive/refs/tags/v4.0.tar.gz |
如果后续出现新版本,把 v4.0 替换为最新稳定版本号。
第 4 步:查看 Docker Compose 文件
项目自带 docker-compose.yml。先检查端口、挂载和启动参数:
1 | sed -n '1,200p' docker-compose.yml |
如果默认绑定所有网卡,建议改为只监听本机:
1 | ports: |
这样 Web UI 不会直接暴露到局域网或公网。
第 5 步:启动 SpiderFoot
1 | docker compose up -d |
查看状态:
1 | docker compose ps |
查看日志:
1 | docker compose logs -f |
第 6 步:访问 Web UI
如果部署在本机:
1 | http://127.0.0.1:5001 |
如果部署在远程服务器,并且只绑定了 127.0.0.1,推荐用 SSH 隧道访问:
1 | ssh -L 5001:127.0.0.1:5001 user@server-ip |
然后在本地浏览器打开:
1 | http://127.0.0.1:5001 |
第 7 步:停止和升级
停止:
1 | docker compose down |
升级建议:
1 | cd /opt/spiderfoot |
然后下载新版本源码,重新构建并启动:
1 | docker compose build --no-cache |
升级前一定要备份数据库和配置。
九、Python 虚拟环境部署教程
如果你不想使用 Docker,可以用 Python 运行。
第 1 步:安装系统依赖
1 | sudo apt update |
第 2 步:下载稳定版
1 | mkdir -p ~/tools |
第 3 步:创建虚拟环境
1 | python3 -m venv .venv |
第 4 步:启动 Web UI
建议仅监听本机:
1 | python sf.py -l 127.0.0.1:5001 |
浏览器打开:
1 | http://127.0.0.1:5001 |
如果需要让局域网访问,可以监听服务器 IP,但必须做好访问控制:
1 | python sf.py -l 0.0.0.0:5001 |
不建议直接公网开放这个端口。
十、基础使用教程
1. 创建扫描任务
进入 Web UI 后,通常流程是:
- 新建 Scan。
- 输入目标,例如域名、IP、邮箱、用户名或公司名称。
- 选择扫描类型或模块集合。
- 启动扫描。
- 等待模块运行完成。
- 查看 Browse、Graph、Correlations、Exports 等结果。
2. 推荐的目标类型
| 目标类型 | 示例 | 适合用途 |
|---|---|---|
| 域名 | example.com |
子域名、DNS、证书、邮箱线索 |
| IP | 1.2.3.4 |
归属、黑名单、开放情报 |
| 邮箱 | name@example.com |
泄露、关联账号、公开记录 |
| 用户名 | username |
跨平台账号线索 |
| 公司名 | Example Inc |
品牌、域名、公开实体线索 |
个人用户建议从自己的邮箱、用户名和个人域名开始。企业用户建议从主域名开始,再逐步扩展到子品牌、历史域名和云资产。
3. 模块选择建议
第一次使用不要全选所有模块。建议按目标分组选择:
个人隐私自查
优先选择:
- 邮箱泄露相关模块
- 用户名搜索模块
- 搜索引擎模块
- Paste/公开文本模块
- 社交与公开资料模块
目标是发现“我的邮箱或用户名在哪里出现过”。
企业域名自查
优先选择:
- DNS 模块
- 子域名模块
- 证书透明日志模块
- WHOIS/RDAP 模块
- IP/ASN 模块
- 威胁情报和黑名单模块
目标是发现“公司有哪些公开资产和异常线索”。
威胁情报初筛
优先选择:
- 黑名单模块
- 恶意软件情报模块
- 暗网/Paste 线索模块
- IOC 相关模块
- 搜索引擎缓存和索引模块
目标是发现“是否已有外部风险命中”。
4. 配置 API Key
SpiderFoot 的许多模块依赖第三方服务。没有 API Key 时也能跑,但结果有限。
常见 API Key 来源包括:
- Have I Been Pwned
- Shodan
- SecurityTrails
- VirusTotal
- Censys
- Hunter
- GitHub
- AbuseIPDB
- GreyNoise
- AlienVault OTX
配置建议:
- 只配置你真正需要的数据源。
- 为 SpiderFoot 单独创建 API Key。
- 不要使用个人主账号的高权限 Token。
- 定期轮换 Key。
- 不要把 Key 写入公开仓库、截图或博客。
- 团队使用时,应记录 Key 的归属和额度。
5. 查看结果
结果通常按事件类型和模块来源展示。建议重点关注:
- 高置信度泄露记录
- 可验证的邮箱和账号命中
- 仍然解析有效的子域名
- 指向真实资产的 IP
- 新近证书记录
- 黑名单或恶意情报命中
- 公开代码、Paste 或文档中的敏感信息
不要只看数量。OSINT 的核心是关联和验证,不是追求结果越多越好。
6. 导出结果
常见导出格式:
- CSV:适合表格分析和报告整理
- JSON:适合自动化处理
- GEXF:适合图谱工具分析
导出后建议按敏感资料保存,不要随意转发。
十一、隐私泄露自查实战流程
下面是一套适合个人和小团队的实操流程。
第 1 步:列出自查对象
准备一个清单:
1 | 主邮箱 |
第 2 步:先扫低风险目标
建议先从自己的域名或邮箱开始,少量模块扫描,确认结果格式和噪声水平。
第 3 步:按目标分批扫描
不要把所有邮箱、域名和用户名塞进一次大扫描。推荐拆成:
- 个人邮箱扫描
- 用户名扫描
- 主域名扫描
- 子品牌域名扫描
- 历史域名扫描
这样更容易判断结果来源。
第 4 步:人工复核高风险结果
重点复核:
- 邮箱是否真实出现在泄露数据源中
- 泄露是否包含密码、哈希、手机号或姓名
- 子域名是否仍解析
- IP 是否仍归属自己
- Paste 或代码仓库是否仍可访问
- 证书记录是否暴露内部命名规则
第 5 步:处理风险
个人用户:
- 修改泄露邮箱相关账号密码
- 停止跨站复用密码
- 开启双因素认证
- 注销不再使用的旧账号
- 删除公开页面中的邮箱和手机号
企业用户:
- 下线无用子域名和旧资产
- 清理泄露的 Token、Key、配置文件
- 统一域名和证书命名规范
- 对暴露邮箱加强反钓鱼培训
- 将高风险线索进入漏洞管理或工单流程
第 6 步:定期复查
建议频率:
| 对象 | 频率 |
|---|---|
| 个人邮箱 | 每季度 |
| 个人域名 | 每季度 |
| 企业主域名 | 每月 |
| 重点品牌 | 每月 |
| 高风险业务上线后 | 立即 |
十二、和其他工具怎么搭配
SpiderFoot 适合“发现公开线索”,但完整安全流程还需要其他工具配合。
| 需求 | 工具搭配 |
|---|---|
| 子域名验证 | dnsx、puredns |
| HTTP 服务探测 | httpx |
| 漏洞模板扫描 | nuclei |
| 端口扫描 | nmap、masscan |
| 资产台账 | CMDB、表格、ASM 平台 |
| 泄露凭证处理 | 密码重置、MFA、IAM 审计 |
| 报告整理 | CSV/JSON + BI/Markdown |
推荐流程:
1 | SpiderFoot 发现线索 |
十三、维护与备份
1. 备份什么
至少备份:
- SpiderFoot 数据库文件
- 配置文件
- API Key 配置
- 扫描导出结果
- Docker Compose 文件
2. 备份建议
1 | cd /opt |
如果扫描结果包含敏感信息,备份文件应加密保存:
1 | gpg -c spiderfoot-backup-$(date +%F).tar.gz |
3. 日常维护
- 定期升级 SpiderFoot。
- 定期轮换 API Key。
- 删除过期扫描结果。
- 控制扫描频率,避免触发第三方服务限制。
- 对团队用户建立授权和审计流程。
十四、常见问题
1. SpiderFoot 能查到密码吗
SpiderFoot 可能发现泄露事件线索,但它不是密码破解器,也不应用于获取、传播或验证他人密码。发现泄露线索后,正确做法是立即修改密码、开启 MFA,并检查相关账号。
2. 没有 API Key 还能用吗
可以,但结果会有限。许多高价值模块依赖第三方 API。建议从免费或低成本 API Key 开始,逐步补齐。
3. 扫描很慢怎么办
减少模块数量,降低并发,缩小目标范围。OSINT 扫描依赖外部服务,速度不只取决于本机性能。
4. 为什么结果很多但没价值
可能是模块选择过宽,或者目标本身噪声高。建议先明确问题:查泄露、查子域名、查威胁情报还是查品牌滥用。目标越清晰,结果越有用。
5. 可以扫竞争对手吗
不建议。除非有明确授权,否则不要扫描他人组织、个人邮箱、员工账号或网络资产。即使数据来自公开来源,也可能触及法律、合规和平台条款风险。
6. 能不能公网部署给团队用
可以,但不建议直接裸露端口。应使用 VPN、反向代理、HTTPS、认证、访问控制和日志审计。扫描结果本身就是敏感数据。
十五、注意事项清单
- 只扫描自己拥有或明确授权的目标。
- 不要公网裸露 Web UI。
- 不要把 API Key 写进 Git 仓库。
- 不要一次全选所有模块,先按目标选择模块。
- 不要把 OSINT 结果直接等同于事实,必须人工复核。
- 不要把 SpiderFoot 当漏洞扫描器。
- 不要把导出的 CSV/JSON 随意发给无关人员。
- 企业使用前应建立授权、留痕和数据保留策略。
- 扫描频率要合理,避免触发第三方 API 限制。
- 高风险结果应进入修复流程,而不是只停留在报告里。
十六、结论
SpiderFoot 是一个非常适合隐私泄露查询和攻击面自查的开源 OSINT 工具。它的优势在于模块丰富、自动关联、Web UI 友好、部署成本低,并且可以自托管,适合个人、家庭实验室、安全团队和中小企业使用。
它的正确使用方式不是“扫得越多越好”,而是围绕明确问题开展授权查询:我的邮箱是否泄露、我的域名暴露了什么、我的公司有哪些外部资产、哪些公开信息可能被攻击者利用。
如果你重视隐私和数据主权,推荐使用本地或内网部署、SSH 隧道访问、少量模块起步、逐步配置 API Key,并把扫描结果纳入定期复查和风险修复流程。这样 SpiderFoot 才能从一个“信息收集工具”变成真正有价值的隐私保护和安全治理工具。
参考资料
- SpiderFoot GitHub:https://github.com/smicallef/spiderfoot
- SpiderFoot 最新发布页:https://github.com/smicallef/spiderfoot/releases/latest
- SpiderFoot Docker Compose:https://github.com/smicallef/spiderfoot/blob/master/docker-compose.yml
- Docker 官方安装文档:https://docs.docker.com/engine/install/
