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

另外一个有趣的思路,测试 IP 特定端口是否被屏蔽的方法

  •  1
     
  •   AlphaTauriHonda · 2022-06-09 01:28:19 +08:00 · 4621 次点击
    这是一个创建于 897 天前的主题,其中的信息可能已经有所发展或是发生改变。
    之前发的文章并不能测试单个端口是否被屏蔽。因为 DNS 污染通常不会在非 53 端口上触发,https://www.v2ex.com/t/857393 这篇的 Supplement 1 是有误的。能在非 53 端口或者 53 端口 TCP 模式下触发污染的域名有限,而且不是很多。

    对于测试单个端口,这个构造 DNS 请求的方法不太好用。https://ping.sx/dig 这个工具对于非 53 端口的 DNS 支持有些问题,在其他端口没有开启 DNS 服务的情况下依然给出了结果。应该还是请求的 53 端口,那个自定义端口的设置没什么用。

    同样,用这个方法甚至不需要拥有 IP 或者在上面开任何服务。

    对于单个端口的测试,我们可以通过构造一个包含被审查的 S N I 的 HTTPS 请求来触发 RESET ,同时检测有没有收到伪造的 RESET 来判断端口是否被墙。这个 RESET 在访问 1-65535 端口都会被触发。当然这只是目前的状况,情况有一定可能会变化。

    随便找一个很短,被屏蔽的域名。www.bbc.com

    找一个被墙端口的 IP ,对照两个没有被墙端口的 IP 。
    就以 8.8.8.8 为例。8.8.8.8 的 443 端口被墙了,但是用来对照的 9.9.9.9 ,204.79.197.200 没有被墙 443 端口。


    9.9.9.9 ,204.79.197.200 的 443 端口都没有一片红。


    8.8.8.8 被墙了 443 端口。

    用 cURL 来构造触发 RESET 的请求。
    curl --resolve 'www.bbc.com:443:9.9.9.9' https://www.bbc.com
    OpenSSL SSL_connect: Connection reset by peer in connection to www.bbc.com:443

    curl --resolve 'www.bbc.com:443:204.79.197.200' https://www.bbc.com
    OpenSSL SSL_connect: Connection reset by peer in connection to www.bbc.com:443
    测试没有被墙相应端口的 IP ,可以正常收到伪造的 RESET 。

    curl --resolve 'www.bbc.com:443:8.8.8.8' https://www.bbc.com
    Failed to connect to www.bbc.com port 443: Connection timed out
    用被墙了相应端口的 IP ,会出现 time out 错误,不能收到伪造的 RESET 。

    如果要检测其他端口把这段命令里的 443 换掉就好了。
    curl --resolve 'www.bbc.com:想检查的端口:被测 IP' https://www.bbc.com

    测试 IP 的特定端口是否被屏蔽,目前只能在墙内使用 cURL 构造请求,应该没有什么方便的线上工具可以用。
    21 条回复    2022-06-11 16:58:20 +08:00
    zhengxinhn
        1
    zhengxinhn  
       2022-06-09 01:46:51 +08:00
    点个赞
    learningman
        2
    learningman  
       2022-06-09 02:08:58 +08:00 via Android   ❤️ 1
    明天我来写个 CLI 工具试试
    mikeluckybiy
        3
    mikeluckybiy  
       2022-06-09 02:13:31 +08:00 via Android   ❤️ 1
    mark 一下,挺高大上的思路,需要个好的工具
    myki
        4
    myki  
       2022-06-09 08:08:56 +08:00
    mark ,火钳刘明
    inprtx
        5
    inprtx  
       2022-06-09 08:41:12 +08:00 via Android
    没必要 sni ,直接 curl ip:port -v 就能知道,http ok,tcp reset ,tcp reject ,tcp dorp ,四种状态
    GuuJiang
        6
    GuuJiang  
       2022-06-09 09:08:30 +08:00 via iPhone   ❤️ 1
    @inprtx 你没有理解 op 的目的,结合着 op 的上一篇帖子看,是利用墙内部不同模块之间的优先级,所以人为制造一个满足被墙条件的场景是必需的
    zgc27wo
        7
    zgc27wo  
       2022-06-09 11:59:09 +08:00
    bbc,嘿嘿
    AlphaTauriHonda
        8
    AlphaTauriHonda  
    OP
       2022-06-09 12:48:38 +08:00
    @zgc27wo 因为这域名是真的短。刚才想到一个更短的。
    dw.com Deutsche Welle
    AlphaTauriHonda
        9
    AlphaTauriHonda  
    OP
       2022-06-09 13:02:03 +08:00
    @learningman 十分感谢!

    @inprtx 用这个方法不需要拥有 IP 或者在上面开任何服务。

    @GuuJiang 差不多就是这样。利用墙会发出伪造包的特性,构造能触发伪造的请求,主动探测被测试 IP 或者特定端口是否被墙。
    pP3PSMpkBvucn8nx
        10
    pP3PSMpkBvucn8nx  
       2022-06-09 13:51:34 +08:00 via Android
    @AlphaTauriHonda 你昨天发的那个 rdrc.mnd.gov.tw 的帖子呢? rdrc.mnd.gov.tw 在赵安法实施之前就没法连上了,而且 traceroute 的过程中是在中华电信 hinet 的路由上中断的。
    pP3PSMpkBvucn8nx
        11
    pP3PSMpkBvucn8nx  
       2022-06-09 13:53:50 +08:00 via Android
    @AlphaTauriHonda 还有就是美国那些.mil 域名的网站用香港本地的 name server 也是解析不出来的,这甚至在反修例之前就已开始了,是懂王命令军队这样做的
    pP3PSMpkBvucn8nx
        12
    pP3PSMpkBvucn8nx  
       2022-06-09 14:02:09 +08:00 via Android
    @AlphaTauriHonda 还有就是你的那个香港网络审查页面上的网站都能打开,是因为你使用的 dns 解析服务器都是 8888 8844 之类的,香港现在屏蔽网站的方法是让 HKT 、HKBN 这些 isp 在家庭宽带访问的属于 isp 的 dns 解析服务器里面直接加入一条篡改域名解析结果的记录
    AlphaTauriHonda
        13
    AlphaTauriHonda  
    OP
       2022-06-09 14:10:56 +08:00 via iPhone
    @mensheviks 这个问题看起来是不让说,虽然我发的是技术问题。
    不要发和本帖没有相关性的回复。
    在之后才连不上的。
    被审查的*.*.*.67 和没有被审查的*.*.*.125 都是在中华电信的路由之后就没有回应。是因为这 IP 的 /24 都屏蔽了 ICMP ,同时 AS4782 的上游只有 HiNet ,当然会在 HiNet 之后就没有回应。
    AlphaTauriHonda
        14
    AlphaTauriHonda  
    OP
       2022-06-09 14:13:39 +08:00 via iPhone
    @mensheviks 不要在本帖下连续问不相关的问题。www.v2ex.com/t/858294 说的是大陆的🧱。和🇭🇰的有什么关系?
    pP3PSMpkBvucn8nx
        15
    pP3PSMpkBvucn8nx  
       2022-06-09 14:32:58 +08:00 via Android   ❤️ 1
    AlphaTauriHonda
        16
    AlphaTauriHonda  
    OP
       2022-06-09 14:54:40 +08:00
    @mensheviks 好。我看不到整个 go/flamewar ,只能单独看到这个网址。
    learningman
        17
    learningman  
       2022-06-09 16:06:54 +08:00   ❤️ 1
    https://github.com/Zxilly/knockknock
    写好了,但是现在应该只能在 Windows 上用。。。我等下琢磨下跨平台的怎么判断
    learningman
        18
    learningman  
       2022-06-09 19:46:32 +08:00   ❤️ 1
    Ok ,跨平台的修好了,binary 可以从 Release 下
    但是 Windows Defender 会报毒,我不打算修了,应该是引入了 syscall 的原因
    AlphaTauriHonda
        19
    AlphaTauriHonda  
    OP
       2022-06-10 00:43:51 +08:00
    h4wklee
        20
    h4wklee  
       2022-06-10 15:24:33 +08:00 via Android
    楼主觉得嘉斯利还有机会去大红牛吗😆
    AlphaTauriHonda
        21
    AlphaTauriHonda  
    OP
       2022-06-11 16:58:20 +08:00
    @h4wklee Sergio Pérez 刚续签。我觉得难了。
    开车不行,还是上网有意思。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4302 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 04:07 · PVG 12:07 · LAX 20:07 · JFK 23:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.