渗透测试信息收集详细步骤
阶段一:目标概况与基础资产摸排
目标: 了解目标的基本信息、网络架构、关联资产,为后续深入探测打下基础。
1. 域名与主域资产收集
- 目的: 识别目标的主域名、备案信息、DNS解析记录以及注册人信息,发现关联资产。
- 具体内容: 根域名、历史域名、备案主体信息、注册人邮箱/电话。
- 操作步骤与工具:
- ICP 备案查询: 通过工信部备案官网、公安备案平台、站长之家、爱站网等查询网站备案信息,获取主办单位名称。
- DNS 记录查询: 使用 IP138、360威胁情报中心、微步在线、ViewDNS.info、SecurityTrails、IPIP工具的CDN查询等,获取A记录、CNAME记录、MX记录等,定位目标服务器IP、挖掘隐藏资产。
- Whois 查询(含邮箱反查): 通过站长之家、爱站网、腾讯云/阿里云Whois查询等获取域名注册信息(注册人、邮箱、电话)。利用福人邮箱反查、Benmi、Phonebook、Hunter等平台,通过注册邮箱反查关联域名。
- IP 反查: 利用360威胁情报中心、微步在线、IP138等平台,通过已知IP反查其关联的域名和资产,还原目标网络结构。
2. 子域名资产收集
- 目的: 发现目标的所有子域名,包括测试、开发、灰度、管理等可能存在弱点的子域。
- 具体内容: 三级、四级、五级子域、测试/开发/灰度域名、泛解析子域。
- 操作步骤与工具:
- DNS 域传送: 尝试利用NSlookup、dig或NMap检测DNS域传送漏洞,获取所有DNS记录。
- 公开 DNS 数据集: 查询HackerTarget、Netcraft、dudns.baidu.com等平台,获取历史解析记录和多地区解析结果。
- 搜索引擎查询: 利用Google、百度、Bing等搜索引擎,使用
site:target.com、intitle:公司名称等语法搜索子域名。思路延伸: 结合filetype:pdf、inurl:/admin/等语法挖掘敏感文档或未公开后台。同时,在GitHub、码云等代码托管平台搜索目标公司名称或域名,可能发现泄露的API密钥、数据库配置、源码等。 - 网络空间搜索引擎: 使用ZoomEye、FOFA、Shodan、奇安信鹰图、360quake等,通过“域名关联”功能查找子域名及其对应的IP、端口、服务指纹。
- 子域名信息泄露(JS 文件、爬虫等):
- JS 文件泄露: 使用JSFinder、JSINFO-SCAN、SubDomainizer、Packer-Fuzze、FindSomething等工具从网站JS文件中提取URL和子域名。
- 文件泄露: 检查
crossdomain.XML、sitemap.XML、Robots.TXT等文件。 - 网络爬虫: 使用BurpSuite、AwVS等工具爬取网站页面,分析跳转链接、CSP头等信息。
- 在线子域名查询网站: 利用chaziyu.com、phpinfo.me、站长之家、t1h2ua.cn、DNSDumpster、爱站网等快速获取子域名情报。
- 子域名爆破工具: 使用Subfinder、LayerDomainFinder、subDomainsBrute、OneForAll、Sublist3r、theHarvester、ksubdomain等工具,结合子域名字典进行批量爆破。
- SSL/TLS 证书查询: 通过myssl.com、crt.sh、spyse、censys等平台查询目标域名的SSL/TLS证书,获取“主题备用名称(SAN)”字段中的子域名。
- 证书透明度: 利用crt.sh、entrust、censys、Google、spyse、Certspotter等平台,通过证书透明度日志收集子域名。
3. IP 和 C 段资产收集
- 目的: 识别目标的所有IP地址、所属网段,并探测其真实IP,发现旁站、C段存活主机。
- 具体内容: 子域解析的IP、IP归属、C段/B段存活主机、旁站、反向域名。
- 操作步骤与工具:
- 绕过 CDN 寻找真实 IP:
- 多地 ping: 通过
ping.chinaz.com、ping.aizhan.com等判断是否存在CDN。 - 证书序列号: 获取网站SSL证书的16进制序列号并转换为10进制,在FOFA中用
cert语法查询。 - nslookup 检测: 域名解析对应多个IP,大概率使用了CDN。
- 搜索引擎: 借助FOFA、Shodan等平台搜索。
- ping 不带主机名的域名: 尝试ping主域名(如
baidu.com而非www.baidu.com)。 - 国外 DNS: 使用国外DNS解析服务(如
wepcc.com、ab173.com/dns/dns_world.php)获取真实IP。 - 邮件查询: 检查网站注册时的验证邮件,可能包含服务器IP。
- 子域名: 寻找未部署CDN的子域名IP。
- DNS 历史解析记录: 通过
dnsdb.io等平台查询历史解析记录。 - HTML 页面信息匹配: 在FOFA中根据网站首页标题等信息搜索,找到对应IP。
- 多地 ping: 通过
- 网络空间搜索引擎搜集: 再次利用ZoomEye、FOFA、Shodan、奇安信鹰图、360quake等平台,直接搜索IP地址或IP段。
- IP 和 C 段资产扫描工具: 使用Nmap、Goby、ShuiZe、fscan、EHole (棱洞)、ARL 灯塔等工具进行IP和C段的批量扫描。
- 主机发现:
- 二层发现: 基于ARP协议(
arping、nmap -sn、netdiscover、scapy)。 - 三层发现: 基于IP、ICMP协议(
ping、fping、Hping3、scapy、nmap -sn)。 - 四层发现: 基于TCP、UDP协议(
scapy、nmap -PA80 –sn、hping3)。
- 二层发现: 基于ARP协议(
- 操作系统识别: 通过大小写敏感性、开放端口(如22)、TTL值、Nmap -O、xprobe2、p0f等工具识别目标操作系统。
- 常见默认设备口令: 参考附录中的常见默认设备口令列表,尝试对发现的设备进行弱口令登录。
- 绕过 CDN 寻找真实 IP:
阶段二:深入资产与漏洞探测
目标: 针对已发现的资产,进行更细致的探测,识别服务指纹、Web应用类型、目录结构、API接口和潜在的敏感信息泄露。
4. 端口与服务指纹
- 目的: 识别开放端口上的具体服务、版本信息,寻找已知漏洞。
- 具体内容: 开放端口、服务版本(Nginx/Apache/IIS/Tomcat/Redis等)、SSL证书信息、Banner、标题。
- 操作步骤与工具:
- 使用Nmap进行端口扫描和版本探测(
nmap -sV -p- target_ip)。 - 利用网络空间搜索引擎(FOFA, Shodan)的指纹识别功能。
- 分析SSL证书信息。
- 使用Nmap进行端口扫描和版本探测(
5. Web应用指纹
- 目的: 识别目标网站使用的CMS、Web框架、前端技术、WAF和CDN,为后续攻击选择合适的EXP和绕过策略。
- 具体内容: CMS(WordPress、织梦、泛微、致远)、框架(SpringBoot、Laravel、ThinkPHP)、前端(Vue/React)、JS库、WAF、CDN、服务器类型。
- 操作步骤与工具:
- 使用EHole (棱洞) 等指纹识别工具。
- 利用浏览器插件(如Wappalyzer)。
- 通过网络空间搜索引擎查询。
- 手动分析HTTP响应头、页面源码中的特征。
6. 目录与文件
- 目的: 发现后台路径、上传点、备份文件、配置文件、API文档等可能导致权限提升或敏感信息泄露的资源。
- 具体内容: 后台路径、上传点、备份文件(.swp、.bak、zip、rar)、.git/.svn泄露、配置文件、api文档、robots.txt、sitemap.xml。
- 操作步骤与工具:
- 目录扫描工具: 使用DirBuster、Gobuster、ffuf等进行目录爆破。
- Web爬虫: 使用BurpSuite、AwVS等工具深度爬取网站。
- 搜索引擎: 结合
inurl:、filetype:等语法搜索特定文件。
7. JS与API端点
- 目的: 从前端JS文件中挖掘隐藏的API接口、内网IP、密钥、调试接口等,发现未授权访问或逻辑漏洞。
- 具体内容: JS文件中隐藏的API、内网IP、密钥、调试接口、未文档化接口、GraphQL端点。
- 操作步骤与工具:
- JS文件分析工具: 再次使用JSFinder、JSINFO-SCAN等工具。
- 浏览器开发者工具 (DevTools): 手动审查JS代码、网络请求,进行动态调试。
- JS 逆向分析: 对混淆或加密的JS代码进行逆向工程,理解其逻辑,寻找敏感信息或可利用点。这包括代码反混淆、AST分析、Hook技术与动态调试、绕过反爬虫/反调试机制等。
8. 敏感信息泄露
- 目的: 寻找配置文件、日志、备份文件、API返回中直接泄露的密码、AK/SK、用户数据等。
- 具体内容: .env、config.php、debug.log、/proc/self/fd、备份数据库、接口返回手机号/身份证/订单。
- 操作步骤与工具:
- 结合目录与文件扫描、JS与API端点分析。
- 在GitHub、Gitee等代码托管平台搜索目标公司名称或域名,查找泄露的代码仓库。
- 检查网站的错误信息、日志文件。
9. 邮箱与人员信息
- 目的: 收集员工邮箱、姓名、部门、手机号等,用于社会工程学攻击、密码喷洒或钓鱼。
- 具体内容: 员工邮箱、姓名、部门、手机号、社交账号(微信、LinkedIn、GitHub)、历史泄露密码。
- 操作步骤与工具:
- 利用Whois查询到的注册人信息。
- 搜索引擎(LinkedIn、GitHub、公司官网)。
- OSINT工具(如theHarvester、Maltego)。
- 暗网/泄露数据库查询。
10. 云资产与桶
- 目的: 发现目标在云平台上的公开存储桶、云主机、云数据库等,寻找配置不当导致的泄露。
- 具体内容: AWS S3、阿里云OSS、腾讯COS、Azure Blob、GCS等公开桶、云主机、云数据库、CDN回源IP。
- 操作步骤与工具:
- 网络空间搜索引擎(FOFA、Shodan)针对云服务商的特定语法。
- 专门的云存储桶扫描工具。
- 检查CDN回源IP是否指向云主机。
11. 中间件与组件未授权/弱口令
- 目的: 识别目标使用的中间件和组件,并尝试利用其未授权访问或弱口令漏洞。
- 具体内容: Redis、MongoDB、Memcached、Docker、Kubernetes、Jenkins、Zookeeper、Dubbo、ElasticSearch等。
- 操作步骤与工具:
- 端口扫描识别服务。
- 网络空间搜索引擎针对特定中间件的查询。
- 参考附录中的常见默认设备口令列表进行尝试。
12. 其他高价值资产
- 目的: 识别VPN、邮件系统、OA、ERP、堡垒机等关键业务系统,这些系统往往是进入内网或获取高权限的突破口。
- 具体内容: VPN、邮件系统、OA、ERP、堡垒机、GitLab、Jenkins、Confluence、Jira、WebMail、phpMyAdmin、WebLogic控制台等。
- 操作步骤与工具:
- 结合子域名、IP扫描结果,识别这些系统的入口。
- 网络空间搜索引擎的特定查询。
- 尝试默认口令或已知漏洞。
阶段三:新兴与特殊资产探测
目标: 关注现代技术栈和特殊场景下的资产,这些往往是新的攻击面。
13. 新增/重点类型资产
- 目的: 针对2025年及以后可能出现的新型攻击面进行探测。
- 具体内容:
- GraphQL 接口: 大量新系统使用,极易注入+未授权。
- 内网域名泄露: JS文件中常出现
xxx.corp.xxx.com、xxx.internal等。 - Serverless 函数地址: 阿里云FC、腾讯SCF、AWS Lambda等直接暴露公网。
- 容器与 K8s 资产: Dashboard、Harbor、etcd、kubelet未授权暴增。
- AI 接口与大模型调用地址: 很多公司自研AI接口直接暴露,参数可控可RCE。
- 微信小程序/企业微信后台: 后端常复用主站数据库,漏洞影响更大。
- 钉钉/飞书审批流接口: 经常直连数据库,SQL注入+文件上传无过滤。
- 操作步骤与工具:
- 结合JS文件分析、API端点探测、网络空间搜索引擎的特定查询。
- 针对这些新型资产的特点,进行针对性的信息收集和漏洞探测。
信息收集的终极目标与哲学
“能直接或间接导致权限提升的所有信息,都要收”
包括但不限于:
- 任何可以登录的后台
- 任何可以写文件的路径
- 任何暴露的数据库/缓存服务
- 任何泄露的密码/AK/token
- 任何未授权访问的接口
- 任何能确认是测试/开发环境的资产(无CDN、无WAF、标题暴露)
信息收集的终极目标只有一句话:找到至少1个可以直接getshell或进入内网的入口。
所有收集的内容,最终都要服务于这个目标。这是一个持续、迭代的过程,需要耐心和细致。