万字长文窥探信息收集真正的艺术
字数 2640 2025-08-20 18:17:07
信息收集的艺术:全面渗透测试资产收集指南
前言
信息收集远不只是简单地查找子域名、扫描目录和端口。本文将系统性地介绍信息收集的完整流程和方法,帮助您掌握信息收集的真正艺术。
信息收集流程概述
- 自动化信息收集阶段 - 使用工具自动进行初步信息收集
- 资产发现阶段 - 收集组织信息、主域名和子域名
- 资产扩展阶段 - 收集端口和C段信息
- 资产梳理阶段 - 进行存活检测和指纹识别
- 自动化扫描阶段 - 使用漏洞扫描器测试
- 重点目标针对收集阶段 - 对关键资产进行深度信息收集
[0] 自动化信息收集阶段
在手工信息收集前,建议使用自动化工具快速进行初步信息收集,与手工收集相互补充。
推荐工具:
- ARL(尤其推荐其文件泄露功能)
- 灯塔(需使用第三方备用库)
[1] 资产发现阶段
组织结构收集
适用对象:大型集团、企业、政党单位、高校等结构复杂的组织
作用:
- 全面收集所有子公司,扩大攻击面
- 采用自下而上或自上而下的攻击策略
- 发现内网横向移动的机会
收集方法:
-
股权收集法:
- 使用爱企查查看股权穿透图
- 记录股权占比>50%的子公司名称(保存为company.txt)
-
关键人物收集法:
- 从法人代表入手查找关联公司
- 从高管入手查找关联公司
主域名收集
使用组织结构收集得到的company.txt,进一步收集各公司的主域名。
方法:
-
ICP备案查询:
- 官网查询接口(适合子公司少的情况)
- 第三方程序查询接口(适合大型目标,如icpsearch工具)
-
小蓝本查询:
- 通过知识产权板块获取ICP备案信息
结果处理:
使用正则表达式提取域名:([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}
子域名收集
1. 网络测绘引擎(以FOFA为例)
基本语法:
domain="主域名" || cert="公用名" || cert="组织名1" || cert="组织名2"
技巧:
- 同时使用domain和cert查询语法可发现更多资产
- 手动查看HTTPS站点证书,获取更多公用名和组织名
- 开启"all"模式查询历史记录(需会员)
- 批量处理domain.txt文件进行查询
2. 英文证书查询(crt.sh)
- 使用q模式(精准)或o模式(模糊)查询
- 批量提取公用名(通常是域名或子域名)
3. OneForAll工具
- 集成多种子域名收集方法
- 需配置各种API以发挥最大功效
格式处理:
使用脚本将混乱的URL格式分离为:
- subdomain.txt - 纯子域名
- url.txt - 带协议头的URL
- ip.txt - 纯IP地址
[2] 资产扩展阶段
端口收集
对收集到的ip.txt进行全端口扫描:
fscan.exe -hf ip.txt -t 3000 -p 1-65535 -num 100 -np -o result.txt
结果处理:
使用fscanOutput.py脚本对扫描结果进行分类整理。
C段收集
适用场景:大型目标通常购买整个C段IP
收集方法:
- 使用Eeyes工具根据子域名整理C段:
Eeyes -l subdomain.txt - 手动选择存活IP多的C段保存为c.txt
- 合并ip.txt和c.txt为ip_c.txt
- 进行全端口扫描
HOST碰撞
步骤:
- 批量解析subdomain.txt,记录无法解析的域名
- 使用这些域名与ip_c.txt进行HOST碰撞
工具推荐:
- HostCollision
- Hosts_scan
[3] 资产梳理阶段
测活+指纹识别
步骤:
- 合并url.txt和带协议头的ip地址为web.txt
- 去重处理
- 使用指纹识别工具同时进行存活检测
推荐工具:
- TideFinger:
TideFinger -uf web.txt -nobr -nopoc - EHole:
ehole.exe finger -l web.txt
[4] 自动化扫描阶段
在深入信息收集前,可先批量运行漏洞扫描器:
推荐工具:
- Nuclei:
nuclei.exe -list test.txt -o output.txt - Afrog:
afrog -T urls.txt - AWVS:使用Python脚本批量添加目标
- Xray:
# 批量扫描 python xray.py -r test.txt # 爬取单个目标 xray.exe webscan --basic-crawler http://xxxx.com/ --html-output output-a.html # 与Burp联动 xray.exe webscan --listen 127.0.0.1:7777 --html-output output-b.html - Goby
[5] 重点目标针对收集阶段
架构信息收集
-
反向代理
- 识别:Wappalyzer浏览器插件
-
负载均衡
- 识别:lbd工具(Kali自带)
-
站库分离
-
CDN
- 识别:多地ping测试(17ce)
- 绕过方法:
- 全球ping(ipip.net)
- 从子域名入手
- 查找历史DNS记录(IP138)
- 使用接口查询(Get-site-ip)
- 使用反向邮件
- FuckCDN工具
- 利用SSRF漏洞
- phpinfo.php探针
-
WAF
- 识别:wafw00f工具或视觉分析
源码信息收集
-
CMS识别
- 工具:云悉、360观星
-
闭源售卖源码查找
-
源码泄露
- index of目录遍历
- 工具:
- GitHack
- SvnHack
- ds_store_exp
网站基本信息收集
- 语言:Wappalyzer
- 数据库:Wappalyzer或FOFA
- Web容器:Wappalyzer或FOFA
- 操作系统:大小写测试或Ping TTL值分析
网站深度信息收集
-
目录扫描
- 工具:
- FUFF(推荐)
- 7kbscan-WebPathBrute
- dirsearch(Kali自带)
- 工具:
-
JS接口收集
- 使用浏览器控制台脚本下载所有JS文件
- 提取JS中的API接口
- 工具:
- JSfinder
- packer-fuzzer
- URLfinder
-
快照:网站时光机(Wayback Machine)
-
插件信息:Wappalyzer
-
第三方接口信息:Wappalyzer
-
旁站
-
端口服务
- 工具:
- nmap(Kali自带)
- railgun(推荐,速度快)
- 工具:
网盘信息收集
-
GitHub搜索
- 语法示例:
in:name test in:description test stars:>3000 test site:Github.com smtp site:Github.com password - 监控工具:云绘监控
- 语法示例:
-
其他网盘:GitLab、码云、语雀等
-
工具:
- gitdorks_go
- GitDorker
社工信息收集
主要依赖人工查找,关注:
- 域名服务商
- 服务器供应商
- 网站管理员
- 开发人员信息
Google语法示例:
site:baidu.com ext:php inurl:?
site:openbugbounty.org inurl:reports intext:"baidu.com"
site:"baidu.com" ext:log | ext:txt | ext:conf
inurl:url= | inurl:return= | inurl:next= site:baidu.com
小程序信息收集
- 使用安卓模拟器或Burp Suite抓包分析
- 反编译源码查找泄露信息
APP信息收集
外在分析:
- 抓包分析Web资产
内在分析:
- 查壳工具(apkscan)
- 安卓信息提取器(AppInfoScanner)
- 反编译工具(APKEditor)
总结
信息收集是一个灵活的过程,关键在于学习如何层层深入收集目标信息。本文重点介绍了资产发现与扩展的方法,对重点资产的深度收集也有简要提及。掌握这些技巧,您将能够在渗透测试中更有效地发现攻击面。