4、OSINT工具入门:常用工具(Maltego、Shodan、Censys、theHarvester、Recon-ng)的安装、配置与基本使用
开源情报(OSINT)分析的核心在于将分散的公开数据转化为可操作的情报。面对海量信息,手工检索效率极低,且难以建立数据间的关联。本章聚焦于五款业界主流的OSINT工具——Maltego、Shodan、Censys、theHarvester与Recon-ng,从安装配置到实战操作,帮助您构建一套标准化的信息收集工作流。这些工具并非孤立存在,而是分别覆盖了实体关系映射、互联网资产暴露面测绘、子域名与邮箱枚举、以及自动化侦察框架等关键环节。理解每款工具的定位与边界,是高效利用它们的前提。
上图展示了五款工具在典型OSINT工作流中的协同关系:theHarvester负责从搜索引擎与公开数据源中提取基础线索,Shodan与Censys从网络空间测绘角度发现暴露资产,Maltego将上述数据转化为可视化实体关系图,而Recon-ng则作为编排框架将多个模块串联执行。下面我们将逐一深入每款工具的安装、配置与核心操作。
4.1 核心原理:工具分类与数据源差异
这五款工具的设计哲学与数据获取方式存在本质差异,理解这些差异有助于避免误用。Maltego基于“实体-链接”模型,通过Transform(转换器)从不同数据源拉取信息并建立关联,其核心价值在于关系可视化而非数据量。Shodan与Censys属于网络空间搜索引擎,它们持续扫描全球IPv4/IPv6地址空间,建立包含端口、服务、协议、证书、设备类型等信息的索引数据库。theHarvester是一个轻量级的信息收集脚本,专注于从Google、Bing、PGP服务器等公开源提取邮箱、子域名和主机名。Recon-ng则是一个模块化的Web侦察框架,类似于Metasploit的OSINT版本,提供统一的接口来调用超过100个侦察模块。
| 工具 | 核心数据源 | 主要输出 | 典型使用场景 |
|---|---|---|---|
| Maltego | Transform(DNS、WHOIS、社交网络等) | 实体关系图(GraphML/PDF) | 组织架构梳理、人员关系分析 |
| Shodan | 全球端口扫描数据库 | IP列表、端口、Banner、漏洞 | 暴露面发现、物联网设备识别 |
| Censys | IPv4/6全端口扫描+证书透明度日志 | 证书、协议、服务指纹 | 资产归属确认、加密资产审计 |
| theHarvester | 搜索引擎、PGP服务器、DNS | 邮箱、子域、主机名列表 | 前期踩点、钓鱼目标收集 |
| Recon-ng | 模块化API(Shodan、VirusTotal等) | 数据库记录、CSV报告 | 自动化批量侦察、流程标准化 |
4.2 安装与配置:从零搭建工具链
推荐在Kali Linux或Ubuntu 22.04+环境中安装。以下命令适用于Debian系系统,macOS用户需通过Homebrew调整。
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装Maltego(社区版需官网下载,Kali自带CE版)
sudo apt install maltego -y
# 安装Shodan CLI
pip3 install shodan
# 配置(需在shodan.io注册免费账号)
shodan init YOUR_
# 安装Censys CLI
pip3 install censys
censys config # 交互式输入API ID与Secret
# 安装theHarvester(Kali自带,或从GitHub拉取最新版)
git clone https://github.com/laramies/theHarvester.git
cd theHarvester
pip3 install -r requirements.txt
# 安装Recon-ng
sudo apt install recon-ng -y
# 或通过git安装
git clone https://github.com/lanmaster53/recon-ng.git
cd recon-ng
pip3 install -r REQUIREMENTS
配置要点:所有工具均需才能发挥完整功能。Shodan免费版每月100次查询额度,Censys免费版有IP限制,Maltego社区版Transform数量受限。建议在~/.config/目录下统一管理配置文件,并设置环境变量以避免明文密钥泄露。
4.3 操作流程:五步完成基础侦察
以目标域名example.com为例,演示标准操作流程。
- 域名与邮箱枚举(theHarvester):执行
python3 theHarvester.py -d example.com -b all,收集子域名与邮箱。重点关注@example.com后缀的邮箱,这些是后续钓鱼或密码喷洒的候选目标。 - 资产暴露面测绘(Shodan):使用
shodan search "ssl.cert.subject.cn:example.com"查找绑定该域名证书的IP。再通过shodan host IP查看具体端口与服务。 - 证书与协议分析(Censys):在Censys搜索页面使用
example.com检索TLS证书,确认子域与IP的对应关系。利用censys search "example.com"命令行工具导出结果。 - 实体关系构建(Maltego):新建Graph,将域名拖入画布,运行
To DNS Name、To Email Address等Transform,观察实体间的关联路径。 - 自动化整合(Recon-ng):在Recon-ng中加载
recon/domains-hosts/模块组,配置Shodan 后运行run,将结果存入SQLite数据库。
cron定时执行,持续监控目标资产变化。但需注意合规边界,仅对授权目标进行扫描。4.4 案例拆解:一次完整的子域枚举与资产发现
背景与约束:某安全团队受委托对客户acme-corp.com进行外部渗透测试,授权范围仅限该域名及其子域。团队需在24小时内完成初步资产梳理。
初始现象:客户仅提供主域名,无任何子域清单。团队从theHarvester开始,使用-b all参数查询,得到12个子域和45个邮箱。但部分子域(如dev.acme-corp.com)未出现在结果中。
关键输入与判断:将theHarvester发现的子域输入Shodan,发现dev.acme-corp.com解析到203.0.113.5,该IP开放了22、80、443端口。进一步使用Censys查询该IP的TLS证书,发现证书包含staging.acme-corp.com和admin.acme-corp.com两个额外子域。
实际操作步骤:
# 1. theHarvester枚举
python3 theHarvester.py -d acme-corp.com -b baidu,google,bing
# 2. Shodan证书搜索
shodan search "ssl.cert.subject.cn:acme-corp.com" --fields ip_str,port,org
# 3. Censys证书查询
censys search "acme-corp.com" --index-type certificates | grep "names" | sort -u
# 4. Maltego关联分析
# 将上述子域导入Maltego,运行"To IP Address"和"To Open Port"Transform
结果对比:通过工具组合,最终发现37个子域,比单一工具多出25个。其中admin.acme-corp.com暴露了Jenkins管理后台,成为后续渗透的关键入口。
风险与代价:Shodan与Censys的免费API额度有限,需合理规划查询次数。此外,部分子域可能指向CDN或云服务商,需通过IP归属判断是否在授权范围内。
复盘经验:单一工具存在盲区,theHarvester依赖搜索引擎索引,Shodan依赖扫描数据库更新频率。组合使用可显著提升覆盖率,但需注意数据去重与关联验证。
4.5 常见误区与总结复盘
误区一:过度依赖单一工具。例如仅使用theHarvester进行子域枚举,会遗漏大量未索引的资产。正确做法是交叉验证多个数据源。
误区二:忽略API配额管理。Shodan免费版每月100次查询,一次shodan search可能消耗多次配额。建议使用--limit参数控制返回结果数量。
误区三:混淆工具定位。Maltego适合关系分析,不适合大规模数据抓取;Recon-ng适合自动化流程,但模块质量参差不齐,需验证数据准确性。
误区四:忽视法律边界。即使工具是公开的,对未授权目标进行扫描仍可能违反当地法律法规。务必在授权范围内使用。