渗透测试前如何完成信息收集?
信息收集是渗透测试的基础和关键阶段,完整的信息收集能够为后续的漏洞挖掘提供方向和突破口。本文将系统梳理渗透测试前的信息收集方法和思路。
一、信息收集概述
1.1 为什么要做信息收集?
信息收集的目的是为了全面了解目标的攻击面,包括但不限于:
- 暴露面发现:找到所有可能存在的入口点
- 资产梳理:摸清目标的全部数字资产
- 弱点识别:发现配置不当、版本过时等潜在风险
- 突破口寻找:为后续渗透提供具体的攻击向量
1.2 信息收集的分类
| 类型 | 说明 | 特点 |
|---|---|---|
| 被动信息收集 | 不与目标系统直接交互 | 隐蔽性好,不会触发告警 |
| 主动信息收集 | 直接与目标系统进行交互 | 信息更全面,但可能被记录 |
二、被动信息收集
2.1 域名相关信息
Whois 查询
获取域名的注册信息,包括:
- 注册人/注册组织
- 注册邮箱、电话
- 域名注册商、DNS 服务器
- 注册时间、过期时间
常用工具/网站:
- https://www.whois365.com
- https://whois.chinaz.com
- 命令行:
whois example.com
ICP 备案查询
国内网站必须进行 ICP 备案,通过备案可以:
- 获取网站主办单位和负责人信息
- 发现同一主体下的其他网站
- 了解网站的实际运营公司
查询网站:
权重与流量分析
- https://rank.aizhan.com - 查看网站权重和流量估算
- 有助于判断目标的重要程度和投入资源
2.2 子域名收集
子域名是渗透测试中的重要目标,往往存在安全防护较弱的情况。
在线子域名收集工具
- https://phpinfo.me/domain/
- https://crt.sh - 通过 SSL 证书透明度日志查询
- https://dnsdumpster.com - 图形化 DNS 侦查工具
搜索引擎语法
Google/必应/百度搜索语法:
site:example.com
site:example.com -www # 排除主站
Fofa 语法:
domain="example.com"
host="*.example.com"
2.3 IP 信息收集
多地 Ping 测试
用于判断是否存在 CDN:
如果多地 Ping 返回不同 IP,说明目标使用了 CDN。
IP 反查
通过 IP 地址反查绑定的域名:
C 段扫描
获取目标 IP 所在的 C 段,发现同网段的其他资产:
假设目标 IP 是 192.168.1.100
C 段范围:192.168.1.0/24
2.4 敏感信息收集
Google Hacking 语法
查找后台/管理页面:
site:example.com inurl:login|admin|manage|system|cms
site:example.com intext:管理|后台|登陆|用户名|密码
查找可能存在注入的页面:
site:example.com inurl:aspx|jsp|php|asp?id=
site:example.com inurl:Show.asp?ID=
查找上传点:
site:example.com inurl:file|load|editor|upload
查找编辑器:
site:example.com inurl:ewebeditor|editor|uploadfile|eweb|edit
查找数据库/备份文件:
site:example.com filetype:mdb|asp|#|sql|zip|bak|rar
查看脚本类型:
site:example.com filetype:asp|aspx|php|jsp
迂回策略(查找 CMS 默认路径):
inurl:cms/data/templates/images/index/
Fofa 资产测绘
查找特定系统:
body="xxx系统" && org="China Education and Research Network Center"
title="后台管理" && country="CN"
host=".edu.cn" && status_code="200"
查找管理系统:
"管理系统" && org="China Education and Research Network Center"
2.5 组织架构信息
公司/子公司信息
- 官网、招聘信息(可了解技术栈)
- 子域名、关联域名
- 子公司、分支机构
移动端资产
- APP:通过应用商店搜索,反编译分析
- 小程序:微信小程序、支付宝小程序
- 公众号/服务号:可能暴露 API 接口
人员信息
- 学号、工号规律
- 邮箱格式(如
name@company.com) - 默认密码规律
- 身份证号(社会工程学)
三、主动信息收集
3.1 端口扫描
识别目标开放的服务和端口:
# Nmap 常用命令
nmap -sV -O -p- target.com
nmap -sS -A target.com
常见关注端口:
| 端口 | 服务 | 风险点 |
|---|---|---|
| 21 | FTP | 匿名登录、弱口令 |
| 22 | SSH | 弱口令、密钥泄露 |
| 80/443 | Web | 各类 Web 漏洞 |
| 3306 | MySQL | 弱口令、未授权 |
| 6379 | Redis | 未授权访问 |
| 8080/8443 | 管理后台 | 默认密码、配置不当 |
3.2 目录/文件扫描
发现隐藏目录、备份文件、敏感文件:
# 常用工具
- dirsearch: python3 dirsearch.py -u target.com
- ffuf: ffuf -w wordlist.txt -u target.com/FUZZ
- gobuster: gobuster dir -u target.com -w wordlist.txt
重点关注:
- 后台登录路径:
/admin,/manage,/login - 备份文件:
.zip,.tar.gz,.sql,.bak - 配置文件:
.env,config.php,web.config - 敏感接口:
/api/,/swagger/,/actuator/
3.3 指纹识别
识别网站使用的技术栈:
- CMS 识别:WordPress、DedeCMS、Discuz 等
- Web 框架:Spring Boot、ThinkPHP、Django 等
- 中间件:Apache、Nginx、IIS、Tomcat
- 前端框架:Vue、React、Angular
识别方法:
- Wappalyzer 浏览器插件
- 特定文件路径(如
/wp-admin) - HTTP 响应头(
X-Powered-By) - 页面特征和注释
CMS 漏洞利用: 识别出 CMS 后,可搜索历史漏洞:
- 漏洞文库:CVE、CNVD、Exploit-DB
- GitHub 搜索相关 EXP/Poc
- 使用 afrog、Nuclei 等工具批量验证
3.4 JS 文件分析
现代前端应用常在 JS 中暴露敏感信息:
- API 接口地址
- 密钥/Token(AK/SK、API Key)
- 内部域名/IP
- 未发布的功能
分析工具:
- jsFinder:提取 JS 文件中的 URL 和子域名
- LinkFinder:发现 JS 中的端点
- 浏览器开发者工具:Sources 面板分析
四、针对 EDU 目标的收集思路
4.1 信息收集方向
以高校为例,可从以下维度收集:
- 根域名:
xxx.edu.cn - 子域名:
*.xxx.edu.cn - IP 资产:IPv4、IPv6
- 移动端:APP、小程序、公众号
- PC 软件:校内专用软件
4.2 重点关注的系统
统一身份认证系统
- 登录入口:收集学号规律
- 默认密码:身份证后 6 位、学号等
- 密码找回:可能存在的逻辑漏洞
业务系统
- 缴费平台:学费、住宿费缴纳
- 教务系统:选课、成绩查询
- 图书馆系统:借阅管理
- 办公系统:OA、邮件系统
4.3 收集技巧
学号收集:
site:xxx.edu.cn 学号
site:xxx.edu.cn 身份证
账号规律:
- 账户:
xxxx+ 学号 - 密码:身份证后 6 位 或
xxxx+ 身份证后 6 位 - 学号规律:入学年份 + 专业编码 + 序号
批量挖掘语法:
site:edu.cn inurl:/payment intitle:大学缴费平台
site:xxx.edu.cn 注册|忘记密码|登录
4.4 建站公司关联
很多高校网站由外包公司开发:
- 查看网站底部"技术支持"、“网站建设"标注
- 同一建站公司可能使用相同源码
- 通过建站公司的其他项目寻找通用漏洞
五、自动化工具辅助
5.1 资产测绘工具
| 工具 | 功能 | 特点 |
|---|---|---|
| Goby | 资产测绘、漏洞扫描 | 可视化、支持主动+被动 |
| Fofa | 网络空间搜索引擎 | 语法强大、数据全面 |
| Shodan | 物联网设备搜索 | 全球视角 |
| Hunter | 企业资产搜索引擎 | 国内企业信息丰富 |
| Fofamap | Fofa API 工具 | 批量收集、联动 Nuclei |
5.2 批量扫描工具
Nuclei
# 基于模板的漏洞扫描器
nuclei -l urls.txt -t cves/
afrog
# 国产 POC 扫描工具
afrog -T urls.txt
Xray
# 被动式扫描,配合浏览器使用
xray webscan --listen 127.0.0.1:7777
5.3 信息收集流程建议
┌─────────────────────────────────────────────────────┐
│ 信息收集流程 │
├─────────────────────────────────────────────────────┤
│ 1. 确定目标范围 → 域名、IP、业务范围 │
│ ↓ │
│ 2. 被动收集 → Whois、备案、子域名、搜索引擎 │
│ ↓ │
│ 3. 主动探测 → 端口扫描、目录扫描、指纹识别 │
│ ↓ │
│ 4. 深度分析 → JS 审计、API 发现、逻辑梳理 │
│ ↓ │
│ 5. 资产梳理 → 建立资产清单、风险分级 │
└─────────────────────────────────────────────────────┘
六、常见漏洞入口点
信息收集完成后,可重点关注以下功能的漏洞挖掘:
6.1 认证相关
| 功能点 | 可能的漏洞 |
|---|---|
| 登录 | SQL 注入、弱口令、验证码绕过、返回包篡改 |
| 注册 | 任意用户注册、短信轰炸、注册覆盖 |
| 密码找回 | 任意密码重置、验证码爆破、密保问题泄露 |
6.2 业务功能
| 功能点 | 可能的漏洞 |
|---|---|
| 会员系统 | 越权访问、信息泄露、CSRF |
| 支付系统 | 金额篡改、订单重放、优惠券滥用 |
| 文件上传 | 任意文件上传、路径遍历 |
| 搜索功能 | SQL 注入、XSS、敏感信息泄露 |
七、总结与建议
7.1 信息收集的核心原则
- 全面性:不放过任何可能的入口点
- 持续性:新资产持续出现,定期复查
- 关联性:将收集到的信息关联分析
- 隐蔽性:被动收集优先,避免过早暴露
7.2 提升效率的建议
- 建立知识库:将收集到的信息结构化存储
- 工具链整合:将多个工具串联,自动化处理
- 关注边缘资产:子域名、测试环境往往防护较弱
- 重视人工分析:工具发现后,人工验证和深入挖掘
7.3 合规提醒
信息收集和渗透测试必须在授权范围内进行,遵守相关法律法规,不得对未授权目标进行扫描和攻击。
参考资源
- 漏洞平台:CVE、CNVD、Exploit-DB、Seebug
- 工具仓库:GitHub 搜索相关安全工具
- 技术社区:先知社区、T00ls、看雪论坛
信息收集是一个持续学习和积累的过程,多实战、多总结,才能不断提升信息收集的能力和效率。