SpiderFoot 完全指南:从一个域名到完整攻击面地图,免费的 OSINT 信息收集
2026/8/24 1:36:13 网站建设 项目流程

SpiderFoot 完全指南:从一个域名到完整攻击面地图,免费的 OSINT 信息收集

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

你需要在短时间内摸清一个域名或资产暴露在互联网上的东西:有多少子域名、哪些邮箱可能已经泄露、哪些端口开着、有没有被威胁情报源标记过。手动一个个网站去查,效率低还容易漏。SpiderFoot 把这件事做成了自动化:一次扫描,200 多个模块互相喂数据,把子域名、邮箱、开放端口、威胁情报、云存储桶统统汇总到一份结果里,供你判断攻击面。

🚀 最短路径跑通项目

只需要 Python 3.7 以上。克隆仓库装依赖,然后启动 Web 服务:

git clone https://gitcode.com/GitHub_Trending/sp/spiderfoot cd spiderfoot pip3 install -r requirements.txt python3 ./sf.py -l 127.0.0.1:5001

浏览器打开http://127.0.0.1:5001,你会看到一个干净的 Web 界面:New Scan 页签里填目标、勾选模块,点 Run Scan 就能跑。不想装依赖的话,仓库自带Dockerfile,构建后容器默认就监听 5001 端口,命令是docker run -p 5001:5001 spiderfoot

Web 之外它也是纯命令行工具。不启动 Web 服务,直接这样就能在终端里跑一次扫描:

python3 ./sf.py -s 你的域名 -u passive

-u按用例自动选模块(passivefootprintinvestigateall四档),不指定-m-t-u时默认启用全部模块。扫描结果是模块名、数据类型、数据三列,可以直接用-o csv-o json导出来接进你自己的流程。

🔍 三个真实使用场景

场景一:摸清自家域名的暴露面。想做什么:接手一个新域名或做一次资产盘点,知道它对外暴露了哪些子域名、IP、邮箱和技术栈。怎么做:Web 界面里以域名为目标发起扫描,模块用默认勾选即可,SpiderFoot 的模块是发布/订阅模型——DNS 解析出的 IP 会喂给端口扫描,扫到的页面内容会喂给邮箱和人名提取,一层层扩散。得到什么:一份带来源关系的事件列表,子域名接管风险、异常 Web 服务器、暴露的 S3/Azure/DigitalOcean 存储桶都会出现在结果里。

场景二:给一个 IP 或邮箱做威胁情报查询。想做什么:判断某个 IP 是不是恶意节点,或某个邮箱是否出现在数据泄露中。怎么做:直接把 IP 或邮箱作为扫描目标,启用 abuse.ch、AlienVault、HaveIBeenPwned 这类模块(需要 API 的模块在界面里填好密钥)。得到什么:多个情报源的一致结论,而不是单家黑名单的孤证——这正是它的关联规则要解决的问题。

场景三:扫描完自动告诉你哪里有问题。想做什么:从一堆数据里直接看到风险点,而不是自己筛。怎么做:什么都不用做,4.0 内置的关联引擎在每次扫描结束时自动跑完 37 条 YAML 规则。得到什么:结构化结论,比如"某个开放端口的横幅泄露了软件版本"、"发现已过期 SSL 证书"、"该 IP 被多个情报源同时标记为恶意",每条都带风险等级(INFO 到 HIGH),可直接写进报告。

🧩 进阶一窥:自己写一条关联规则

这是 SpiderFoot 4.0 最值得玩的地方:关联规则用 YAML 写,结构就四段——collections从扫描结果里取数据、aggregation分组、analysis过滤、headline给结论起标题。以 correlations/cert_expired.yaml 为例,整条规则十几行:匹配SSL_CERTIFICATE_EXPIRED类型的事件,按来源域名聚合,输出一句"发现过期证书:某域名"。

想加自己的规则,把correlations/template.yaml复制一份、改名、改写,重启 SpiderFoot 即可加载。官方对规则字段写了非常完整的参考文档,直接看 correlations/README.md,里面逐字段讲了methodfield前缀(source.child.entity.)的用法。

⚠️ 避坑

  • 版本选择:README 明确建议用打包的稳定版(当前是 4.0),master 分支是未充分测试的前沿代码,新手别直接 clone master 跑生产扫描。
  • 关联规则不产生数据:规则只分析扫描结果,不主动采集。如果你的扫描没启用端口扫描,open_port_version这类规则永远不会命中;先想清楚要哪类数据,再反推需要哪些模块。
  • API 密钥是增强项不是门槛:200 多个模块里大多数不需要密钥,需要的多有免费额度;Web 界面支持密钥的集中导入导出。没填密钥的模块只是少一份数据源,扫描不会因此失败。
  • 数据库位置:数据文件在~/.spiderfoot/下,不要把spiderfoot.db放进项目目录,新版会直接拒绝启动。

🛡️ 边界与合规

SpiderFoot 既能用于防御(盘点自家资产),也能用于授权渗透测试中的侦察。只扫描你拥有或被明确授权的目标,控制扫描频率,遵守各数据源平台的服务条款和速率限制。

到这里你已经可以独立跑完一次扫描并读懂关联结论。下一步建议打开 correlations/README.md 精读规则字段,再动手改一条规则跑给你自己的域名看。

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

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

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

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

立即咨询