防火长城除了使用深度包检测TCP重置攻击干扰连接外,还会使用封锁IP的方法阻止网站访问。著名的示例有谷歌、推特和脸书:DNS解析出来的IP几乎全部被封锁了。此时我们需要手动从这些网站的IP段中扫描出可用IP用于连接。

获取IP段

编辑

不同的网站IP段获取方式各不相同。下面仅给出一些方法示例。

搜索

编辑

直接在搜索引擎里输入“Twitter IP range”得到第一个结果 https://ipinfo.io/AS13414 即包括Twitter所在自治系统的IP段。

查询WHOIS

编辑

比如我们查询www.google.com

dig @208.67.220.220 -p 5353 www.google.com得到的IP地址为142.251.214.132

然后我们再查询该IP的WHOIS记录。

whois 142.251.214.132

得到的一长串WHOIS信息中有如下一段:

# whois.arin.net

NetRange:       142.250.0.0 - 142.251.255.255
CIDR:           142.250.0.0/15
NetName:        GOOGLE
NetHandle:      NET-142-250-0-0-1
Parent:         NET142 (NET-142-0-0-0-0)
NetType:        Direct Allocation
OriginAS:       AS15169
Organization:   Google LLC (GOGL)
RegDate:        2012-05-24
Updated:        2012-05-24
Ref:            https://rdap.arin.net/registry/ip/142.250.0.0

我们就得到其IP段为142.250.0.0/15

扫描可用IP

编辑

扫描IP的命令是.\ghostcp.exe -scanurl {URL} -scanip {IP RANGE}

例如,如果您要扫描www.google.com.hk的IP,假设IP段为172.217.0.0/16,可以使用如下命令:

.\ghostcp.exe -scanurl https://www.google.com.hk -scanip 172.217.0.0/16

GhosTCP会使用IP段中的每个地址尝试访问https://www.google.com.hk这个URL,并将配置文件中指定的method应用于每个扫描时发出的连接,返回的HTTP状态码为200时,计入可用IP。

如果您没有在配置文件中写明对该被封锁域名的method,GhosTCP就不会修改TCP连接,此时应该是扫描不到任何IP的,因为发出的未修改的请求会被防火长城重置干扰。