第2章_阶段1_准备

第2章 阶段1:准备

本篇定位:子域名挖掘流程的第一阶段。在开始被动发现或主动探测之前,把三件事准备好------范围、字典、环境。准备做不好,后面全白费:范围错了挖到不相关的域名,字典差了命中率极低,环境没配好会被 DNS 服务器封禁。

阅读建议:如果你已经做过子域名收集,可以直接看 2.4 阶段输出,确认准备阶段的产出是否完整。如果是新手,从头读------准备阶段决定了后续所有步骤的起点。


2.0 方法论框架

准备阶段在全局流程里的位置:

复制代码
目标根域名 ──→ 【阶段1:准备】 ──→ 阶段2:被动发现
                     │
                     ├── 范围界定 → 根域名列表
                     ├── 字典选择 → 字典文件
                     └── 环境配置 → 环境参数

准备阶段做三件事:界定范围、选字典、配环境。这三件事的产出是后续所有阶段的输入------根域名列表决定你挖什么,字典决定你怎么挖,环境配置决定你能不能持续挖。
#mermaid-svg-9lV9VUyzhnmjfq3A{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-9lV9VUyzhnmjfq3A .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-9lV9VUyzhnmjfq3A .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-9lV9VUyzhnmjfq3A .error-icon{fill:#552222;}#mermaid-svg-9lV9VUyzhnmjfq3A .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-9lV9VUyzhnmjfq3A .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-9lV9VUyzhnmjfq3A .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-9lV9VUyzhnmjfq3A .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-9lV9VUyzhnmjfq3A .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-9lV9VUyzhnmjfq3A .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-9lV9VUyzhnmjfq3A .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-9lV9VUyzhnmjfq3A .marker{fill:#333333;stroke:#333333;}#mermaid-svg-9lV9VUyzhnmjfq3A .marker.cross{stroke:#333333;}#mermaid-svg-9lV9VUyzhnmjfq3A svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-9lV9VUyzhnmjfq3A p{margin:0;}#mermaid-svg-9lV9VUyzhnmjfq3A .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-9lV9VUyzhnmjfq3A .cluster-label text{fill:#333;}#mermaid-svg-9lV9VUyzhnmjfq3A .cluster-label span{color:#333;}#mermaid-svg-9lV9VUyzhnmjfq3A .cluster-label span p{background-color:transparent;}#mermaid-svg-9lV9VUyzhnmjfq3A .label text,#mermaid-svg-9lV9VUyzhnmjfq3A span{fill:#333;color:#333;}#mermaid-svg-9lV9VUyzhnmjfq3A .node rect,#mermaid-svg-9lV9VUyzhnmjfq3A .node circle,#mermaid-svg-9lV9VUyzhnmjfq3A .node ellipse,#mermaid-svg-9lV9VUyzhnmjfq3A .node polygon,#mermaid-svg-9lV9VUyzhnmjfq3A .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-9lV9VUyzhnmjfq3A .rough-node .label text,#mermaid-svg-9lV9VUyzhnmjfq3A .node .label text,#mermaid-svg-9lV9VUyzhnmjfq3A .image-shape .label,#mermaid-svg-9lV9VUyzhnmjfq3A .icon-shape .label{text-anchor:middle;}#mermaid-svg-9lV9VUyzhnmjfq3A .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-9lV9VUyzhnmjfq3A .rough-node .label,#mermaid-svg-9lV9VUyzhnmjfq3A .node .label,#mermaid-svg-9lV9VUyzhnmjfq3A .image-shape .label,#mermaid-svg-9lV9VUyzhnmjfq3A .icon-shape .label{text-align:center;}#mermaid-svg-9lV9VUyzhnmjfq3A .node.clickable{cursor:pointer;}#mermaid-svg-9lV9VUyzhnmjfq3A .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-9lV9VUyzhnmjfq3A .arrowheadPath{fill:#333333;}#mermaid-svg-9lV9VUyzhnmjfq3A .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-9lV9VUyzhnmjfq3A .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-9lV9VUyzhnmjfq3A .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-9lV9VUyzhnmjfq3A .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-9lV9VUyzhnmjfq3A .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-9lV9VUyzhnmjfq3A .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-9lV9VUyzhnmjfq3A .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-9lV9VUyzhnmjfq3A .cluster text{fill:#333;}#mermaid-svg-9lV9VUyzhnmjfq3A .cluster span{color:#333;}#mermaid-svg-9lV9VUyzhnmjfq3A div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-9lV9VUyzhnmjfq3A .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-9lV9VUyzhnmjfq3A rect.text{fill:none;stroke-width:0;}#mermaid-svg-9lV9VUyzhnmjfq3A .icon-shape,#mermaid-svg-9lV9VUyzhnmjfq3A .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-9lV9VUyzhnmjfq3A .icon-shape p,#mermaid-svg-9lV9VUyzhnmjfq3A .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-9lV9VUyzhnmjfq3A .icon-shape .label rect,#mermaid-svg-9lV9VUyzhnmjfq3A .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-9lV9VUyzhnmjfq3A .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-9lV9VUyzhnmjfq3A .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-9lV9VUyzhnmjfq3A :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 输出
准备工作
输入
流向阶段2
流向阶段3
全局使用
目标信息

公司名、主域名
业务知识

行业、产品线
DNS 资源

解析器、带宽
范围界定
字典选择
环境配置
根域名列表
字典文件
环境配置参数
阶段2:被动发现
阶段3:主动探测

关键认知:准备不是一次性动作。进阶发现阶段(阶段4)发现新的根域名时,要回到这里重新界定范围、调整字典。流程是循环的,准备阶段每次循环都会更新。


2.1 范围界定

是什么

确定哪些根域名在挖掘范围内。一个目标公司可能拥有多个根域名------主品牌、子公司、收购来的产品、历史遗留域名------范围界定就是把它们全部找出来。

为什么

没有范围界定,会出现两类问题:挖到不相关的域名(浪费时间),或者遗漏关联域名(漏掉资产)。更严重的是超授权挖掘------挖到了不该碰的域名,涉及法律风险。

授权范围确认:在开始之前,确认哪些根域名在授权范围内、哪些不能碰、授权时效到什么时候。合规问题集中在第8章踩坑实录里讲,这里只强调一点------先确认授权,再开始挖。

怎么做

第一步:根域名确认

主域名是什么,有哪些。一个公司通常不只有一个根域名:

来源 说明 例子
直接给定 授权方提供的域名 example.com
WHOIS 查询 用注册信息反查同主体域名 查 example.com 的 registrant,反查该 registrant 下的其他域名
备案信息 国内目标查 ICP 备案,同备案主体下的域名 备案号 京ICP证XXXX号 下的所有域名
收购历史 目标公司收购了哪些产品,这些产品的域名 startup.com 被 example.com 收购,startup.com 也在范围内
关联公司 子公司、母公司、合资公司的域名 example-group.com 是集团域名,旗下各子公司域名都在范围内

第二步:资产边界

哪些子公司、哪些业务线、哪些关联域名在范围内:

边界类型 要确认的 容易漏的
子公司边界 全资子公司、控股子公司 刚收购还没整合的、持股比例低的
业务线边界 主营业务、新业务、测试环境 已下线的旧业务、内部工具域名
关联域名 集团域名、品牌域名 短链接服务、邮件服务、图片 CDN

第三步:授权范围

确认哪些能挖、哪些不能碰、授权时效到什么时候。这一步不展开,指向第8章踩坑实录的"子域名接管法律边界"。

技巧

技巧 做法 价值
WHOIS 反查 查目标域名的注册人邮箱,反查该邮箱下的其他域名 发现未公开的关联域名
备案反查 国内目标查 ICP 备案主体,反查同主体下的域名 发现同公司不同品牌的域名
收购历史排查 查目标公司的收购记录,纳入被收购方的域名 发现未整合的旧资产
LinkedIn / GitHub 查目标公司的员工,从邮箱后缀发现关联域名 发现内部使用的域名

注意事项

事项 说明
范围越界 挖到不属于目标的域名,特别是共享主机或托管服务
授权过期 授权有时效,过期后继续挖等于未授权
忘记纳入新收购子公司 公司刚收购的子公司域名容易漏,要持续跟踪
历史遗留域名 公司改名的旧域名、废弃产品的域名,可能仍解析到内部资产

2.2 字典选择

是什么

用于主动爆破的子域名候选列表。字典里每一行是一个子域名前缀(如 dev、staging、api),爆破时把这些前缀拼到根域名上(如 dev.example.com),查 DNS 看是否存在。

为什么

字典质量直接决定爆破命中率。通用字典能覆盖常见子域名,但每个目标有自己的命名习惯------用 dev 还是 develop,用 staging 还是 stage 还是 stg,用 api 还是 apiv1 还是 apiv123。只用通用字典,会漏掉目标特有的子域名。

怎么做

第一步:通用字典

通用字典收录了最常见的子域名词汇,适用于所有目标:

字典类型 内容 典型词汇
常规服务 常见的服务命名 www、mail、ftp、ssh、vpn
开发环境 常见的开发命名 dev、test、staging、qa、uat
管理后台 常见的管理命名 admin、manage、console、panel、dashboard
API 相关 常见的 API 命名 api、graphql、rest、swagger
内部服务 常见的内部命名 internal、intranet、office、oa

第二步:定制字典

基于目标业务特征和行业关键词定制:

定制维度 做法 例子
公司名 加入公司名、品牌名、产品名的变体 目标是 tencent → 加入 qq、weixin、wx
行业词 加入行业特有词汇 金融目标 → trade、pay、risk、fund
技术栈 加入目标使用的技术栈相关词 目标用 K8s → k8s、kube、prometheus、grafana
地域词 加入地域相关词 跨国目标 → us、eu、cn、jp、sg

第三步:多级字典

子域名爆破不只是爆破二级子域,还要爆破三级、四级:

层级 示例 字典策略
二级子域 dev.example.com 通用字典 + 定制字典
三级子域 api.dev.example.com 基于已发现的 dev.example.com,用小字典爆破
四级子域 v2.api.dev.example.com 通常不爆破,靠被动发现或网页爬取

技巧

技巧 做法 价值
词根提取 从被动发现阶段已发现的子域里提取词根,加入字典 命中率最高的定制字典
合并去重 多个通用字典合并后去重,减少无效查询 节省爆破时间
按目标行业定制 同行业的目标命名习惯相似,维护行业字典 跨项目复用
字典分层 高频词字典先跑、低频词字典后跑 先拿高命中、再补长尾

注意事项

事项 说明
字典过大 几万行的字典爆破耗时极长,先跑高频词再跑长尾词
字典过时 旧的通用字典收录了已不常见的词汇,定期更新
通用字典不够 只用通用字典命中率有限,必须定制
多级爆破深度 三级以上的子域不靠爆破,靠被动发现或网页爬取

2.3 环境配置

是什么

DNS 解析器、并发参数、限速策略的配置。这些参数决定了你能不能持续、稳定地跑批量 DNS 查询。

为什么

批量 DNS 解析时,如果你用单一 DNS 服务器、高并发、无限速,很快会被 DNS 服务器限速或封禁。封了之后所有查询返回空结果,你以为没这个子域,其实是被限速了------假阴性。

怎么做

第一步:DNS 解析器

配置项 推荐做法 说明
不要用系统默认 DNS 系统 DNS(如 127.0.0.1 或路由器 DNS)有缓存污染 系统 DNS 会缓存结果,影响判断
用公共 DNS 1.1.1.1(Cloudflare)、8.8.8.8(Google)、9.9.9.9(Quad9) 响应快、稳定、有 EDNS 支持
多 DNS 轮询 配置多个 DNS 服务器,轮询查询 分散压力,单个被封不影响全局
避免用目标 DNS 不要直接查目标的权威 DNS 查目标权威 DNS = 直接接触目标,有风险

第二步:并发参数

参数 参考范围 说明
并发数 50-200 太低 → 慢;太高 → 触发限速
超时 3-5 秒 太短 → 慢响应被误判为不存在;太长 → 卡住
重试次数 2-3 次 首次超时不代表不存在,重试避免假阴性

第三步:限速策略

策略 做法 说明
QPS 控制 每秒查询数控制在 10-50 公共 DNS 的限速阈值通常在 50-100 QPS
Jitter 随机延迟 每个查询之间加 50-200ms 随机延迟 避免固定间隔被识别为扫描
自适应限速 遇到超时增多时自动降速 防止被限速后继续打导致封禁

技巧

技巧 做法 价值
多 DNS 轮询 配 5-10 个公共 DNS,轮询查询 单个被封不影响全局
超时降级 首次用 UDP 查,超时后用 TCP 重查 UDP 可能被丢包,TCP 更可靠
分批查询 字典分批,每批之间暂停几秒 避免持续高并发触发防护
监控成功率 实时统计查询成功率,低于 90% 自动降速 早期发现限速,避免大面积假阴性

注意事项

事项 说明
单 DNS 被封 只用一个 DNS 服务器,被封后全部查询失败
并发过高 并发拉到几百上千,瞬间触发限速
系统 DNS 缓存污染 系统 DNS 缓存了旧结果,影响判断准确性
忽视 Jitter 固定间隔的查询模式容易被识别为扫描

关键认知:环境配置的核心不是"调到最快",而是"调到最稳"。慢一点但全程稳定跑完,比快一下然后被封要高效得多。


2.4 阶段输出

准备阶段结束时,你应该有三样东西:

输出1:根域名列表

字段 说明 示例
根域名 要挖掘的根域名 example.com
来源 这个根域名是怎么发现的 授权方给定 / WHOIS 反查 / 备案反查
关联类型 和主目标的关系 主品牌 / 子公司 / 收购产品 / 关联域名
授权状态 是否在授权范围内 已授权 / 未授权
备注 补充信息 新收购,尚未整合

输出2:字典文件

字段 说明 示例
字典名 字典标识 通用-高频 / 定制-金融 / 定制-tencent
词条数 字典行数 5000
来源 字典怎么来的 开源字典合并 / 从已发现子域提取 / 行业定制
用途 用于哪个阶段 阶段3主动爆破 / 阶段4排列扫描
优先级 先跑还是后跑 高(先跑高频词)/ 低(后跑长尾词)

输出3:环境配置参数

字段 说明 示例
DNS 服务器列表 配置了哪些 DNS 1.1.1.1, 8.8.8.8, 9.9.9.9
并发数 配置的并发 100
超时 配置的超时 3s
重试次数 配置的重试 2
QPS 限制 配置的 QPS 30
Jitter 随机延迟范围 50-200ms

2.5 与其他阶段的衔接

输出流向

复制代码
根域名列表 ──→ 阶段2:被动发现(作为挖掘的起点)
            ──→ 阶段4:进阶发现(递归时扩展范围)

字典文件 ──→ 阶段3:主动探测(爆破时使用)
          ──→ 阶段4:进阶发现(排列扫描生成变体时使用)

环境配置 ──→ 全局使用(所有阶段都依赖这些参数)

准备做不好会怎样

准备没做好 影响的后续阶段 后果
范围错了 全局 挖到不相关域名、超授权挖掘
漏了关联域名 阶段2-4 漏掉整个资产段
字典太差 阶段3 主动爆破命中率极低
字典太大 阶段3 耗时极长、被限速
DNS 被封 阶段3、5 查询返回空结果,假阴性
并发过高 阶段3、5 触发限速,大面积假阴性
没配 Jitter 阶段3 被识别为扫描,触发防护

递归时回到准备

进阶发现阶段(阶段4)发现新的根域名时,要回到这里重新做三件事:

重新做的 为什么 怎么调整
范围界定 新发现的根域名可能要纳入范围 确认关联关系,决定是否纳入
字典选择 新子域的命名习惯可能和主域不同 从新根域名已发现的子域提取词根,定制新字典
环境配置 通常不用改 如果新根域名的 DNS 服务器不同,可能要调参数

关键认知:准备阶段不是"做完就完了"。每次发现新的根域名,都要回到这里更新范围和字典。流程是循环的,准备阶段每次循环都会更贴近目标的真实全貌。


下一篇:第3章------被动发现,从零接触目标的信息收集开始。

相关推荐
花青泽4 小时前
子域名基础05_Web与网络层
web安全
花青泽4 小时前
子域名挖掘全局流程
web安全
sogw-三叶草️6 小时前
HITCON CTF 2014 — stkof · Unsafe Unlink
网络·安全·web安全·pwn·堆·二进制安全·堆漏洞
Seraphina3618 小时前
SQLI-labs(一)黑盒全流程
sql·安全·web安全
花青泽1 天前
Web安全信息收集--总
安全·web安全
花青泽1 天前
子域名基础01_地址与域名基础
web安全
花青泽1 天前
子域名基础02_DNS解析流程_简单版
web安全
花青泽1 天前
子域名基础03_DNS解析流程_详细版
web安全
剑胆凌锋2 天前
等级保护测评工程师的困境
网络·安全·web安全·网络安全·职场和发展