V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pcslide
V2EX  ›  宽带症候群

直接到根服务器的 dns 查询都被劫持了吗?

  •  
  •   pcslide · 2021-12-03 22:44:18 +08:00 · 4075 次点击
    这是一个创建于 1089 天前的主题,其中的信息可能已经有所发展或是发生改变。
    墙内 dig @198.41.0.4 www.facebook.com
    得到的直接就是地址
    www.facebook.com. 214 IN A 31.13.95.37
    ;; Query time: 10 msec
    ;; SERVER: 198.41.0.4#53(198.41.0.4)

    ----------------------------
    墙外 dig @198.41.0.4 www.facebook.com
    让我去问下面的服务器
    ;; AUTHORITY SECTION:
    com. 172800 IN NS a.gtld-servers.net.
    com. 172800 IN NS b.gtld-servers.net.
    com. 172800 IN NS c.gtld-servers.net.
    [此处略去若干行]
    ;; Query time: 320 msec
    ;; SERVER: 198.41.0.4#53(198.41.0.4)


    墙内的问询时间才 10ms ,这个应该在一个城市吧???
    23 条回复    2021-12-06 15:52:19 +08:00
    pacificfish
        1
    pacificfish  
       2021-12-03 22:51:25 +08:00 via Android
    海外 dns 只有 doh,tls 才不会被污染,明文 dns 就算用火星的 dns 一样污染,你要相信这拿纳税人的钱来供养的非常欠打的防火墙的实力
    jousca
        2
    jousca  
       2021-12-03 23:03:39 +08:00
    @pacificfish 这叫“数据跨境安全网关”
    jousca
        3
    jousca  
       2021-12-03 23:04:45 +08:00
    只有使用 DOH 这样的才能防污染。但是也没用,FACEBOOK 是 DNS 污染+IP 屏蔽+域名访问请求拦截……
    kyor0
        4
    kyor0  
       2021-12-03 23:05:31 +08:00
    国内运营商基本会劫持国外的 udp:53 的 dns ,极少数没有。

    简单的解决方法就是 tcp53 查询,或者非 53 端口的查询,当然 doh 等也是没问题的
    pcslide
        5
    pcslide  
    OP
       2021-12-03 23:05:57 +08:00
    @jousca 既然都屏蔽了,那为什么又返回一个是属于 facebook 的 ip 地址呢????
    chotow
        6
    chotow  
       2021-12-03 23:23:34 +08:00
    @pcslide #5 因为很多污染都是指向脸书的 IP ,例如:
    dig @119.29.29.29 www.google.com
    jousca
        7
    jousca  
       2021-12-04 01:09:16 +08:00
    @pcslide 返回一个在防火墙上已经封锁的已知 IP 。比返回一个不在墙上的其他 CDN 地址靠谱吧。哈哈,从封锁目的来说。
    learningman
        8
    learningman  
       2021-12-04 07:43:50 +08:00 via Android
    @pcslide 关键词:路由扩散
    TomChaai
        9
    TomChaai  
       2021-12-04 12:49:13 +08:00
    @pcslide DNS 服务器一般是不屏蔽的,谷歌 DNS 都可达。
    DNS 封锁的方法是侦听你发出去的请求,正常请求不管,发现被封的网站直接伪造个答复抢在前面发回来。返回 TWFB 的地址属于我们的经典操作。
    TWFB 的 IP 是几乎整个 AS 级别都不可达的,所以被用来当作干扰答案。
    LGA1150
        10
    LGA1150  
       2021-12-04 18:05:33 +08:00 via Android
    发一个利用特征过滤掉 DNS 抢答包的 bpf 规则,仅匹配 Google DNS 8.8.8.8/8.8.4.4:
    iptables -t raw -I PREROUTING -i ( WAN 口名称) -m bpf --bytecode "13,32 0 0 12,21 1 0 1121718826,21 0 9 755778626,48 0 0 9,21 0 7 41,48 0 0 8,53 5 0 240,48 0 0 26,21 0 3 17,40 0 0 60,21 0 1 53,6 0 0 262144,6 0 0 0" -j DROP
    LGA1150
        11
    LGA1150  
       2021-12-04 18:07:18 +08:00 via Android
    发错了,应该是这个
    iptables -t raw -I PREROUTING -i WAN 口名称 -m bpf --bytecode "17,32 0 0 12,21 1 0 134744072,21 0 13 134743044,48 0 0 9,21 0 11 17,48 0 0 6,21 8 0 64,48 0 0 8,53 0 6 100,40 0 0 6,69 5 0 8191,177 0 0 0,80 0 0 10,84 0 0 4,21 0 1 4,6 0 0 262144,6 0 0 0" -j DROP
    pcslide
        12
    pcslide  
    OP
       2021-12-04 18:20:39 +08:00
    @LGA1150 发现墙内连 8.8.8.8 似乎是幻觉,你把抢答的包毙了,你很大可能就解析不出地址。我试了用 dns over tls 和 dns over https 都连不上 google cloudflare opendns 的 dns 服务
    LGA1150
        13
    LGA1150  
       2021-12-04 18:28:18 +08:00 via Android
    @pcslide TCP 的端口墙了,UDP 53 并没有
    jmk92
        14
    jmk92  
       2021-12-04 18:42:32 +08:00
    何止 udp53 ,tcp53 一样劫持,反正不用 53 端口就是了,DoT/DoH 选一个
    Leeds
        15
    Leeds  
       2021-12-04 19:25:58 +08:00 via Android
    海外裸连 53 端口 dns 就是这样,你可以康康我的 160.16.123.42 怎么样
    pcslide
        16
    pcslide  
    OP
       2021-12-04 19:52:11 +08:00
    @LGA1150 8.8.8.8 和其他常用的 dns 服务器无法建立有效的 https 和 tls 是连接,不管是 udp 还是 tcp 都没用,可能以前觉得好用,是被快速抢答的错觉。。。
    jmk92
        17
    jmk92  
       2021-12-04 21:51:06 +08:00
    @pcslide 常用是指的哪些,海外 cloudflare 、google ,还是国内阿里腾讯 114 之类的?
    wwbfred
        18
    wwbfred  
       2021-12-04 22:00:22 +08:00
    @LGA1150 这是什么特征?我现在是扫抢答 IP 加到 iptables 里过滤,准确性不错,但一个一个检查总觉得很傻逼……
    v2tudnew
        19
    v2tudnew  
       2021-12-05 00:13:06 +08:00
    @pcslide #16 恭喜你发现真相了😆。我这谷歌 TLS 可以,延迟也低(不知道运营商抽的什么风)。如果你用公共网络,很大概率你改的任何 DNS 都是无效的,这种美名其曰叫 DNS 代理、DNS 缓存加速。
    cwek
        20
    cwek  
       2021-12-05 19:41:54 +08:00
    劫持本身基础操作吧,再加上根域名服务器是任播的,国内有镜像,全部给你路由到国内镜像都可以,而且也不是没试过将国外请求路由到国内镜像然后出包了。
    cwek
        21
    cwek  
       2021-12-05 19:43:42 +08:00
    抢答的话,估计是返回的包 TTL 大得离谱,成为一种识别特征吧
    2i2Re2PLMaDnghL
        22
    2i2Re2PLMaDnghL  
       2021-12-06 14:50:36 +08:00
    抢答不是劫持

    连 8.8.8.8 只有触发过滤才是幻觉,可以看响应包。连得快是因为 Google 优化好,出了门就是。
    而且 dig +tcp 最明显,触发过滤就被 RST ,原因是技术手段是旁听人不是中间人( TCP 有状态,中间人消耗算力爆炸)。

    过滤发生在边际,跟访问谁无关,尝试 dig www.google.com @<填入任意有路由且非 DNS 的 IP>
    再尝试 dig www.baidu.com @<上述同 IP>
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5458 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 01:24 · PVG 09:24 · LAX 17:24 · JFK 20:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.