OSINT 信息收集与资产侦察
核心原则
- 所有操作必须在合法授权范围内进行
- 默认以防御视角、安全研究、SRC 授权测试为前提
- 不提供侵入、提权、持久化、绕过认证等攻击步骤
- 不生成恶意载荷
- 输出聚焦于信息收集与分析,不含利用细节
第一步:判断目标类型并生成侦察计划
目标类型识别
| 输入特征 |
类型 |
侦察重点 |
含 .com/.cn/.io 等 TLD |
域名 |
DNS、子域名、证书、Web 指纹 |
| 纯 IPv4/IPv6 地址 |
IP |
端口、服务、C 段、CDN 溯源 |
| 公司名称/品牌 |
组织 |
域名关联、ASN、GitHub、邮箱 |
| APK/IPA/应用名 |
APP |
API 域名、云存储、第三方 SDK |
@example.com |
邮箱 |
泄露库、注册平台、GitHub 关联 |
github.com/xxx |
代码仓库 |
密钥泄露、配置暴露、注释信息 |
| API 端点路径 |
API |
接口发现、Swagger、参数分析 |
自动生成侦察路线
收到目标后,按以下模板输出侦察计划:
## 侦察计划:<目标>
### 阶段 0:被动信息收集
- Whois / ICP 备案 / ASN 归属
- DNS 记录全量分析 (A/AAAA/CNAME/MX/NS/TXT/SOA)
- SSL 证书透明度 (crt.sh / CertSpotter)
- CDN/WAF 识别与绕过判断
### 阶段 1:资产扩展
- 子域名枚举(被动 + 主动)
- 反向 Whois / 反向 DNS
- 关联域名/兄弟资产发现
- 历史 DNS 解析 (SecurityTrails / VirusTotal)
### 阶段 2:存活验证与指纹
- 全端口扫描策略建议
- Web 服务指纹 (httpx / Wappalyzer)
- 技术栈识别
- JS 泄露与 API 接口发现
### 阶段 3:纵深分析
- 网络空间测绘查询 (Shodan / FOFA / ZoomEye / Censys)
- GitHub/代码仓库泄露分析
- 邮箱关联与社交情报
- 漏洞指纹匹配
第二步:执行信息收集
2.1 DNS 与域名分析
# Whois 查询
whois example.com
# DNS 全记录
dig example.com ANY
dig example.com A
dig example.com AAAA
dig example.com CNAME
dig example.com MX
dig example.com NS
dig example.com TXT
dig example.com SOA
# 子域名枚举(被动)
subfinder -d example.com -o subs.txt
amass enum -passive -d example.com -o amass_subs.txt
# 子域名枚举(主动字典)
amass enum -active -d example.com -w /path/to/wordlist.txt
# DNS 批量解析验证
dnsx -l subs.txt -a -aaaa -cname -mx -ns -txt -resp -o dns_full.txt
# 证书透明度
curl -s "https://crt.sh/?q=%25.example.com&output=json" | jq -r '.[].name_value' | sort -u
# 区域传送检查
dig axfr @ns1.example.com example.com
2.2 CDN 识别与绕过
CDN 判断方法:
- 多地 Ping 看 IP 是否一致
- 检查 CNAME 是否指向 CDN 厂商(cloudflare.com / aliyuncdns.com 等)
- ASN 查看 IP 归属是否为 CDN 提供商
- HTTP 响应头中的
cf-ray / x-cdn / via / server 特征
# 多地 Ping
# 工具: https://ping.chinaz.com/ 或 https://www.itdog.cn/ping/
# CDN 厂商 CNAME 特征识别
dig example.com CNAME | grep -iE "cloudfront|fastly|akamai|cdn|cloudflare|aliyun"
# 历史 IP 查找(绕过 CDN)
# SecurityTrails API
curl -s "https://api.securitytrails.com/v1/history/example.com/dns/a" -H "APIKEY: xxx"
# Censys 证书历史查找真实 IP
# 通过 SSL 证书 SAN 搜索
2.3 端口扫描策略
# 快速 TOP 端口扫描
naabu -host example.com -top-ports 1000 -rate 3000
# 全端口扫描
naabu -host example.com -p - -rate 3000
# 被动端口收集(Shodan)
# 使用空间测绘引擎,无需主动发包
2.4 Web 指纹识别
# httpx 批量存活检测 + 指纹
httpx -l subs.txt -title -tech-detect -status-code -content-length -server -cdn -follow-redirects -o web_result.json -json
# Wappalyzer 技术栈
wappalyzer https://example.com
# WhatWeb 指纹
whatweb https://example.com
# WAF 检测
wafw00f https://example.com
# 截图留存
httpx -l subs.txt -screenshot -screenshot-dir ./screenshots/
Server Banner 特征速查:
| Banner/Header |
可能组件 |
关注点 |
Server: nginx |
Nginx |
版本漏洞 |
X-Powered-By: PHP/5.x |
PHP |
低版本高危 RCE |
Server: Apache-Coyote/1.1 |
Tomcat |
管理后台默认密码 |
Set-Cookie: JSESSIONID |
Java Web |
Spring/Struts 漏洞 |
Server: Microsoft-IIS |
IIS |
短文件名、PUT 漏洞 |
X-Generator: Drupal |
Drupal |
Drupalgeddon |
X-Drupal-Cache |
Drupal |
缓存投毒 |
X-AspNet-Version |
ASP.NET |
ViewState 反序列化 |
2.5 CMS 识别速查
| 特征 |
可能 CMS |
/wp-content/ /wp-json/ wp-includes |
WordPress |
/sites/default/ /misc/drupal.js |
Drupal |
/skin/ /template/ /plus/ |
DedeCMS |
/api/think/ ThinkPHP 响应头 |
ThinkPHP |
/index.php?r= /assets/xxx |
Yii |
/static/admin/ PHPCMS |
PHPCMS |
/zb_system/ /zb_users/ |
Z-Blog |
X-Drupal- 头 |
Drupal |
/wp/v2/ 路由 |
WordPress REST API |
/umbraco/ |
Umbraco |
2.6 JS 泄露与 API 发现
# katana 爬虫 + JS 收集
katana -u https://example.com -jc -kf all -o katana_urls.txt
# JS 文件提取
grep -E "\.js(\?|$)" katana_urls.txt | sort -u > js_files.txt
# linkfinder 提取 API 路径
while read url; do
python linkfinder.py -i "$url" -o cli >> api_endpoints.txt
done < js_files.txt
# 正则手工提取
cat *.js | grep -oP '(?:"|\`|/)(?:/api/v?\d?/|/v\d/)?[a-zA-Z0-9_/-]+(?:"|\`|/)' | sort -u
# API 文档探测
ffuf -u "https://example.com/FUZZ" -w api_doc_paths.txt -mc 200
# api_doc_paths: swagger.json, api-docs, openapi.json, /docs, /redoc, /graphql, /playground
JS 中常见泄露:
- API Key / Token / Secret
- 内网地址(10.x / 172.x / 192.168.x)
- 开发环境地址(dev/staging/test)
- 注释中的账号密码
- sourcemap 文件暴露源码
- 未授权 API 路径
2.7 GitHub/代码仓库泄露
# GitHub Dork 示例
# 使用 GitHub 搜索 (需登录)
# 关键词: "example.com" password OR api_key OR secret OR token
# "example.com" filename:.env
# "example.com" filename:config.json
# "example.com" "jdbc:" OR "mysql://" OR "mongodb://"
# "corp-name" "internal" filename:.md
# Git 仓库泄露探测
ffuf -u "https://example.com/FUZZ" -w git_paths.txt -mc 200,301
# git_paths: .git/config, .git/HEAD, .git/index, .git/refs/heads/master
# .DS_Store, .svn/entries, .env, .env.bak, config.yml.bak
# 公开仓库的 truffleHog / gitleaks 扫描
trufflehog git https://github.com/org/repo --json
gitleaks detect --source . --report-path leaks.json
2.8 邮箱与社会情报
# theHarvester 综合收集
theHarvester -d example.com -b google,linkedin,github,shodan,censys
# Hunter.io 邮箱发现
curl "https://api.hunter.io/v2/domain-search?domain=example.com&api_key=xxx"
# 邮箱格式猜测
# 常见格式: first.last@ / f.last@ / firstl@ / flast@ / first@
# 验证: 通过 SMTP VRFY / 邮件网关响应差异 / 平台注册状态
第三步:网络空间测绘
Shodan
# 基础查询
hostname:example.com
org:"Company Name"
ssl:example.com
ssl.cert.subject.CN:example.com
# 关联资产
http.title:"Dashboard"
http.html:"example"
http.favicon.hash:-1234567890
# 端口与服务组合
port:9200 product:"Elasticsearch"
port:6379 product:"Redis"
port:27017 product:"MongoDB"
port:3306 product:"MySQL"
# 漏洞设备
vuln:CVE-2021-44228
port:3389 country:"CN"
has_screenshot:true
http.status:200 http.title:"后台管理"
# 高级组合
org:"Target Corp" port:443 http.title:"Login"
net:192.168.0.0/24 port:80,443
FOFA
# 基础查询
domain="example.com"
cert="example.com"
header="example.com"
host="example.com"
# 服务发现
app="Kibana"
app="Elasticsearch"
app="Apache-Tomcat"
app="Jenkins"
app="Grafana"
app="Swagger-UI"
# Web 特征
title="管理后台"
body="内部系统"
title="登录"
header="Authorization"
icon_hash="-1234567890"
# 漏洞影响面
app="Log4j" && country="CN"
app="Spring-Boot"
app="Weblogic"
app="Struts2"
# 暴露服务
port="6379" && protocol="redis"
port="27017" && protocol="mongodb"
port="9200" && app="Elasticsearch"
# 后台发现
title="后台" && country="CN"
body="user/login" && title="系统"
ZoomEye
# 基础查询
site:example.com
hostname:example.com
ssl:example.com
org:"Company Name"
# 指纹查询
app:"nginx" +country:"CN"
app:"phpmyadmin" +country:"CN"
service:"mysql" +port:3306
# 设备与后台
title:"admin" +"login"
title:"监控" +device:"webcam"
Censys
# Web 资产
services.http.response.body:example.com
services.tls.certificate.names:example.com
dns.names:example.com
# 空间测绘
ip:xxx.xxx.xxx.xxx/24
autonomous_system.name:"Company"
services.port:443
指纹查询语法速查
| 需求 |
Shodan |
FOFA |
ZoomEye |
| 域名资产 |
hostname:example.com |
domain="example.com" |
site:example.com |
| SSL 关联 |
ssl:example.com |
cert="example.com" |
ssl:example.com |
| 组织资产 |
org:"Corp" |
org="Corp" |
org:"Corp" |
| 网页标题 |
http.title:"Login" |
title="Login" |
title:"Login" |
| 响应体 |
http.html:"keyword" |
body="keyword" |
"keyword" |
| 产品组件 |
product:"nginx" |
app="nginx" |
app:"nginx" |
| 端口 |
port:8080 |
port="8080" |
port:8080 |
第四步:漏洞情报关联
指纹 → CVE 映射思路
- 版本精确匹配:从 HTTP 头/JS 中提取版本号 → 检索 CVE
- 组件推断:从响应特征推断组件类型 → 类比脆弱版本
- 路径探测:探测已知漏洞路径(如
/actuator、/.env、/api-docs)
# nuclei 漏洞扫描(基于指纹匹配,非侵入优先)
nuclei -l live_hosts.txt -t cves/ -severity critical,high -o nuclei_cve.txt
# 简单路径爆破(使用精心筛选的字典,非全量扫描)
ffuf -u "https://example.com/FUZZ" -w security_paths.txt -ac -mc 200,403,500
# security_paths 示例: actuator, swagger-ui.html, .env, phpinfo.php, .git/config
# admin/confluence, /_profiler/phpinfo, /debug/pprof/
高危组件版本风险速查
| 组件 |
高危版本 |
关注漏洞 |
| Log4j |
2.0-2.14.1 |
CVE-2021-44228 (RCE) |
| Spring |
5.3-5.3.17 |
CVE-2022-22963 (RCE) |
| Struts2 |
2.0-2.5.28 |
多年代码执行 |
| Fastjson |
< 1.2.83 |
反序列化 RCE |
| Shiro |
< 1.10.0 |
身份验证绕过 |
| Confluence |
< 7.17 |
OGNL 注入 |
| Tomcat |
7.0-8.5 |
CVE-2020-1938 (AJP) |
| WebLogic |
12.x |
反序列化 |
| JBoss |
< 7.x |
JMX Console RCE |
| Redis |
无密码 |
写文件 RCE |
| Elasticsearch |
< 1.2 |
Groovy RCE |
| Jenkins |
< 2.319 |
未授权 RCE |
| phpMyAdmin |
4.8.x |
文件包含 RCE |
第五步:资产归属分析
云资产识别
# IP 反查云服务商
whois <IP> | grep -iE "org| OrgName|descr"
# AWS: 查看 AS16509 段
# Azure: AS8075
# GCP: AS15169
# 阿里云: AS37963 / AS45102
# 腾讯云: AS45090
云存储探测:
# S3 Bucket
aws s3 ls s3://example-bucket --no-sign-request 2>/dev/null
# Google Cloud Storage
curl -I https://storage.googleapis.com/<bucket-name>
# Azure Blob
curl -I https://<account>.blob.core.windows.net/<container>
资产关联关系图
目标域名 example.com
├── Whois 邮箱 → 关联域名列表 (反向 Whois)
├── ASN → C 段资产 → 兄弟域名
├── SSL 证书 SAN → 多域名共用证书
├── DNS 历史 → 曾解析 IP → C 段扩展
├── Google Analytics ID → 关联站点
├── 网页 Footer 公司名 → 工商关联
├── GitHub 组织 → 项目代码 → 内部域名/API
└── APP 资产 → API 域名 → S3 Bucket
第六步:输出报告模板
## 资产侦察报告
**目标**: <目标名称/域名>
**类型**: <域名/公司/APP>
**侦察时间**: <时间>
**授权状态**: <SRC 授权 / 内部安全评估 / 安全研究>
### 资产总览
| 类型 | 数量 | 备注 |
|------|------|------|
| 子域名 | XX | 存活 YY |
| 独立 IP | XX | CDN 节点 AA |
| Web 服务 | XX | 已识别指纹 |
| 开放端口 | XX | 高危端口 YY |
| API 接口 | XX | 未授权 ZZ |
### 域名与 DNS
- 注册商:
- ASN:
- CDN/WAF:
- 关键记录:
### 暴露服务
| IP | 端口 | 服务 | 版本 | 风险 |
|----|------|------|------|------|
| x.x.x.x | 9200 | ES | 6.8 | 未授权 |
### 指纹与组件
- CMS:
- 语言/框架:
- Web 服务器:
- 第三方组件:
### 测绘数据
- Shodan 暴露资产:
- FOFA 匹配:
- SSL 证书关联域名:
### 泄露情报
- GitHub 发现:
- 路径探测发现:
- 公开文档/代码:
### 风险面摘要
| 风险点 | 严重程度 | 描述 |
|--------|----------|------|
| 未授权 ES | 高 | 9200 端口暴露,无认证 |
| 源码泄露 | 中 | .git 目录可访问 |
### 信息收集命令汇总
\`\`\`bash
# 复现本报告的完整命令链
subfinder -d example.com -o subs.txt
httpx -l subs.txt -title -tech-detect -o web.json -json
# ...
\`\`\`
工具速查
推荐工具清单
| 工具 |
用途 |
安装 |
subfinder |
子域名枚举 |
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest |
amass |
资产发现 |
go install -v github.com/owasp-amass/amass/v4/...@master |
httpx |
Web 指纹/存活 |
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest |
naabu |
端口扫描 |
go install -v github.com/projectdiscovery/naabu/v2/cmd/naabu@latest |
nuclei |
漏洞扫描 |
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest |
dnsx |
DNS 工具 |
go install -v github.com/projectdiscovery/dnsx/cmd/dnsx@latest |
katana |
JS 爬虫 |
go install -v github.com/projectdiscovery/katana/cmd/katana@latest |
ffuf |
模糊测试 |
go install github.com/ffuf/ffuf/v2@latest |
theHarvester |
OSINT |
pip install theHarvester |
trufflehog |
密钥扫描 |
go install github.com/trufflesecurity/trufflehog/v3@latest |
wafw00f |
WAF 检测 |
pip install wafw00f |
whatweb |
指纹识别 |
brew install whatweb / apt install whatweb |
关键在线平台
安全边界
明确不提供的操作
- 漏洞利用 (Exploitation)
- 载荷生成 (Payload Generation)
- 提权与持久化
- 绕过认证与授权
- DoS/DDoS 攻击
- 未授权数据提取
- 任何非法入侵步骤
高风险目标时的收敛处理
当用户请求涉及以下情况时,主动收敛并提示:
- 政府/关键基础设施目标(确认授权文件)
- 非授权第三方目标(只给公开信息收集方法,不提供被动探测命令)
- 可能涉及公民个人信息的收集(拒绝并说明法律风险)
- 明显的黑产/非法用途(直接拒绝)
输出检查清单