一、主持人信息(域名 网站资产情报搜集)
一、主持人信息(域名 / 网站资产情报搜集)
-
metagoofil:爬网站里 PDF/Word 等文件,扒文件里隐藏的员工账号、电脑路径、邮箱
原理:
- 解析用户输入命令行参数(域名、文件类型、线程数、超时、是否下载文件等)
- 拼接谷歌搜索语法
filetype:后缀 site:目标域名 - 调用谷歌 API 批量检索匹配文档 URL
- 多线程并发下载网页文档到本地文件夹
- 可导出全部文档链接到文本;统计下载总大小
- 谷歌请求频繁触发 429 限流时直接退出并提示解决方案
-
spiderfoot :图形化全自动情报工具,输入域名一键挖子域名、邮箱、IP、泄露信息
一站式自动化情报搜集,输入任意目标(域名 / IP / 邮箱 / 手机号 / 人名 / ASN),自动调用 200 + 内置模块爬取全网公开数据,自动关联分析线索,不用手动切换多个工具(替代 metagoofil、dnstwist、whois、nmap、whatweb 等零散工具)。
常用方法:
启动 Web 图形界面(监听所有 IP,宿主机可访问),然后在浏览器输入0.0.0.0:5001。可以进行访问。基本方法自行查询
spiderfoot -l 0.0.0.0:5001一、Passive(纯被动扫描)
执行行为:
全程不主动发起 HTTP、DNS 请求访问目标官方服务器,仅调取全网第三方存档、公开数据库离线数据完成检索。
底层原理:
- WHOIS 查询:调用全球域名注册局存档数据库,读取域名注册人、注册时间、DNS 服务器、联系邮箱等历史备案信息,数据由域名服务商长期留存,无需和目标站点交互。
- 历史 DNS 库查询:访问 Mnemonic、Crt.sh 等公共 DNS 存档平台,调取多年前域名解析记录,获取历史子域名、IP 对应关系,数据为第三方爬虫提前缓存,不实时请求目标 DNS。
- SSL 证书库检索:抓取全球 SSL 证书透明日志存档,证书备案时会登记所有关联域名、机构邮箱,直接读取存档数据,不连接目标 443 端口。
- 代码仓库检索:请求 GitHub、Gitee 公开 API,检索仓库内容包含目标域名的公开代码,仅和代码平台服务器通信,不访问目标官网。
- 公开文档存档:搜索引擎缓存快照、政府公示存档文件,读取第三方缓存的 PDF、公示文档,不直接爬取目标网站。
核心逻辑:
所有数据源均为第三方已提前采集归档的离线数据,扫描流量仅流向第三方情报平台,目标服务器不会产生访问日志,无扫描痕迹。
二、Footprint(资产测绘扫描)
执行行为:
在被动数据源基础上,增加主动探测行为,主动和目标网络基础设施、网站建立连接,完整测绘对外暴露的全部网络资产。
底层原理:
- 主动 DNS 枚举:发送 DNS 解析请求到目标官方 NS 服务器,批量举子域名字典,实时获取当前生效的子域名解析记录。
- 网页爬虫探测:主动发送 GET 请求访问目标域名、分页、子站点,爬取页面链接、公示文件、接口路径,获取网站目录、文档资源。
- 端口与服务探测:向域名对应公网 IP 发起端口连接,识别开放端口、服务器版本、CMS 指纹、中间件信息。
- 反向 IP 查询:查询同一公网 IP 绑定的全部站点,梳理同服务器附属资产。
- 备案实时核验:对接国内备案接口,实时拉取单位最新备案主体、附属域名清单。
核心逻辑:
结合第三方离线存档 + 实时主动访问目标服务器,兼顾历史资产与当前在线资产,完整绘制单位对外暴露的网络攻击面,扫描行为会在目标服务器留下访问记录。
三、Investigate(恶意溯源扫描)
执行行为:
覆盖 Footprint 全部资产测绘能力,叠加全网威胁情报黑名单库检索,定位目标相关恶意资产、仿冒站点、泄露风险。
底层原理:
- 钓鱼域名比对:调用 DNSTwist 模块,基于目标域名生成形近、仿冒类域名,查询域名注册库判断仿冒站点是否被注册、上线。
- 威胁情报库匹配:对接 LeakIX、恶意 IP 黑名单、病毒总库 API,检索目标 IP / 域名是否存在挖矿、木马、攻击行为标记。
- 数据泄露库检索:调用社工泄露数据库,匹配域名配套邮箱是否发生数据泄露、泄露内容。
- 黑产关联检索:查询暗网情报、网络攻击档案,检索是否存在针对该单位的攻击记录、泄露内部资料。
- 恶意站点交叉比对:检索全网恶意站点数据库,判断是否存在仿冒官网的钓鱼页面。
-
spiderfoot-cli:上面工具的纯命令行版本,适合写脚本批量扫描。命令行界面
更详细的原理解释:
一、查询类模块(纯被动,不与目标产生网络交互,仅调用第三方公开存档/API)
- WHOIS 模块
底层架构与数据源
ICANN 统一分配全球域名注册管理机构,分为通用顶级域(.com/.org)注册库、各国国别域名(.cn/.jp)本地WHOIS服务器、历史WHOIS归档平台(WhoisXMLAPI、WhoisHistory)。
执行流程底层
- 程序内置WHOIS协议客户端(TCP 43端口原生协议,无需浏览器),先查询根WHOIS服务器,获取该域名对应的注册商WHOIS地址;
- 二次TCP 43连接注册商归档服务器,拉取域名静态备案快照:注册人、管理邮箱、DNS服务器、创建/到期时间、注册机构、联系人电话;
- 历史WHOIS子逻辑:对接第三方归档API,调取历年变更记录(过户、换邮箱、换DNS);
核心关键
全程通信对象是域名注册局存档服务器,不会向目标网站IP、DNS发送任何数据包;仅读取存量备案数据,无主动探测行为,不留扫描痕迹。
2. crt.sh(SSL CT证书透明日志模块)底层原理:证书透明日志机制(CT Log)
全球CA机构颁发SSL证书时,强制将证书上传至公共CT日志集群,crt.sh 是CT日志公开检索镜像站,永久存储所有域名证书备案信息。
执行流程底层
- 向 crt.sh HTTP API发送域名关键词GET请求;
- 数据库检索所有包含该域名SAN字段的SSL证书,返回证书序列号、签发机构、证书绑定全部子域名、证书持有人企业邮箱、证书有效期;
- 解析证书文本,批量提取新增子域名、企业邮箱作为新情报实体;
关键约束
仅和 crt.sh 服务器通信,不发起443端口TLS握手、不连接目标网站,纯离线存档检索。
3. PassiveTotal 被动DNS模块底层数据源
RiskIQ/PassiveTotal多年分布式爬虫持续全网抓取DNS解析记录,持续存储A/AAAA/CNAME/MX等解析历史,形成海量被动DNS离线库。
底层执行逻辑
- 携带API密钥调用PassiveTotal官方REST API;
- 传入目标域名/IP,拉取历史解析映射:域名曾经绑定过哪些IP、IP绑定过哪些域名、历史MX邮件服务器;
- 批量提取历史下线子域名、废弃IP资产;
核心特点
数据源为第三方长期缓存,不向目标DNS服务器发送解析请求,属于纯被动情报。
4. GitHub / Gitee API 代码仓库检索模块底层依赖平台公开搜索API
Github Search API、Gitee开放搜索接口,无需爬虫爬页面,直接接口检索公开仓库文本。
执行底层流程
- 构造检索语法:、 等关键词,调用平台API;
target.com``@target.com - 接口返回匹配的公开仓库、commit提交记录、README、配置文件(config.ini、env、数据库连接串);
- 正则匹配文件内域名、邮箱、内网IP、账号密钥等敏感信息;
流量边界
所有网络请求仅发往GitHub/Gitee服务器,不会访问目标业务服务器;仅读取公开代码,无法访问私有仓库。
5. HIBP(Have I Been Pwned)数据泄露库模块底层存储逻辑
HIBP收集全球网站脱库泄露数据,对泄露邮箱做索引,支持按邮箱查询是否出现在泄露库。
安全底层设计(k-anonymity 隐私保护)
- 本地计算目标邮箱完整SHA1哈希;
- 仅将哈希前5位发送给HIBP API,云端返回所有匹配该前缀的完整哈希列表;
- 本地比对完整哈希,判断邮箱是否泄露、泄露来源站点、泄露时间;
底层优势
不会明文上传邮箱,保护检索者隐私;全程仅和HIBP服务器交互,与目标无任何连接。
二、主动探测模块(直接与目标网络资产建立连接,产生日志、易触发防护设备告警)
- DNS 爆破(主动子域名枚举)
底层协议:DNS UDP/TCP 53
- 内置多级子域名字典(admin、mail、api、test、cdn等);
- 程序构造标准DNS查询报文(A记录/AAAA记录),直接发送至目标域名的权威NS服务器;
- 接收DNS应答包:
- 存在子域名:返回对应IP,存入资产库;
- 不存在:返回NXDOMAIN空应答;
- 支持泛域名过滤、速率控制、并发发包;
痕迹特征
目标DNS服务器会完整记录所有解析请求,防火墙/IDS可捕获53端口发包行为。
2. Nmap 端口扫描模块底层实现:封装原生Nmap二进制,复用Nmap TCP/IP协议栈
- 前置:被动模块获取目标IP清单后,调用系统Nmap程序;
- 扫描模式底层:
- 全连接扫描(-sT):完整三次握手建立TCP连接,Web/防火墙日志清晰可见;
- 半连接扫描(-sS):仅SYN包,不完成握手,部分防火墙日志简化;
- 端口探测完成后抓取服务Banner、协议版本(80=http、443=https、3306=mysql等);
- 输出端口开放状态、服务版本、操作系统指纹,回传给SpiderFoot主程序入库;
风险点
大量端口发包极易触发目标WAF、防火墙、流量审计告警。
3. 网页爬虫模块底层基于HTTP/HTTPS客户端,递归深度爬取目标站点
- 构造模拟浏览器HTTP请求(可自定义UA、Cookie、代理),直连目标80/443端口;
- 获取HTML、JS、CSS、PDF、附件资源;
- 正则/XPATH提取页面内子域名、邮箱、API路径、文件链接;
- 递归遍历站内所有外链、分页、接口地址,控制最大爬取深度;
日志痕迹
目标Web服务器access.log会记录每一条GET/POST请求,包含爬虫UA、访问路径、源IP。
4. WhatWeb 站点指纹识别模块底层原理:特征匹配指纹库
- 依赖网页爬虫先获取目标HTTP响应头、HTML源码、Cookie、特定路径文件(/admin.php、/wp-config.php);
- 内置数千条指纹规则(正则、状态码、Header特征):
- 中间件:Nginx/Apache/IIS版本;
- CMS:WordPress、Discuz、ThinkPHP;
- 第三方组件:Jquery、Shiro、Tomcat;
- 本地完成特征匹配,标记站点技术栈;
依赖关系
必须依托主动HTTP访问,无法纯被动识别站点指纹。
三、威胁溯源模块(混合模式:第三方情报API查询 + 风险比对,部分模块附带轻量主动校验)
- DNSTwist 仿冒钓鱼域名生成检索模块
两层底层逻辑:域名变异算法 + WHOIS存档检索
- 域名变异生成底层算法内置多种域名篡改规则批量生成仿冒候选域名:
- 字符替换:o→0、l→1、s→5;
- 增删字符:target.com → ttarget.com、targets.com;
- 形近替换、前缀/后缀插入(admin-target.com);
- 域名后缀替换:.com/.cn/.xyz/.top;
- 批量被动检索对所有生成的仿冒域名批量调用WHOIS、crt.sh 被动接口,查询该仿冒域名是否被注册、是否存在SSL证书、是否解析上线;
补充逻辑
可选主动探测:对已解析的仿冒域名发起HTTP请求,比对页面哈希判断是否仿冒官网。
2. VirusTotal 恶意样本/域名检测模块底层:调用VirusTotal v3 REST API,多引擎交叉检测
- 上传目标域名/IP/网站URL至VT API;
- VT云端调用60+杀毒引擎、网页安全引擎扫描该资产;
- 返回检测结果:是否标记钓鱼、恶意软件分发站、C2远控地址;
- 同步拉取关联恶意样本、历史威胁报告;
流量说明
请求仅发送给VirusTotal云端,不会直接向目标发送探测包;仅在需要截图校验时才主动访问目标站点。
3. 恶意IP黑名单匹配模块底层:多威胁情报源离线库+在线API实时校验
- 内置本地黑名单库(AbuseIPDB、GreyNoise、Spamhaus、Tor出口节点库);
- 两种匹配逻辑:
- 离线匹配:扫描得到IP直接本地检索黑名单;
- 在线校验:调用情报平台API,查询该IP历史行为(暴力破解、挖矿、DDoS、僵尸网络);
- 标记风险等级:高风险C2、扫描器节点、垃圾邮件IP;
无主动发包:仅查询第三方情报库,不主动探测IP端口。
4. 暗网情报检索模块底层分为两层:代理隧道 + 暗网情报存档API
- 网络层底层程序支持配置SOCKS5 Tor代理,将流量转发至Tor网络,访问暗网情报归档站点;
- 数据检索层对接暗网泄露归档平台API,检索关键词:企业域名、业务邮箱、内部账号;
- 检索内容:勒索公告、泄露数据库打包、内网源码、企业内部文档;
边界说明
仅访问暗网情报存档服务器,不会主动访问目标内网/公网资产;属于被动威胁检索,无目标探测行为。
