怎么判断解析被劫持
解析异常不一定是劫持:本地缓存里的旧值、按地域调度的内容分发结果,都会让不同来源的查询得到不同答案。判断劫持的关键是构造可交叉验证的证据链:同一域名分别向本地解析器、权威服务器与多个独立公共解析器查询,看结果是否出现异常组合,例如权威返回一个地址而本地返回完全无关的地址,或返回的地址指向明显的拦截页面。多个独立视角结论一致,才能定性。
基本信息
| 取证方式 | 分别向本地解析器、权威服务器与多个公共解析器查询同一域名 |
|---|---|
| 异常特征 | 返回地址与权威结果无关,或指向拦截与广告页面 |
| 辅助手段 | 直接请求目标并查看响应头与证书信息 |
| 三种可能 | 正常缓存、按地域的内容分发调度、真实劫持 |
| 定性原则 | 多视角交叉验证一致后才可下结论 |
典型使用场景
- 用户访问被跳转到陌生页面:确认是否为解析被改写
- 部分域名解析异常:区分是域名本身配置还是链路侧干预
- 安全事件取证:固定多视角查询结果作为证据
- 内网解析被污染:核对内网解析器与上游返回的差异
- 切换解析器后恢复正常:对比切换前后的查询结果
交叉取证
交叉取证
dig +short www.example.com @<本地解析器地址>
dig +short www.example.com @ns1.example.com # 权威对照
dig +short www.example.com @8.8.8.8 # 公共解析器对照
dig +short www.example.com @1.1.1.1 # 再换一个独立视角
curl -v --resolve www.example.com:80:<可疑地址> http://www.example.com/ 2>&1 | grep -E 'Connected|Server|Location'结果组合判读
| 组合 | 可能结论 | 下一步 |
|---|---|---|
| 本地与权威一致 | 解析正常 | 转向证书与链路排查 |
| 本地不同但多家公共解析一致 | 可能是地域调度 | 核对调度策略与节点归属 |
| 本地不同且公共解析与权威一致 | 本地解析被改写 | 检查本地解析器与转发配置 |
| 各视角结果混乱不一致 | 链路侧存在干预 | 加密解析方式对照验证 |
| 返回地址指向拦截页 | 疑似劫持或运营商提示页 | 固定证据并逐级上报 |
本地解析器与权威不一致分三种:正常缓存、内容分发按地域调度、恶意劫持;必须用多个独立视角交叉才能定性,不宜一次查询不一致就报警。