MENU

一次无污染DNS服务器的扫描记录

之前上学时偶然发现了中科大提供无污染dns,一直用了几年,直到去年某一天发现LUG服务器维护小组的黑板报上关于dns的文章都被设置了校内查看,估计厚颜无耻部门施加了压力,当时在其论坛询问,得知相关文章以后只能在校园内查看,但是仍然会对外提供无污染dns服务,只是看不到罢了,之后也没在意,因为家里已经用上了chinadns+shadowsocks,后来开始仔细研究几种反射放大的ddos类型,突然想到了可以使用扫描dns列表的方式来找无污染dns,但产生想法之后一直没有实现,今天配置一个路由器时又想起了此事,于是便动手实现了一次.

需要使用到的东西

  1. 一台中国大陆的vps(必须在GFW内)
  2. zmap
  3. dns探针(github上给出的示例里就有一个)

收集目标学校的ip

这个就得动脑子了,我的方法是用网上提供的多地区ping对学校的一些网站进行ping,这里我选择ping中科大的LUG黑板报的博客,然后我得到了3个ip他们分别是202.141.162.123 202.141.178.13 202.38.93.153通过ipip.net进行查询得知他们都是中科大自己在电信,移动,教育网拿到的ip,接下来就是体力活了,拿202.141.162.123来举例,首先把d段换成0然后查询,发现得到的结果还是中科大,然后减小c段的值到150进行查询,得到的结果发现150段不属于中科大,然后逐步增加c段的值最后确定了202.141.160.0为中科大在电信拿到的最小的ip,然后再确定最大值,将d段的值改为255,将c段加到170进行查询,发现还是中科大的ip,然后再增加最后确定了202.141.175.255是中科大在电信拿到的最大ip,之后通过相同方法查询了移动和教育网,得到了下面的结果

202.38.64.0 - 202.38.95.255
202.141.160.0 - 202.141.175.255
202.141.176.0 - 202.141.191.255

将其转换为CIDR格式后就可以用zmap扫了

202.38.64.0/19
202.141.160.0/20
202.141.176.0/20

使用zmap扫描

安装就不再详述了,根据zmap官网说明,zmap一般只存在于各大发行版最新版本仓库里,所以新版可以使用yum或者apt直接安装,旧版本系统则需要编译zmap旧版本安装.
然后是探针,https://github.com/zmap/zmap/tree/master/examples/udp-probes这里是zmap提供的所有的udp探针,可以直接使用,其中dns_53_queryAwww.google.com.pktdns_53_queryAwww.google.it.pkt是dns探针,为了避免不必要的麻烦,我选择google.com的探针进行扫描.
先将上面找到的CIDR格式的ip保存到一个txt里
然后使用zmap进行扫描,zmap使用方法不再叙述,之前的文章我有介绍过一个指令,也可以在网上查找,使用zmap -p 53 -M udp --whitelist-file=edu.txt --probe-args=file:dns_53_queryAwww.google.com.pkt -o dns.txt开始扫描.
我的vps用的是小伙伴的贵州100M带宽的机器,扫描时间不到1秒,然后我得到了以下ip

202.141.160.97
202.141.160.121
202.38.95.40
202.38.93.153
202.141.162.123
202.38.75.77
202.38.93.94

在返回结果内找到可用的dns服务器

扫描得到的结果只能保证是dns服务器,但并不能保证可以正常使用或者正确返回查询结果.
过滤没有什么好的办法,我直接开cmd使用nslookup一个一个的测试
我通过nslookup twitter.com xx.xx.xx.xx进行过滤
得到的错误结果最多的就是Query refused了,这个结果说明我的ip不在允许查询的范围内,这种应该是只有学校内部才能使用的dns服务器.
还有一种是直接返回dns根的,是什么我也不知道,直接忽略.
最后得到了3个可用的dns服务器

202.38.93.153
202.141.162.123
202.38.93.94

一些其他说明

  1. 并不只是中科大有无污染dns服务器,其他学校应该也会有,可以尝试扫下其他学校的
  2. 寻找学校ip时如果可以最好不要ping学校的主站,最好能找到在学校内建立的论坛,博客进行ping
  3. 扫到的dns服务器并不一定是无污染dns服务器,可能只是普通的dns服务器,验证方法也很简单,用下就知道了
  4. 无污染dns不能用时并不一定是它受到了污染,也有可能是运营商进行了2次污染
  5. 扫描用的服务器必须是在GFW内的.
  6. 测试无污染dns服务器是否可用的时候不要使用探针的域名,为了避免偶然性,最好再测试一个国内的普通域名保证国内的域名也能正常查询
添加新评论

已有 4 条评论
  1. 小泉花阳 小泉花阳

    已收藏dns,非常感谢@(滑稽)@(大拇指)

  2. github 上看到你ddos网页端源码。下载了。怎么用

    1. @qq1906322193gayhub上的那个不是最新的代码,有不少bug,最新的代码没有提交到gayhub,然后因为某人的失误最新代码丢失了,后来重写了一部分也忘记丢哪里了,用的话就把import.sql导入数据库,修改应用文件夹的数据库配置文件,然后就能用了,但是bug需要自己修,注册一个账户然后去数据库修改成管理角色(字段好像是group来着)然后就左边菜单会出现管理员菜单.

  3. Tom Tom

    其实他们邮件列表里有的。
    https://groups.google.com/forum/#!topic/neat-dns/jhiRbxx3zYQ

996.icu 996.icu