信息收集方法论:从域名到资产的完整链路

渗透测试之信息收集:完整资产探测链路

面向安全入门者,梳理渗透测试第一阶段:信息收集完整流程,讲解子域名枚举、IP与C段测绘、端口服务识别、Web指纹识别、目录扫描五大核心环节,讲清原理、工作逻辑、实操要点,并配套开源工具组合,帮助建立标准化资产收集思维。

前言

信息收集是渗透测试的起点,也是决定后续测试上限的关键环节。拿到的资产越多,攻击面就越大。很多新手直接上来就扫漏洞、打payload,忽略信息收集,往往会漏掉大量高危入口。信息收集分为被动收集(不触碰目标,公开互联网拿数据)、主动收集(直接对目标发送数据包探测)两大类型。 本文梳理一套可落地的完整资产收集链路:子域名枚举 → IP与C段测绘 → 端口&服务识别 → Web指纹识别 → 目录爆破扫描,同时给出开源工具栈,适合新手搭建自己的信息收集工作流。

学习目标

  1. 分清被动信息收集与主动信息收集的区别,理解各自风险
  2. 掌握每一环资产收集的作用、探测思路、可获取什么数据
  3. 熟悉主流开源工具,清楚每个工具适合干什么
  4. 建立完整资产清单输出意识,为后续漏洞探测做准备
  5. 建立合规意识:主动探测需要授权,禁止对公网未授权目标扫描

一、子域名枚举

主站防护往往很强,但子域名经常存在防护薄弱、遗留旧系统、测试站点,是渗透中非常重要的突破口。

实现思路

两类主流手段:证书透明度CT日志查询、DNS字典爆破,同时结合公开数据源。

  1. 证书透明度(CT日志) 网站申请HTTPS证书时会把域名记录公开存入CT日志数据库。不需要向目标发包,属于被动收集,不会触发目标侧安全告警,能够拿到大量真实存在的子域名。
  2. DNS爆破 使用子域名字典,批量向DNS服务器解析,判断返回记录是否存在,属于半主动方式。优点可以发现没有收录在CT日志里的内部、测试子域名;缺点字典质量直接决定结果,容易产生DNS请求量。

能拿到什么

子域名列表,例如 shturl.cc/i3u、shturl.cc/D8、shturl.cc/S、shturl.cc/8,很多后台、测试环境都藏在子域名。

开源工具组合

  • subfinder:CT日志、公开DNS数据集综合查询,被动收集首选,速度快
  • amass:OWASP出品,融合CT、DNS爆破、第三方数据源,结果全面
  • dnsbrute:DNS爆破工具,自定义字典爆破子域

实操小提示:优先跑subfinder/amass做被动收集,再补充DNS爆破,减少无效发包。


二、IP与C段测绘

拿到子域名之后,需要解析域名对应真实IP,进一步做网段测绘。

实现思路

  1. 域名DNS解析,获取每个子域名对应的公网IP;注意CDN场景:很多域名返回的是CDN节点IP,不是源站真实IP,需要区分。
  2. C段测绘:拿到目标真实IP之后,对同一C网段(如103.10.10.0/24)做存活主机探测。 同一C段下的机器大概率属于同一企业资产,发现同网段其他业务服务器,实现资产范围拓展,很多时候主站打不动,但是C段内其他机器存在漏洞。

注意:C段扫描属于大量主动发包,未授权严禁执行。

能拿到什么

域名对应IP、区分CDN/源站IP、网段内存活主机列表,拓展目标整体资产边界。

开源工具组合

  • massdns:高性能DNS解析,批量解析大量域名
  • naabu:快速主机存活探测
  • ipinfo-cli:查询IP归属、ASN信息,辅助判断网段归属

小知识点:ASN编号,可以通过ASN拿到该企业名下全部IP段,是大范围资产测绘的重要依据。


三、端口与服务识别

拿到存活IP之后,下一步就是扫描开放端口,识别端口上运行什么服务。 端口代表对外暴露的服务:80/443 Web服务、22 SSH远程登录、3306 MySQL数据库、3389 Windows远程桌面等。开放多余端口,就多一份攻击面。

实现思路

  1. 端口扫描:探测目标哪些端口对外开放(TCP/UDP)
  2. 服务版本识别:不仅看端口,还要识别端口上运行的服务名称、版本号。 知道版本号之后,可以去漏洞库检索该版本是否存在已知CVE漏洞。

区分:端口只是门,服务才是门后面跑的程序。比如80端口不一定是Nginx,也可能是Apache。

能拿到什么

开放端口列表、服务名称、版本号,例如:22/tcp open ssh OpenSSH 8.2,为后续漏洞检索提供依据。

开源工具组合

  • nmap:行业标准端口扫描&服务识别工具,支持版本探测、脚本扫描
  • naabu:高速端口扫描,适合大批量IP快速扫端口,之后交给nmap做版本识别

实操建议:大批量IP先用naabu快速筛开放端口,再对存活端口使用nmap -sV做服务版本探测,兼顾速度与准确度。


四、Web指纹识别

对80、443等Web服务端口,进行Web指纹识别。 指纹就是网站的特征:Web框架、中间件、CMS、脚本语言、服务器版本、插件。

实现思路

通过HTTP响应头、页面特征字符串、特定文件路径、cookie字段来识别:

  • 中间件:Nginx、Apache、Tomcat、IIS
  • CMS系统:Discuz、WordPress、DedeCMS
  • 开发框架:SpringBoot、ThinkPHP、Django
  • 前端组件:JQuery版本、各类JS框架

识别出指纹之后,就可以定向查找对应框架的历史漏洞,比如ThinkPHP反序列化、SpringBoot漏洞。

能拿到什么

中间件、CMS、框架版本,快速定位已知漏洞库,缩小后续漏洞测试范围。

开源工具组合

  • whatweb:老牌Web指纹识别
  • httpx:快速请求探测,同时输出指纹、状态码、标题,非常适合批量域名
  • wappalyzer(命令行版):强大的站点技术栈识别

工作流:子域名全部丢给httpx,批量获取状态码、title、指纹,过滤出可访问的Web站点。


五、目录扫描(路径爆破)

确认可访问Web站点后,进行目录与敏感文件爆破。 网站很多后台地址、备份文件、接口文档不会在首页展示,需要字典爆破发现。

实现思路

使用字典批量请求URL路径,根据HTTP状态码判断路径是否存在。 常见目标:后台管理目录 /admin、/manage;备份文件 bak.sql、www.zip;接口文档 /swagger-ui.html;配置文件、源码泄露点。

注意:目录扫描大量发包,容易触发WAF拦截,需要控制线程速率。

能拿到什么

未公开后台路径、备份文件、接口文档、泄露配置文件等敏感路径。

开源工具组合

  • gobuster:Go语言开发,速度快,目录爆破主流工具
  • dirsearch:Python编写,中文社区使用广泛,支持代理、延时,适配WAF环境
  • ffuf:强大模糊测试工具,不仅目录爆破,也支持参数fuzz

提示:字典质量很关键,建议使用综合大字典,同时针对识别出来的CMS/框架使用专属字典。


完整链路串联(实操工作流)

  1. 子域名枚举:subfinder + amass → 获取全部子域名
  2. 批量HTTP探测:httpx → 过滤出可访问Web站点,获取状态码、标题、初步指纹
  3. DNS解析,提取IP,区分CDN与真实源站IP
  4. 存活IP:naabu扫端口 → nmap做服务版本识别
  5. Web指纹二次确认:whatweb/wappalyzer,识别CMS、中间件、框架
  6. 目录爆破:gobuster / dirsearch 爆破敏感目录与备份文件
  7. 输出资产清单:域名、IP、端口、服务、指纹、发现路径,作为后续漏洞测试输入

合规提醒(新手必看)

  1. 被动收集相对安全,主动扫描(端口扫描、目录爆破、DNS爆破)必须拿到目标书面授权。未经许可对互联网资产扫描探测,违反《网络安全法》,需要承担法律责任。
  2. 练习请在本地靶场:DVWA、Pikachu、Vulhub等环境练习整套信息收集流程。
  3. 扫描过程控制速率,避免大流量DoS,不影响业务正常运行。

小结

信息收集的本质:尽可能挖掘目标全部暴露资产,找到潜在薄弱攻击面。 不要只依赖工具,工具只是辅助;要学会看懂输出结果,区分CDN、伪资产、无效域名,筛选真实有效的测试目标。信息收集输出的资产清单,是后面漏洞探测、漏洞利用的基础。

如果你需要,我可以继续往下写:信息收集之后,如何基于资产清单开展漏洞检测,或者整理一份Markdown工具速查表。

本文要点

  • 子域名与 DNS 信息收集
  • 端口与服务指纹识别
  • Web 目录与敏感文件探测

📌 本文为技术科普内容,仅用于学习研究。

⚠️ 合规声明: 本文内容仅用于网络安全合规学习、科研与授权测试用途。严禁用于任何未授权行为,违者自行承担全部法律责任。
滚动至顶部