V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jedz
V2EX  ›  DNS

向权威 DNS 服务器查询却得到非权威应答,是否表示受到 DNS 污染(还是劫持)?

  •  
  •   jedz · 2021-01-24 00:03:02 +08:00 · 6569 次点击
    这是一个创建于 1406 天前的主题,其中的信息可能已经有所发展或是发生改变。

    ISP 是某二级运营商。

    首先查询 WHOIS 得知 baidu.com 的 NS 记录包含一条 ns1.baidu.com ,那么个人理解 ns1.baidu.com 应该就是 baidu.com 这个域名的“权威 DNS 服务器”。

    然后在本地 nslookup,却得到“非权威应答”。正常来讲向权威 DNS 查询应该不会得到这种非权威应答吧?

    $ nslookup baidu.com ns1.baidu.com
    Server:		ns1.baidu.com
    Address:	110.242.68.134#53
    
    Non-authoritative answer:
    Name:	baidu.com
    Address: 220.181.38.148
    Name:	baidu.com
    Address: 39.156.69.79
    

    这种情况是不是代表受到运营商的 DNS 污染?(或劫持,这两个概念分不太清楚…)

    第 1 条附言  ·  2021-01-26 10:33:47 +08:00

    向任意 IP 地址查询都能得到相同的结果(把 11.22.33.44 替换为任意 IP 都是相同结果):

    $ nslookup www.baidu.com 11.22.33.44
    Server:		11.22.33.44
    Address:	11.22.33.44#53
    
    Non-authoritative answer:
    www.baidu.com	canonical name = www.a.shifen.com.
    Name:	www.a.shifen.com
    Address: 182.61.200.7
    Name:	www.a.shifen.com
    Address: 182.61.200.6
    

    向 ISP DNS 查询不存在的域名,全部解析到同一个 IP(经查属于移动):

    $ nslookup www.0s98df9sa7f0a787a.net
    Server:		192.168.1.1
    Address:	192.168.1.1#53
    
    Non-authoritative answer:
    Name:	www.0s98df9sa7f0a787a.net
    Address: 120.240.95.35
    
    13 条回复    2021-01-26 10:23:34 +08:00
    also24
        1
    also24  
       2021-01-24 00:08:06 +08:00
    我这边没有『非权威应答』的字样:

    also24
        2
    also24  
       2021-01-24 00:17:42 +08:00
    另:
    想要判断是否是 DNS 抢答的情况,可以抓包看下,如果是抢答应该会收到多个回应。

    让我觉得比较奇怪的是,如果是抢答的话,系统应该会认为这个记录是 ns1.baidu.com 回应的,也应该标记为权威才对。
    jedz
        3
    jedz  
    OP
       2021-01-24 00:46:30 +08:00
    @also24 抓包看了下。DNS response 中有个 flag 叫“Authoritative”,应该是根据这个决定是否标记权威的吧。
    另外并没有收到多个回应,我怀疑有没有可能是运营商直接拦截了请求并伪造回复?其实请求根本就没有发到真正的 ns1.baidu.com 去。
    also24
        4
    also24  
       2021-01-24 01:01:25 +08:00
    @jedz #3
    确实,这方面是我疏忽了,没注意到 DNS 回应里的 Authoritative 字段,我抓包看了一下这里确实是有区别的。

    那看起来确实很像被运营商拦截了请求,毕竟运营商还是能做到的。

    我觉得你也许可以试试 nslookup qq 点 com ns1 点 baidu 点 com 这种,如果是运营商做的抢答,也许能解析出结果。

    (无奈脸,V2 提示:请不要在每一个回复中都包括外链,这看起来像是在 spamming )
    also24
        5
    also24  
       2021-01-24 01:02:08 +08:00


    docxs
        6
    docxs  
       2021-01-24 07:02:34 +08:00 via iPhone
    这是本地域名服务器 110.242.68.134 给出的回包,所以会被标记为 non-author 吧,指定查询 ip 为 220.181.38.148
    docxs
        7
    docxs  
       2021-01-24 07:20:43 +08:00 via iPhone
    另外,baidu.com 的 ns 记录我这里查是没有 ns1.baidu.com
    also24
        8
    also24  
       2021-01-24 15:15:11 +08:00
    @docxs #7
    我查了一下,似乎返回的结果里确实没有 ns1(.)baidu(.)com,但是返回的 dns(.)baidu(.)com 其实是解析到同一 IP 的,都是 110.242.68.134 这台机器(也就是被你误认为本地解析服务器的那台)

    (再次被 V2 提示:请不要在每一个回复中都包括外链,这看起来像是在 spamming )

    julyclyde
        9
    julyclyde  
       2021-01-25 12:39:19 +08:00
    不一定是劫持,只是很有可能而已
    jedz
        10
    jedz  
    OP
       2021-01-25 23:21:32 +08:00
    @also24 用你的方法测试了一下,`nslookup qq.com dns.baidu.com` 也能查询到结果。

    更奇葩的是,向任何 IP 地址查询都能得到一样的结果。运营商杀疯了。。?

    ![]( https://i.loli.net/2021/01/25/n4NcaXeuodMmDJR.png)

    抓包结果:

    ![]( https://i.loli.net/2021/01/25/cabtHU6LZp17vMx.png)
    also24
        11
    also24  
       2021-01-25 23:29:18 +08:00
    @jedz #10
    哈哈哈哈哈哈哈哈哈哈哈哈那看起来真的就是运营商杀疯了,感觉可以提供一下运营商信息让大家拉黑了
    ace0120
        12
    ace0120  
       2021-01-26 08:44:55 +08:00 via iPhone
    这好像是移动的专利,劫持 53 端口 dns 吧?我这也一样,关键劫持就劫持吧,除了某些不允许解析的,国内网站能获得正确解析那还能接受,关键是之前有一阵,在浏览器只要输入不存在的网址或者解析不出来的网址,直接给你跳转到一个特定的广告导航页,给我恶心坏了。这个时候你设置任何 53 端口的 dns 都是不行的,后来我给路由器安装了 smartdns,只用 DoH/DoT 。
    jedz
        13
    jedz  
    OP
       2021-01-26 10:23:34 +08:00
    @ace0120 #12
    是的。`nslookup` 不存在的域名都被解析到了同一个移动 IP 上,应该是劫持了 NXDOMAIN 响应。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2805 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 05:48 · PVG 13:48 · LAX 21:48 · JFK 00:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.