SpiderFoot OSINT 信息收集工具:10 分钟搭建你的第一个自动化威胁情报扫描
2026/9/6 17:55:49 网站建设 项目流程

SpiderFoot OSINT 信息收集工具:10 分钟搭建你的第一个自动化威胁情报扫描

【免费下载链接】spiderfootSpiderFoot automates OSINT for threat intelligence and mapping your attack surface.项目地址: https://gitcode.com/GitHub_Trending/sp/spiderfoot

你正在对 example.com 做安全调研:它有哪些子域名?哪些邮箱地址在公网暴露?关联 IP 是否上了威胁情报黑名单?有没有哪个云存储桶忘了关?这些活靠手工一个个翻,一天下来可能才查完两三成。SpiderFoot 是一个开源的 OSINT(开源情报)自动化工具,面向威胁情报收集与攻击面测绘——你只输入一个目标,它内置的 200 多个模块就会自动分工合作,把互联网上公开的信息抓取、提取、关联成一份完整的情报视图。

它为什么能覆盖大部分 OSINT 场景

SpiderFoot 的设计核心是「200+ 模块 + 发布/订阅」:

  • 模块即数据源:域名枚举、邮件/电话提取、威胁情报查询(Shodan、GreyNoise、HaveIBeenPwned 等)、端口扫描、云存储桶探测、社交媒体账号关联……几乎每类数据源都是一个独立模块,代码在 modules/ 目录下。
  • 模块之间互相喂数据:一个模块发现的 IP 会成为其他模块的输入,比如先解析出 IP,再自动去查它是否被多个情报源标记为恶意,最大化单次扫描的产出。
  • 大多数模块零门槛:大部分模块不需要 API 密钥,需要密钥的也多提供免费额度,Web 界面里可以集中管理和导入导出密钥。
  • 两种操作方式:内置 Web 服务(图形界面)和命令行,见 sf.py 与 sfcli.py。

三条命令安装并启动

要求 Python 3.7+,克隆仓库后两条命令即可跑起来:

git clone https://gitcode.com/GitHub_Trending/sp/spiderfoot cd spiderfoot pip3 install -r requirements.txt

然后启动 Web 服务:

python3 ./sf.py -l 127.0.0.1:5001

浏览器打开http://127.0.0.1:5001,SpiderFoot 的扫描管理界面就在眼前。首次启动会初始化 SQLite 数据库,之后所有扫描结果都保存在本地,可用 SQL 直接查询。

用 Docker 部署

如果不想碰 Python 环境,仓库自带 Dockerfile 和 docker-compose.yml:

docker build -t spiderfoot . docker run -p 5001:5001 spiderfoot

容器默认监听 5001 端口,数据目录可以挂载卷持久化,效果与本地安装一致。

创建第一次扫描:从目标到结果

Web 界面四步流程

  1. 点击 New Scan,输入目标;
  2. 选择模块(新手直接用默认选择即可);
  3. 点击 Run Scan;
  4. 在扫描页实时查看各模块进度与发现的数据。

目标类型很宽:域名、子域名、主机名、IP、网段(CIDR)、ASN、邮箱、电话号码、用户名、人名,甚至比特币地址都支持。

一条命令的命令行扫描

不想开界面,一行命令即可完成「扫描 + 导出」:

python3 ./sf.py -s example.com -u passive -o csv

几个常用参数:

参数作用
-s指定扫描目标
-u passive/footprint/investigate/all按使用场景自动挑选模块,passive 只查公开数据源、不打目标
-m mod1,mod2精确指定模块(如sfp_dnsresolve,sfp_portscan_tcp
-M列出全部可用模块
-o tab/csv/json输出格式,默认表格
-max-threads并发模块数,控制扫描节奏

建议第一次就用-u passive:不动目标、只查询公开数据源,几分钟后就能拿到一份干净的结果集。

关联分析:把一堆数据变成结论

SpiderFoot 4.0 引入了基于 YAML 的关联分析引擎:扫描结束后,它会自动对结果跑一遍内置规则,直接告诉你哪些发现值得关注,而不是一股脑丢数据。

  • 37 条预置规则位于 correlations/,覆盖典型风险场景:多个情报源同时报恶意的 IP、暴露在互联网上的数据库、泄露软件版本的开放端口、可被接管的子域名、异常外泄的邮箱等等。
  • 规则可读性很高,以 open_port_version.yaml 为例,它从扫描结果中挑出端口横幅,用正则匹配出版本号,按横幅分组后报告「某开放端口暴露了软件版本」。
  • 写自己的规则:复制 correlations/template.yaml,填好 ID、描述、风险级别和收集条件,保存后重启即生效。规则结构就是「收集(collections)→ 分组(aggregation)→ 过滤分析(analysis)→ 结论(headline)」四段,详细字段说明见 correlations/README.md。
  • 结果同时存在 SQLite 的tbl_scan_correlation_results表里,方便脚本化处理。

结果导出与二次定制

  • 三种导出格式:CSV(进 Excel 分析)、JSON(接自动化流程)、GEXF(导入图可视化工具看数据关联图谱)。
  • 自定义收集模块:在 modules/ 下参考 sfp_template.py 写一个 Python 类即可注册进框架,与内置 200 多个模块同等对待。
  • 外部工具联动:它还可以调用 DNSTwist、WhatWeb、Nmap、Nuclei 等本地工具(modules/sfp_tool_nmap.py),把传统渗透工具的输出并入统一数据流。
  • 更多背景资料可看 docs/ 下的官方文档源。

下一步

SpiderFoot 的价值在于:把「查一个目标」从手工翻几十个网站,压缩成一条命令加一次等待,且结果带结论、可导出、可复现。

建议你现在就选一个自己名下的域名,跑一次-u passive扫描,导出 CSV 看看结果;然后打开 correlations/template.yaml 写一条属于自己的关联规则——这一步走完,你就完成了从用户到贡献者的转变。

使用提醒:请只扫描你有权评估的目标,控制扫描频率,避免触发速率限制或影响对方服务。

【免费下载链接】spiderfootSpiderFoot automates OSINT for threat intelligence and mapping your attack surface.项目地址: https://gitcode.com/GitHub_Trending/sp/spiderfoot

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询