前言:大多数现在挖洞都是找边缘资产,不是打没名气的,而是找有名气的边缘服务,于是就需要信息搜集,所以现在基础固然重要,但是狗运也很重要
⚠️ 法律红线:任何攻击都必须在取得书面授权的情况下进行。未经授权对目标进行扫描、爆破、社工均涉嫌违反《中华人民共和国网络安全法》《刑法》第285/286条。本文仅供学习交流。
在不触发(或少触发)目标告警的前提下,尽可能多地获取目标的资产、架构、人员、技术栈等信息。
| 类型 | 定义 | 特点 | 举例 |
|---|---|---|---|
| 被动信息收集 | 不与目标直接交互 | 不留痕迹、隐蔽 | 搜索引擎、Whois、备案查询、GitHub泄露 |
| 主动信息收集 | 直接与目标交互 | 可能留下日志 | 端口扫描、目录爆破、子域名枚举 |
拿到一个目标(比如"天津工业大学"),不要直接对着官网猛干。你要做的是把目标拆成一棵资产树:
目标单位 ├── 域名资产 │ ├── www.example.com(官网) │ ├── api.example.com(接口BaseURL) │ ├── admin.example.com(后台) │ ├── test.example.com(测试环境) │ └── oa.example.com(办公系统) ├── IP资产 │ ├── 服务器IP │ ├── 云主机IP │ └── 历史IP(迁走了但旧服务还在) ├── Web资产 │ ├── 官网、后台、API │ ├── 测试环境、开发环境 │ └── 文档站、Swagger、Knife4j ├── 移动端资产 │ ├── Android APP │ ├── iOS APP │ └── H5页面 ├── 微信生态 │ ├── 小程序 │ ├── 公众号 │ └── 关联H5 └── 关联资产 ├── 子公司 ├── 品牌独立站点 ├── 产品独立域名 └── 供应商/合作方系统
核心问题:这个企业到底有哪些互联网资产?
拿到目标名称后,先别急着查域名,先把企业摸清楚:
常用平台:
💡 技巧:子公司也是目标!红队项目中,只要属于该企业的信息系统,全在授权范围内。
ICP备案查询(国内网站必须有备案):
| 平台 | 地址 | 用途 |
|---|---|---|
| 工信部备案查询 | beian.miit.gov.cn | 官方,最权威 |
| ICP备案查询站 | icp.aizhan.com / beian.miit.gov.cn | 查备案主体、备案号 |
| 站长工具 | tool.chinaz.com | 查备案域名反查 |
查什么:
Whois查询(查域名注册信息):
bashwhois example.com
确定根域名后(如 example.com),开始扩展子域名。
收集方法:
| 方法 | 工具/平台 | 说明 |
|---|---|---|
| 证书透明度日志 | crt.sh / censys | SSL证书会暴露子域名 |
| 搜索引擎 | Google / Bing | site:example.com |
| DNS枚举 | dig / dnsenum | 查A、CNAME、MX记录 |
| 爆破 | OneForAll / Subfinder / ksubdomain | 字典爆破子域名 |
| 聚合工具 | Amass(OWASP) | 被动+主动,子域名枚举王者 |
推荐工具命令:
bash# OneForAll 被动+主动收集
python oneforall.py --target example.com run
# Subfinder 被动收集(快)
subfinder -d example.com -o subs.txt
# Amass 深度枚举
amass enum -passive -d example.com
amass enum -active -d example.com # 主动,会发DNS请求
# 本地DNS解析验证
cat subs.txt | dnsx -a -resp-only
对子域名整理后,查DNS记录,重点关注:
| 记录类型 | 含义 | 信息价值 |
|---|---|---|
| A | IPv4地址 | 直接得到IP |
| AAAA | IPv6地址 | 有些CDN没配IPv6,可能暴露真实IP |
| CNAME | 别名 | 识别CDN、云厂商、SaaS服务 |
| MX | 邮件服务器 | 定位邮件系统,可能和Web同IP |
| NS | DNS服务器 | 查权威DNS,尝试区域传输 |
| TXT | 文本记录 | 常包含验证信息(如SPF、DKIM) |
常用命令:
bash# 查A记录
dig example.com A
# 查MX记录
dig +short mx example.com
# 查NS记录
dig +short ns example.com
# 尝试DNS区域传输(老漏洞,但偶尔能成功)
dig @ns1.example.com example.com axfr
DNS路径分析:
域名 → CNAME → CDN/云服务 → 最终服务器
通过CNAME可以识别使用了哪家CDN(如 *.w.kunlunsl.com = 阿里云CDN)。
空间测绘引擎是信息收集的"大杀器",它们全天候扫描全网,你只需查"档案"。
| 平台 | 地址 | 特点 | 会员 |
|---|---|---|---|
| FOFA | fofa.info | 国内最强,语法丰富,中文友好 | 有 |
| Shodan | shodan.io | 全球设备搜索,IoT/工控强 | 有 |
| Hunter(鹰图) | hunter.qianxin.com | 奇安信出品,国内资产全 | 有 |
| Quake | quake.360.net | 360出品,漏洞关联好 | 有 |
| ZoomEye | zoomeye.org | 知道创宇,老牌 | 有 |
| Censys | censys.io | 证书/IPv6强,学术风 | 有 |
| 0.zone | 0.zone | 零零信安,企业暴露面 | 有 |
FOFA是国内使用最广泛的资产测绘引擎,掌握语法是必修课。
基础语法:
bash# 基本结构:字段="值"
# 默认AND关系,OR用 ||,排除用 !=
| 字段 | 说明 | 示例 |
|---|---|---|
ip | 指定IP | ip="8.8.8.8" |
port | 指定端口 | port="8080" |
domain | 根域名相关 | domain="example.com" |
host | 主机名 | host="admin.example.com" |
title | 网页标题 | title="后台管理" |
header | HTTP头 | header="nginx" |
body | 网页正文 | body="登录" |
protocol | 协议 | protocol="http" |
cert | SSL证书 | cert="example.com" |
app | 应用/组件 | app="Apache" |
os | 操作系统 | os="Windows" |
country | 国家 | country="CN" |
city | 城市 | city="Beijing" |
status_code | 状态码 | status_code="200" |
icp | 备案号 | icp="京ICP证030173号" |
icon_hash | 网站图标哈希 | icon_hash="xxxx" |
js_name | JS文件名 | js_name="js/jquery.js" |
js_md5 | JS文件MD5 | js_md5="82ac3f14327a8b7ba49baa208d4eaa15" |
cname | CNAME记录 | cname="ap21.inst.siteforce.com" |
cloud_name | 云服务 | cloud_name="Aliyundun" |
组合语法示例:
bash# 查某域名下所有Web资产
domain="example.com" && (protocol="http" || protocol="https")
# 查某教育网的管理后台
(title="后台" || title="管理") && org="China Education and Research Network Center"
# 查某高校ThinkPHP资产
"X-Powered-By:ThinkPHP" && host="edu.cn"
# 查某企业暴露的Swagger接口
body="swagger-ui" && domain="example.com"
# 查特定备案号的所有资产
icp="京ICP证xxxx号"
# 查特定证书的所有IP(绕过CDN神器)
cert="example.com" && country="CN"
高级技巧:
== 完全匹配,= 模糊匹配title="北京" 搜标题含北京,title=="北京" 搜标题完全等于北京&& is_honeypot=false(需高级会员)bash# 基础
ip:8.8.8.8
port:80
hostname:example.com
title:"admin"
header:"nginx"
ssl:"example.com" # SSL证书
org:"Google" # 组织
country:"CN"
city:"Beijing"
os:"Windows"
# 组合
hostname:example.com port:443 ssl:true
bash# 域名搜索
domain="example.com"
# 标题
title="后台"
# 组合
domain="example.com" && title="登录" && status_code="200"
bash# 基础教育资产匹配
((title="职业技术" || title="小学" || title="初中" || title="高中" || title="附属中学" || title="一中" || title="二中" || title="中学" || title="中等专业学校") && country="CN" && region!="HK")
# 含CERNET的更全匹配
((title="大学" || title="职业技术" || title="初中" || title="学校" || title="高中" || title="中学" || title="中等专业学校" || org="China Education and Research Network Center") && country="CN" && region!="HK")
# 某高校域名资产(以浙大为例)
host="zju.edu.cn" && (protocol="http" || protocol="https")
# 教育网管理后台
host="edu.cn" && (title="后台" || title="管理")
# ThinkPHP教育网资产
"X-Powered-By:ThinkPHP" && server=="nginx" && ((title="职业技术" || title="小学" || title="初中" || title="高中" || title="附属中学" || title="一中" || title="二中" || title="中学" || title="中等专业学校") && country="CN" && region!="HK")
# 若依框架
body="ruoyi" && host="edu.cn"
# 骑士CMS
header="think_template=default" && org="China Education and Research Network Center"
bash# 搜索某站点下的敏感文件
site:example.com filetype:pdf
site:example.com filetype:docx
site:example.com filetype:xls
# 搜索后台/登录页
site:example.com inurl:admin
site:example.com inurl:login
site:example.com intitle:"后台管理"
# 搜索目录遍历
site:example.com intitle:"index of"
# 搜索配置文件
site:example.com filetype:xml
site:example.com filetype:env
site:example.com inurl:.git
# 搜索包含敏感信息的页面
site:example.com "密码"
site:example.com "access_key"
site:example.com "api_key"
# 搜索Swagger/API文档
site:example.com inurl:swagger
site:example.com inurl:api-docs
GitHub是信息泄露的"金矿",开发者常把密钥、密码、内网IP上传到公开仓库。
手动搜索语法:
bash# 搜索密码/密钥
password example.com
api_key example.com
secret example.com
access_token example.com
# 搜索特定文件
filename:config.yml example.com
filename:.env example.com
filename:db.properties example.com
# 搜索数据库连接串
"mongodb://" example.com
"mysql://" example.com
# 搜索AK/SK
"AKID" example.com # 腾讯云
"LTAI" example.com # 阿里云
自动化工具:
bash# 基础方法
nslookup www.example.com
ping www.example.com
dig +short www.example.com
# 多地Ping(判断CDN)
# 使用 itdog.cn / ping.chinaz.com / ping.pe
什么是CDN:内容分发网络,用户访问时连接到最近的缓存节点,隐藏真实服务器IP,还能防御攻击。
如何判断是否有CDN:
*.w.kunlunsl.com(阿里云)、*.cloudfront.net(AWS)等 → 有CDN找到真实IP是渗透的关键,以下是常用方法:
方法1:子域名突破
www 配了CDN,mail.example.com、oa.example.com、admin.example.com 可能直连源站方法2:国外节点访问
curl -I https://target.com --proxy http://海外IP:端口方法3:邮件系统溯源
Received 字段Received: from xxx (unknown [XXX.XXX.XXX.XXX]),这个IP就是真实IP方法4:历史DNS记录
| 平台 | 地址 |
|---|---|
| SecurityTrails | securitytrails.com |
| DNSDB | dnsdb.io |
| ViewDNS | viewdns.info |
| Netcraft | dnsbacklink.com |
方法5:空间测绘+证书查询
cert="example.com"title="目标独特标题" && body="备案号"方法6:漏洞诱导(SSRF)
nc -lvvp 8080http://YOUR_VPS:8080方法7:敏感文件泄露
phpinfo.php、info.jsp,里面可能有 _SERVER["SERVER_ADDR"].git、.svn、.env 等泄露| 收集项 | 方法 | 工具/平台 |
|---|---|---|
| 历史域名 | 查老域名、拼写变体 | viewdns.info |
| 关联域名 | 同备案、同IP、同证书 | 站长工具 |
| 网段收集 | C段、B段扫描 | fofa ip="1.1.1.0/24" |
| 云存储桶 | 公开S3/OSS | 各云厂商控制台/工具 |
| 公众号/小程序 | 微信搜一搜 | 手动 |
Nmap(神器,必学):
bash# 基础扫描
nmap -sV -O example.com
# 全端口扫描
nmap -p- -sV example.com
# 快速扫描Top 1000端口
nmap -sS -T4 example.com
# 扫描特定网段
nmap -sP 192.168.1.0/24
# 输出详细报告
nmap -A -oN result.txt example.com
Masscan(极速端口扫描):
bash# 扫描全网段80端口(非常快)
masscan -p80 192.168.1.0/24 --rate=10000
naabu(Go写的快速扫描器):
bashnaabu -host example.com -top-ports 1000
收集了一堆域名/IP后,要确认哪些能访问:
bash# httpx(推荐)
cat domains.txt | httpx -title -tech -status-code -o alive.txt
# httprobe
cat domains.txt | httprobe
# 批量截图(看页面长什么样)
cat alive.txt | aquatone
识别网站用了什么技术栈(CMS、中间件、框架、WAF):
| 工具 | 用途 |
|---|---|
| Wappalyzer | 浏览器插件,一键识别技术栈 |
| Goby | 可视化扫描,带指纹识别 |
| WhatWeb | 命令行指纹工具 |
| EHole | 红队重点资产识别 |
| TideFinger | 潮汐指纹 |
bash# WhatWeb
whatweb example.com
# EHole
./ehole -l urls.txt
常见指纹目标:
找隐藏目录、后台、敏感文件:
| 工具 | 特点 |
|---|---|
| Dirsearch | Python,字典丰富,最常用 |
| Gobuster | Go,速度快 |
| FFuf | Go,极速,支持Fuzz |
| Dirbuster | Kali自带,图形化 |
bash# Dirsearch
python dirsearch.py -u https://example.com -e php,zip,txt,bak
# Gobuster
gobuster dir -u https://example.com -w /usr/share/wordlists/dirb/common.txt
# FFuf
ffuf -u https://example.com/FUZZ -w wordlist.txt -c
重点关注路径:
/robots.txt # 爬虫规则,常暴露敏感路径 /sitemap.xml # 网站地图 /.git/ # Git源码泄露 /.svn/ # SVN泄露 /.env # 环境变量文件 /backup/ # 备份文件 /admin/ /manage/ # 后台 /swagger-ui.html # API文档 /api/ /v1/ /v2/ # API接口 /phpinfo.php # PHP信息
现代前端项目打包后,JS文件里常藏有大量接口、密钥、内网IP。
收集JS:
bash# katana 爬虫(ProjectDiscovery出品)
katana -u https://example.com -o urls.txt
# 提取JS链接
cat urls.txt | grep "\.js$" > js.txt
分析JS:
bash# SecretFinder
python SecretFinder.py -i https://example.com/app.js -o result.html
# 手动在JS中搜关键词
# api、token、key、secret、password、internal、192.168、10.0.0
API文档是漏洞挖掘的宝库:
/swagger-ui.html、/v2/api-docs、/swagger-resources/doc.html| 类型 | 工具 | 说明 |
|---|---|---|
| .git泄露 | GitHack / git-dumper | 恢复整个Git仓库 |
| .svn泄露 | svnExploit / dvcs-ripper | 恢复SVN源码 |
| .DS_Store泄露 | ds_store_exp | Mac目录文件 |
| HeapDump | heapdump_tool | JVM内存转储,含密码 |
| Swagger泄露 | swagger-exp / swagger-hack | 自动化测试接口 |
| 云存储桶泄露 | Cloud-Bucket-Leak-Detection-Tools | 六大云存储检测 |
社会工程学(Social Engineering)是利用人的心理弱点(好奇心、信任、恐惧)获取信息或访问权限的攻击方式。技术再强的系统,人也可能是短板。
目标:获取员工姓名、手机号、邮箱、职位、工号、部门等信息。
| 渠道 | 方法 |
|---|---|
| 脉脉/领英 | 查目标公司员工、职位、部门架构 |
| 小红书/微博 | 搜"目标公司+内推",员工常发带工牌照片 |
| 招聘网站 | 拉勾、BOSS直聘,看技术栈、部门信息 |
| 企业年报/招投标 | 联系人姓名、电话、邮箱 |
| GitHub | 员工提交的代码,含邮箱(git log看提交者) |
| 邮箱格式推断 | 常见格式:zhangsan@company.com、zs@company.com |
| Whois/备案 | 注册人联系邮箱 |
| 邮件头分析 | 从往来邮件中提取信息 |
查邮箱是否泄露过:
用途:
| 工具 | 功能 |
|---|---|
| Sherlock | 通过用户名在数百个社交平台搜索 |
| Maigret | Sherlock增强版,支持3000+网站,生成HTML/PDF报告 |
| theHarvester | 收集邮箱、子域名、主机名、员工姓名 |
| SpiderFoot | 自动化OSINT,200+模块,生成关系图谱 |
| Maltego | 可视化关联分析,把人、域名、IP连成图谱 |
bash# Sherlock
python sherlock username
# theHarvester
python theHarvester.py -d example.com -b all
# SpiderFoot(Web界面)
python sf.py -l 127.0.0.1:5001
常见社工手法:
钓鱼邮件常见特征:
examp1e.com 替代 example.com)拿到员工信息后,生成针对性密码字典:
bash# 中文用户名掩码生成
# 如"张三" → zhangsan、zs、zhang.san、zs123456 等
# 结合公司信息的密码规则
# 公司简称+年份:Example2024、example@2024
# 公司简称+123456:example123456
# 姓名+生日:zhangsan19950101
工具:
收集了一堆资产后,必须进行去重和分级:
bash# 基础去重
cat all_domains.txt | sort -u > unique_domains.txt
# 提取根域名去重
cat domains.txt | awk -F. '{print $(NF-1)"."$NF}' | sort -u
| 级别 | 特征 | 例子 |
|---|---|---|
| 高价值资产 | 核心业务、后台、数据库、API网关 | admin、api、oa、erp |
| 普通业务资产 | 官网、普通业务系统 | www、portal |
| 低价值资产 | 测试环境、废弃系统、静态页面 | test、dev、old |
优先攻击面:
手动收集效率低,推荐几个自动化/半自动化平台:
| 平台/工具 | 功能 | 地址 |
|---|---|---|
| Nemo | 自动化信息收集,内网+互联网资产 | github.com/hanc00l/nemo_go |
| reNgine | 自动化侦查框架 | github.com/yogeshojha/rengine |
| ScopeSentry | 网络空间测绘+漏洞扫描,分布式 | github.com/Autumn-27/ScopeSentry-Scan |
| ApolloScanner | 自动化巡航扫描,红队打点 | github.com/b0bac/ApolloScanner |
| AlliN | 综合渗透测试快速打点 | github.com/P1-Team/AlliN |
| Slack | 安全服务集成化工具平台 | github.com/qiwentaidi/Slack |
| Yakit | 单兵作战武器库,集成化 | github.com/yaklang/yakit |
| 密探(mitan) | 资产收集+子域名爆破+测绘+指纹+敏感信息 | github.com/kkbo8005/mitan |
| ShadowScan | 自动化信息泄露扫描+资产测绘+PII提取 | github.com/MY0723/ShadowScan |
| reconFTW | 集成30+工具的自动化侦察 | github.com/six2dez/reconftw |
| 工具 | 命令示例 |
|---|---|
| OneForAll | python oneforall.py --target example.com run |
| Subfinder | subfinder -d example.com |
| Amass | amass enum -passive -d example.com |
| ksubdomain | ksubdomain enum -d example.com |
| Layer | 图形化工具 |
| 工具 | 命令示例 |
|---|---|
| Nmap | nmap -sV -O -p- example.com |
| Masscan | masscan -p1-65535 1.1.1.0/24 --rate=10000 |
| naabu | naabu -host example.com |
| 工具 | 命令示例 |
|---|---|
| Dirsearch | python dirsearch.py -u https://example.com |
| Gobuster | gobuster dir -u https://example.com -w dict.txt |
| FFuf | ffuf -u https://example.com/FUZZ -w dict.txt |
| 工具 | 用途 |
|---|---|
| Wappalyzer | 浏览器插件 |
| WhatWeb | whatweb example.com |
| Goby | 图形化综合扫描 |
| EHole | 重点资产识别 |
| 工具 | 用途 |
|---|---|
| TruffleHog | GitHub密钥扫描 |
| gitleaks | Git仓库敏感信息检测 |
| GitHack | .git泄露利用 |
| SecretFinder | JS敏感信息提取 |
| Packer-Fuzzer | Webpack打包检测 |
| 工具 | 用途 |
|---|---|
| theHarvester | 邮箱/子域名收集 |
| Sherlock/Maigret | 社交媒体用户名追踪 |
| SpiderFoot | 自动化OSINT |
| Maltego | 可视化关联分析 |
以上就是信息收集的完整知识体系。建议收藏后对照实践,从一个小目标开始,逐步把每个环节跑通。记住:精准侦察是高效攻击的前提,资产发现的深度决定渗透成果的上限。 🎯