-
Notifications
You must be signed in to change notification settings - Fork 5
nagae-memooff/gfw-ip-list
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
这是一个简单的脚本,用于获取到当前gfw在dns污染时返回的虚假IP列表。这个列表可以用于其他程序中,当收到这个列表里的IP后主动丢弃这个结果。 国内的dns污染特点: 1、向国内的dns服务器查询被禁域名,一定是经过污染的结果(这个结果本身保存在国内dns服务器上而非gfw中) 2、使用udp53端口向国外dns服务器查询被禁域名,则在数据包经过gfw时,gfw会判断包,如果检测到有对被禁域名的查询,则返回一个错误地址。这个错误地址应该是不具有真实IP的地址。 3、在gfw抢先返回错误地址之后,查询包*有可能*达到国外,然后由正常途径返回一个或多个正确结果。但由于dns协议无验证,因此这些正确结果会被丢弃。 4、经过多次实验,每次返回的错误IP不同,但相对固定。 根据这几条现象,我们如果向国外的某个不提供dns查询服务的IP发送请求,那么它会经过gfw。如果查询的域名是被禁域名,则所有接收到的IP,必定是由gfw返回的错误IP。这样我们就可以收集错误IP的列表。 脚本使用方法:在终端中直接执行./getgfwiplist.sh便可。取得的IP列表会存放在当前目录下的gfwiplog文件中。 2014-12-26更新。 随着GFW不断更新,此脚本早已失效。 GFW升级后 发现新的现象: 1、gfw已经可以伪造tcp53端口的dns请求。 2、gfw也具有另一个能力:对tcp53的dns请求返回错误的包结构。这时客户端在解析返回包时,会得到错误的EOF。这个特性曾经短暂启用过,用来代替(1),但后来又改为了1. 3、以往的错误IP是固定的,所有的域名共享同一个错误IP池;现在更新后,不同域名的错误IP池也改变了。这使得我们更难以获取这个IP池,并做出选择性的屏蔽。 4、facebook和twitter在我的网络环境里(天津电信)只有两个错误IP,但s3-ap-northeast-1.amazonaws.com却有62个。 因此该脚本已经无法获取fake IP了。此脚本也不再更新,这个项目仅供留档查看用。
About
这个脚本可以获得gfw在dns污染时返回的虚假IP列表,以供其他程序主动丢弃(如pdnsd)
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published