惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
K
Kaspersky official blog
A
Arctic Wolf
Attack and Defense Labs
Attack and Defense Labs
L
LINUX DO - 热门话题
N
News | PayPal Newsroom
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
L
Lohrmann on Cybersecurity
PCI Perspectives
PCI Perspectives
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
The Last Watchdog
The Last Watchdog
B
Blog RSS Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
W
WeLiveSecurity
Know Your Adversary
Know Your Adversary
博客园 - Franky
T
Tenable Blog
T
Tailwind CSS Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Help Net Security
Help Net Security
WordPress大学
WordPress大学
T
The Exploit Database - CXSecurity.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
D
Darknet – Hacking Tools, Hacker News & Cyber Security
H
Heimdal Security Blog
TaoSecurity Blog
TaoSecurity Blog
S
Security Affairs
J
Java Code Geeks
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Apple Machine Learning Research
Apple Machine Learning Research
NISL@THU
NISL@THU
O
OpenAI News
The Cloudflare Blog
月光博客
月光博客
Google Online Security Blog
Google Online Security Blog
V
V2EX
罗磊的独立博客
美团技术团队
博客园 - 三生石上(FineUI控件)
Security Latest
Security Latest
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
Cyber Attacks, Cyber Crime and Cyber Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Cyberwarzone
Cyberwarzone
L
LINUX DO - 最新话题
Hacker News - Newest:
Hacker News - Newest: "LLM"
大猫的无限游戏
大猫的无限游戏

BlogFinder

日常漫步 Vol.24 之漫步前山河 - 雅余 周报 #1-聊聊本周的收获 - Edwin's Blog 我的OpenCode必装插件与Skill Write Something 掌中之物未必在掌握之中 · CRIVU PiliNara,一个更顺手的 PiliPlus 分支 「NekoEcho」:做一个必有回响的猫娘主题博客 2026-05 书影音总结 简化博客主题 - 安迪 我第一次发布 npm 包 拾花小记#45:中考前的二三事 – 小改学习志 黛西花园5月游 #18 枇杷又熟了的五月月报 一些奇奇怪怪的需求?word仿方正书版的几个小操作 - Xiobb's Blog 0419 御温泉之旅 修复了一些bug,网站基本上趋于稳定了 - 新锐博客 又回到四十年前 如何定义成功 迷鹿屋2026已重新上线 科技冰火两重天+一周回顾 ${title} 热度退了,我反而用得更深了-咕咚同学 我到底该不该换个域名? 随身WIFI折腾记 - 安迪 博客撰写体验提升——hexo pro插件 为什么不用相机把屏幕上的接关密码拍下来? 国清寺与天台山 – Ouroboros ★★★★☆《挽救计划》——久违的经济上行感 - Davidの3号基地 删除右键“打开方式”里多余选项 第三周刊_No.53|一切都会被支付两次 安卓APP通话记录与录音上传踩坑记录 - 子舒的博客 天量下跌 inBox 笔记 2.3.8,把工具栏交给了你-咕咚同学 我把小龙虾搬到了微信-咕咚同学 安好 - 响石潭 Compound Engineering Plugin:让每个工程单元都比上一个更容易 MOSS-TTS Family:开源高质量语音与声音生成模型家族深度解析 Crawl4AI:专为 LLM 设计的开源 Web 爬虫与数据抓取工具 Build Your Own X:从零实现你最喜欢的技术——程序员进阶的终极资源清单 Anthropic Skills:用文件夹教 Claude 专业技能的开源框架 1年的去月球(下) - 梅之夏 欢迎回来。 简单讲讲 ASN.1 与 OID DTV - 直播聚合客户端 5.22-5.27 – 不兴江 还没去过鸭川 – 不兴江 张晶晶同学三刷林志颖 关于我 – 不兴江 爱与嫉妒 – 不兴江 港股被持续做空 备案码花了四百块-咕咚同学 一句话生成封面:我给公众号做了4种风格的AI封面生成技能 「官」方認證 再谈费曼学习法 2026-05-28T00:34:11+08:00 2026-05-28T00:28:45+08:00 离谱的英语学习指南:基于AI的英语进阶系统方法论 iii:零集成架构的后端统一运行时 Claude Code Harness:让 Claude Code 工作有迹可循的工程化框架 Heretic:全自动移除大语言模型审查机制的开源工具 MarkItDown:微软开源的万能文档转 Markdown 利器 Harness:让 Claude Code 秒变多智能体协作工厂 这段时间尽折腾AI Agent了,确实极大地提高了效率 近期动态:两个新站点正式上线啦 误判解除!zhouayuan.com 腾讯安全申诉成功 - 周阿源|玩具设计・插画日常・生活随笔 Ralph:让 AI 编码工具自主循环跑完所有 PRD 任务的量产神器 全都违法 – 个人工作记录 关于zhouayuan.com被误判 “含违规信息” 的说明与申诉记录 - 周阿源|玩具设计・插画日常・生活随笔 小米 MiMo v2.5 Pro 白嫖 最大的人间清醒,兜里有钱,但是不花。 夜晚靓歌(12):于文文现场solo - 王志勇的Blog 今日插画:风扬起的倔强 - 周阿源|玩具设计・插画日常・生活随笔 回门习俗 独立网卡 - 忘记了回忆 500亿入股人工智能企业 从命令行到桌面智能体-咕咚同学 第一性原理读书笔记 行者微评论223-加班の守株待兔-博客|政治与时事-风雨行者 ZOZO开源物理接触求解器:GPU加速的可扩展仿真引擎 OpenStock:开源股票市场交易平台技术深度解析 MoneyPrinterTurbo:基于AI的全自动短视频生成工具深度解析 Claude-Mem:为 Claude Code 构建的持久化记忆压缩系统 Twenty:可代码化定制的企业级开源 CRM 平台技术深度解析 2026-05-26T22:59:17+08:00 企业级开源大模型部署平台 GPUStack 实战教程 1年的去月球(上) - 梅之夏 Sevalla - 静态网站托管服务 不用翻墙、不用注册、不用月费,普通人也能用上 Claude Code 装修灯具要注意⚠️ 黄梅天先锋 - 游子微博 公安备案顺利办结,站点备案全部完成 - 周阿源|玩具设计・插画日常・生活随笔 第三次兑换天猫超市卡了宗宗酱-三维狐少儿编程 Don't think, feel. - Rolen's Blog 人这一辈子,到底图个什么 博客迁移 - Edwin's Blog 情感赛道写作模板 再现本轮行情的典型特征 裁员与平常心-咕咚同学 别让“偷懒”,成为隐私泄露的破绽 片刻 - Jdeal | Life is like a Design.
SpiderFoot:开源情报(OSINT)自动化利器,200+模块助你掌控网络空间侦察
Cheman · 2026-06-22 · via BlogFinder

今天在 GitHub Trending 上看到一个有意思的项目:SpiderFoot,一个用 Python 3 编写的开源情报(OSINT)自动化工具,拥有超过200个模块,能够帮助安全研究人员自动化完成大规模的网络空间情报收集工作。

一、项目概述

SpiderFoot 是一个开源情报(OSINT,Open Source Intelligence)自动化工具,由 Steve Micallef 于2012年创建并持续维护至今(已有14年历史!)。它能够自动化地从几乎每一个可用的公开数据源中提取信息,并利用多种数据分析方法,使数据易于导航和理解。

核心特性:

  • Web UI + CLI 双模式:内置 Web 服务器提供简洁直观的 Web 界面,同时也完全支持命令行操作
  • 200+ 模块集成:覆盖域名、IP、邮箱、社交媒体、暗网、威胁情报等各个维度
  • YAML 可配置关联引擎:4.0版本引入的关联规则引擎,内置37条预定义规则
  • 多种导出格式:支持 CSV、JSON、GEXF 图格式导出
  • SQLite 后端:支持自定义查询
  • 高度可配置:几乎所有功能都可以通过配置文件调整
  • TOR 集成:支持暗网搜索
  • Docker 支持:提供 Dockerfile 便于容器化部署
  • 可调用外部工具:如 DNSTwist、Whatweb、Nmap、CMSeeK 等

SpiderFoot 适用于红队演练、渗透测试中的侦察阶段,也适用于防御方评估自身或组织在互联网上暴露的信息。

GitHub 仓库:https://github.com/smicallef/spiderfoot
Star 数:20.2k+
开源协议:MIT License
最新版本:v4.0(2024年发布)

二、技术原理

2.1 架构设计

SpiderFoot 采用 发布者/订阅者(Publisher/Subscriber)模型,各个模块之间通过事件进行通信和数据传递。

核心组件:

  • sf.py:主入口,负责解析命令行参数、加载模块、启动 Web 服务器或扫描任务
  • sflib.py:SpiderFoot 核心库,定义了 SpiderFoot 主类,负责任务调度和事件分发
  • sfscan.py:扫描器核心,启动 startSpiderFootScanner 函数,管理扫描生命周期
  • sfwebui.py:Web UI 实现,基于 CherryPy 框架
  • spiderfoot/db.py:数据库层,使用 SQLite 存储扫描结果
  • spiderfoot/correlator.py:关联规则引擎,基于 YAML 配置的规则对扫描结果进行关联分析

2.2 核心技术栈

编程语言:Python 3.7+
Web框架:CherryPy 18.8.0+
前端:原生 HTML/JS + Mako 模板
数据库:SQLite(通过 spiderfoot/db.py 封装)
依赖库:
  - dnspython:DNS 解析
  - beautifulsoup4 + lxml:HTML/XML 解析
  - requests + pysocks:HTTP 请求与 SOCKS 代理支持
  - netaddr + ipwhois:IP 地址处理与 WHOIS 查询
  - pyOpenSSL:SSL/TLS 证书处理
  - cryptography:加密算法支持
  - networkx:图结构分析(用于关联分析)
  - PyPDF2 + python-docx + python-pptx:文档元数据分析
  - ExifRead:图片 EXIF 数据提取

2.3 模块系统

SpiderFoot 的模块系统非常灵活,每个模块都是一个独立的 Python 文件,放在 modules/ 目录下。

模块类型分为:

  • 内部模块(Internal):不需要 API 密钥,直接分析本地数据
  • 免费 API 模块(Free API):调用免费公开的 API
  • 分级 API 模块(Tiered API):需要 API 密钥,通常有免费额度
  • 商业 API 模块(Commercial API):需要付费订阅
  • 工具模块(Tool):调用外部工具(如 Nmap、DNSTwist)

模块基本结构(以 sfp_template.py 为模板):

from sflib import SpiderFoot, SpiderFootPlugin, SpiderFootEvent

class sfp_template(SpiderFootPlugin):
    meta = {
        'name': "Module Name",
        'summary': "Module description",
        'flags': [""],
        'useCases': ["Passive", "Investigate", "Footprint"],
        'categories': ["Category"],
        'dataSource': {
            'model': "FREE_AUTH_LIMITED",  # FREE, Tiered, Commercial, Internal
            'apiKeyInstructions': [...],
            'website': "https://example.com",
            'yearPublished': 2024,
            'possibleCats': ["Information"],
            'rules': ["NOATTRIBUTION", "NOSTORAGE", "NOSELL"]
        }
    }

    opts = {
        # 模块配置选项
    }

    def setup(self, sfc, userOpts=dict()):
        # 初始化模块
        pass

    def watchedEvents(self):
        # 返回该模块监听的事件类型
        return ["INTERESTING_EVENT"]

    def emittedEvents(self):
        # 返回该模块产生的事件类型
        return ["OUTPUT_EVENT"]

    def handleEvent(self, sfEvent):
        # 处理事件的核心逻辑
        pass

2.4 数据流分析

SpiderFoot 的数据流是事件驱动的:

目标输入(IP/域名/邮箱等)
    ↓
扫描器初始化
    ↓
模块加载(根据目标类型和启用的模块列表)
    ↓
事件循环:
  1. 模块 A 产生事件 E1(如:域名解析得到 IP)
  2. 事件总线通知所有监听 E1 的模块
  3. 模块 B 收到 E1,进行处理,可能产生新事件 E2
  4. 重复 2-3,直到没有新事件产生
    ↓
扫描完成
    ↓
关联规则引擎运行(SpiderFoot 4.0+)
    ↓
结果展示/导出

这种设计使得模块之间可以自动串联,例如:

  • sfp_dnsresolve 解析域名得到 IP →
  • sfp_shodan 用 IP 查询 Shodan →
  • sfp_virustotal 用 IP 查询 VirusTotal →
  • sfp_portscan_tcp 对 IP 进行端口扫描

2.5 关联规则引擎

SpiderFoot 4.0 引入了基于 YAML 的关联规则引擎,位于 correlations/ 目录。

规则示例(correlations/template.yaml):

name: "Rule Name"
description: "Rule description"
severity: "HIGH"  # HIGH, MEDIUM, LOW, INFO
conditions:
  - event_type: "IP_ADDRESS"
    field: "data"
    regex: ".*"
  - event_type: "VULNERABILITY"
    field: "data"
    contains: "CVE-"
actions:
  - type: "CREATE_EVENT"
    event_type: "CORRELATION"
    data: "Correlated finding"

内置37条规则,涵盖:

  • 同一 IP 上的多个恶意事件关联
  • 域名和 IP 的威胁情报交叉验证
  • 证书透明日志中的异常模式
  • 暗网提及与明网资产的关联

三、安装与快速开始

3.1 环境要求

  • Python 3.7 及以上版本
  • pip(Python 包管理器)
  • Git(可选,用于克隆开发版)

3.2 安装步骤

方式一:稳定版(推荐)

# 下载最新稳定版(v4.0)
wget https://github.com/smicallef/spiderfoot/archive/v4.0.tar.gz

# 解压
tar zxvf v4.0.tar.gz
cd spiderfoot-4.0

# 安装依赖
pip3 install -r requirements.txt

# 启动 Web UI
python3 ./sf.py -l 127.0.0.1:5001

方式二:开发版(最新功能)

# 克隆仓库
git clone https://github.com/smicallef/spiderfoot.git
cd spiderfoot

# 安装依赖
pip3 install -r requirements.txt

# 启动 Web UI
python3 ./sf.py -l 127.0.0.1:5001

方式三:Docker 部署

# 构建镜像
sudo docker build -t spiderfoot .

# 运行容器
sudo docker run -p 5001:5001 --security-opt no-new-privileges spiderfoot

# 使用数据卷持久化数据
sudo docker run -p 5001:5001 -v /mydir/spiderfoot:/var/lib/spiderfoot spiderfoot

3.3 最简运行示例

Web UI 模式

python3 ./sf.py -l 127.0.0.1:5001

然后在浏览器中打开 http://127.0.0.1:5001,通过 Web 界面创建扫描任务。

命令行模式

# 对域名 example.com 进行被动信息收集
python3 ./sf.py -s example.com -t PASSIVE

# 对 IP 地址进行全量扫描
python3 ./sf.py -s 8.8.8.8 -u all

# 对邮箱地址进行调查
python3 ./sf.py -s [email protected] -t EMAILADDR

四、使用方法与实战

4.1 支持的目标类型

SpiderFoot 可以对以下实体类型进行扫描:

目标类型说明示例
IP 地址IPv4 或 IPv6 地址8.8.8.8
域名/子域名互联网域名example.com
主机名主机名mail.example.com
网络子网CIDR 格式192.168.1.0/24
ASN自治系统号AS13335
邮箱地址电子邮件地址[email protected]
电话号码国际格式电话号码+8613800138000
用户名网络用户名johndoe
人名真实姓名"John Doe"
比特币地址BTC 地址1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

4.2 使用场景实战

场景一:红队侦察

# 对目标域名进行全量扫描(Footprint 模式)
python3 ./sf.py -s target.com -u footprint -o json > results.json

扫描将自动完成:

  • 子域名枚举
  • IP 和主机发现
  • 邮箱和电话号码提取
  • 社交媒体账号发现
  • 威胁情报查询
  • 端口扫描和服务识别

场景二:防御性安全评估

# 检查自家域名是否泄露敏感信息
python3 ./sf.py -s mycompany.com -t DOMAIN_NAME,EMAILADDR,PHONE_NUMBER

关注点:

  • 是否有泄露的邮箱在 HaveIBeenPwned 等数据库中
  • 是否有敏感文件(如 .git, robots.txt, 备份文件)可访问
  • 子域名是否可能被劫持(Subdomain Takeover)
  • 证书透明日志中是否有异常证书

场景三:威胁情报分析

# 对可疑 IP 进行威胁情报查询
python3 ./sf.py -s 198.51.100.1 -t IP_ADDRESS

SpiderFoot 会自动查询:

  • VirusTotal、AbuseIPDB、AlienVault OTX
  • Shodan、Censys
  • 各类黑名单(Spamhaus、SORBS 等)
  • 恶意软件哈希库

4.3 Web UI 使用流程

  1. 创建扫描:点击 “New Scan”,输入目标,选择扫描类型(Passive/Footprint/Investigate/All)
  2. 选择模块:可以手动选择模块,或使用预设用例(Passive、Footprint、Investigate)
  3. 启动扫描:点击 “Start Scan”
  4. 查看结果
    • Summary:概览页面,显示关键发现
    • Graph:可视化关联图
    • Events:所有事件的列表,可按类型过滤
    • Correlation:关联规则触发的结果(4.0+)
    • Export:导出为 CSV/JSON/GEXF

4.4 高级用法

使用 SOCKS 代理(TOR)

python3 ./sf.py -s target.onion -l 127.0.0.1:5001 &
# 在 Web UI 中配置 SOCKS 代理:
# _socks1type: TOR
# _socks3port: 9050

API 密钥配置: 在 Web UI 的 “Settings” → “Modules” 中,为需要的模块配置 API 密钥(如 Shodan、VirusTotal、HaveIBeenPwned 等)。

自定义关联规则: 参考 correlations/template.yaml,编写自己的规则,放入 correlations/ 目录,重启 SpiderFoot 即可加载。

五、常见问题与解决方案

5.1 安装失败

问题pip3 install -r requirements.txt 报错,提示某些包编译失败。

原因:缺少编译依赖(如 swiglibffi-devlibxml2-dev 等)。

解决

# Ubuntu/Debian
sudo apt-get install -y gcc python3-dev python3-pip swig libffi-dev libxml2-dev libxslt1-dev libssl-dev

# macOS
brew install swig libxml2 libxslt openssl

# 然后重新安装
pip3 install -r requirements.txt

5.2 Web UI 无法访问

问题:启动后访问 http://127.0.0.1:5001 显示无法连接。

原因

  1. 端口被占用
  2. 防火墙阻止
  3. 绑定地址错误

解决

# 检查端口占用
lsof -i :5001

# 使用其他端口
python3 ./sf.py -l 127.0.0.1:5002

# 允许远程访问(谨慎使用)
python3 ./sf.py -l 0.0.0.0:5001

5.3 模块运行缓慢

问题:扫描速度很慢,长时间没有新结果。

原因

  1. 并发线程数过低(默认3)
  2. 某些模块等待超时(默认5秒)
  3. 网络延迟高

解决

# 增加并发线程数
python3 ./sf.py -s target.com --max-threads 10

# 或者修改配置(通过 Web UI 或命令行)
# _maxthreads: 10
# _fetchtimeout: 10

5.4 API 限流问题

问题:使用某些模块时提示 API 限流(如 GitHub、Shodan)。

原因:免费 API 有请求频率限制。

解决

  1. 申请更高限额的 API 密钥
  2. 在模块配置中增加请求间隔
  3. 禁用不需要的 API 模块

5.5 数据库锁定

问题:同时运行多个扫描时提示数据库被锁定。

原因:SQLite 不支持高并发写入。

解决

  1. 一次只运行一个扫描
  2. 或者为每个扫描实例使用不同的数据库文件(修改 _database 配置)

六、总结

SpiderFoot 是一款功能强大、模块丰富、易于扩展的开源情报自动化工具。其发布者/订阅者架构使得200多个模块能够自动协同工作,从多个维度对目标进行全方位侦察。

核心优势

  1. 全面性:200+ 模块覆盖几乎所有公开数据源
  2. 自动化:无需手动查询每个数据源,一键完成大规模情报收集
  3. 可扩展性:易于编写自定义模块和关联规则
  4. 活跃维护:自2012年以来持续更新,社区活跃

适用人群

  • 渗透测试人员 / 红队成员
  • 安全研究人员
  • 威胁情报分析师
  • 防守方安全团队

商业版本: 如果需要更多功能(如多目标扫描、团队协作、API 驱动、变更通知等),可以考虑 SpiderFoot HX(商业版本)。

项目资源

  • 官网:https://www.spiderfoot.net/
  • GitHub:https://github.com/smicallef/spiderfoot
  • 文档:https://www.spiderfoot.net/documentation
  • Discord 社区:https://discord.gg/vyvztrG

如果你对 OSINT 感兴趣,或者需要进行网络空间侦察,SpiderFoot 绝对是一个值得深入研究的工具!