2010年1月12日星期二

[GFW BLOG] 有关DNS攻击、劫持

来源:http://brucehan.com/archives/1301

本文重点阐释了DNS攻击、劫持的定义以及最为臭不要脸的114经典案例之一,最后还不忘教大家如何在DNS失效时暂时性的应付技巧。博主万福金安……

据悉,这是自百度建立以来,所遭遇的持续时间最长、影响最严重的黑客攻击,网民访问百度时,会被重定向到一个位于荷兰的IP地址,百度旗下所有子域名均无法正常访问。

发生此次攻击的根本原因,在于目前互联网域名的DNS管理服务器安全性未受到应有的重视。目前绝大多数域名都存在类似安全风险,使得 DNS存在很多安全隐患。在本次事件中,黑客绕开了百度本身的安全保护,而攻击了DNS管理服务器,导致了此次攻击的严重后果。

DNS 是域名系统 (Domain Name System) 的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务。在Internet上域名与IP地址之间是一对一(或者多对一)的,域名虽然便于人们记 忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。

域名系统(DNS)攻击,也叫做DNS欺骗或DNS缓存布毒,其目的就是通过篡改将域名转换成数字地址的记录,使用户打开可能含有恶意代码网页服务器中的链接,这种手法也被网络骗子用来在受害者的系统中安装自动运行的广告软件,并使用户计算机自动打开点击即须付费的网页。网络系统协议由于其自身的弱点:使用了16位通信ID,因此深受这种攻击的威胁,这便构成了一种固有的缺陷。

实际上全中国的电信用户均不同程度的受到DNS劫持之苦!我在前面讲过一个关于死逼114的故事。

上海电信在近一个月内对其所属的DNS服务器做了某些明显违背互联网规范的行为,导致出现将客户浏览器导向其自身所辖的114号码百事通,此种行为非常令人不齿。

使用上海电信宽带接入的朋友可能最近也经常像我一样在浏览网站时莫名其妙地输入网址后转向了114查询的页面,此类事故在以前曾听过有类似的传言,而以前我个人并未碰到,所以并不在意,但如今我是天天被114这个破烂页面骚扰,于是也不得不仔细找找原因了。

首先解释一下什么是DNS劫持。严格来说上海电信的这种行为不能算是DNS劫持,但似乎除了这个名词也没有更适合的词来形容这种行为了,所以就需要解释一下DNS劫持的来龙去脉,免得有人说我误导初学者。

DNS劫持是网络安全界常见的一个名词,意思是通过某些手段取得某一目标域名的解析记录控制权,进而修改此域名的解析结果,通过此修改将对此域名的访问由原先的IP地址转入到自己指定的IP,从而实现窃取资料或者破坏原有正常服务的目的。

举个例子,例如www.sohu.com原指向 1.1.1.1,这个 IP是sohu正常服务的服务器IP。而某黑人拿到了修改sohu.com域名解析的权利,将其解析记录修改为2.2.2.2,则修改后对于 www.sohu.com的访问都会指向2.2.2.2这个IP。此黑人在2.2.2.2这个他自己所有的IP上放了一个完全仿冒的sohu主页,只是将 登陆sohu邮箱的这个界面改为把客户填写的邮箱名和密码记录下来。这样普通客户访问www.sohu.com时看到的是表面为sohu主页,而实际为假冒页面的李鬼了。此时客户如果继续登陆其sohu邮箱,则其帐户就被黑人拿到了。

回到主题—有关上海电信的DNS劫持行为。在我发现近期浏览网页出现异常的这段时间里,我注意搜索了一下关于这方面的讨论,发现上海电信的这种不道 德行为确实是存在的,只是我以前恰好没有入套而已。根据我搜索来的资料,在06年下半年的时间里,上海电信实现了通过IE浏览器搜索功能来推送电信的 114 搜索。

其具体原理是与IE本身的实现相关。简单来说,IE对于输入的网址,如果无法正常解析其域名或者输入的根本就不是域名的话,会调用它自身定义的搜索引擎来搜索这个地址。这个搜索引擎,默认是MSN(在之前是3721,但06年微软终止了与3721的合同,所以是MSN)。所以此时地址会转向 auto.search.msn.com。上海电信为了将这部分流量导入自己的怀里,做了2种小动作:

•第一是在他们的星空XX拨号软件里,只要安装这个软件,就会修改注册表将IE的搜索引擎改为http://search.114.vnet.cn,于是这些流量被导入到114,此做法尚可忍受,因为毕竟软件是可以选择的,而修改也是可以改回来的。

•第二就是DNS劫持了,这就是公然违反网络标准以及违反互联网道德的行为了。具体细节就是在上海电信的几个DNS服务器中作手脚,将对auto.search.msn.com这个域名解析的应答篡改为他们自己的IP地址,这是很容易查出来的:

首先看由Root服务器下来的权威结果,我们用DNSStuff这个在线网站测试,URL为http://www.dnsstuff.com/tools/lookupsearch.msn.com&type=A,可以看到如下结果:

Response:

Domain Type Class TTL Answer

a134.g.akamai.net.6528acf.1.cn.akamaitech.net. A IN 20 67.130.109.38

a134.g.akamai.net.6528acf.1.cn.akamaitech.net. A IN 20 67.130.109.16

NOTE: One or more CNAMEs were encountered. auto.search.msn.com is really a134.g.akamai.net.6528acf.1.cn.akamaitech.net. [auto.search.msn.com->sea.search.msn.com->sea.search.msn.com.nsatc.net->

search.msn.com.edgesuite.net->a134.g.akamai.net->

a134.g.akamai.net.6528acf.1.cn.akamaitech.net]

再来看我们使用了上海热线DNS所解析出来的结果,我这里用BIND提供的dig工具来取结果:

# dig @202.96.209.5 A auto.search.msn.com

; <<>> DiG 9.2.4 <<>> @202.96.209.5 A auto.search.msn.com

;; global options: printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18248

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 4

;; QUESTION SECTION:

;auto.search.msn.com. IN A

;; ANSWER SECTION:

auto.search.msn.com. 86400 IN A 218.30.64.194

;; AUTHORITY SECTION:

auto.search.msn.com. 86400 IN NS ns-puxi.online.sh.cn.

auto.search.msn.com. 86400 IN NS ns-pudong.online.sh.cn.

auto.search.msn.com. 86400 IN NS ns-pd.online.sh.cn.

auto.search.msn.com. 86400 IN NS ns-px.online.sh.cn.

auto.search.msn.com. 86400 IN NS ns-px2.online.sh.cn.

;; ADDITIONAL SECTION:

ns-pd.online.sh.cn. 86400 IN A 202.96.209.133

ns-px.online.sh.cn. 86400 IN A 202.96.209.5

ns-puxi.online.sh.cn. 86400 IN A 202.96.209.5

ns-pudong.online.sh.cn. 86400 IN A 202.96.209.133

;; Query time: 23 msec

;; SERVER: 202.96.209.5#53(202.96.209.5)

;; WHEN: Wed Mar 14 14:51:08 2007

;; MSG SIZE rcvd: 236

可以看到auto.search.msn.com被解析到了218.30.64.194这个IP,这显然是不对的,而本应属于微软的msn域名的NS记录竟然为5个上海热线的域名服务器,很明显猫腻就在这里了。

那我们就顺便查查218.30.64.194这个IP的所有,通过IP whois信息库,查询方法也是通过方便至极的DNSStuff,URL如下:http://www.dnsstuff.com/tools /whois.ch?ip=218.30.64.194,摘录一下结果:

WHOIS results for 218.30.64.194

Generated by www.DNSstuff.com

Location: China [City: Shenzhen, Guangdong]

ARIN says that this IP belongs to APNIC; I’m looking it up there.

% [whois.apnic.net node-2]

% Whois data copyright terms www.apnic.net/db/dbcopyright.html

inetnum: 218.30.64.0 – 218.30.64.255

netname: CHINANET-CN

country: CN

descr: Chinavnet

descr: No.31 ,jingrong street,beijing

admin-c: CH93-AP

tech-c: CH93-AP

status: ALLOCATED NON-PORTABLE

changed: *****@chinatelecom.com.cn 20051026

mnt-by: MAINT-CHINANET

source: APNIC

person: Chinanet Hostmaster

nic-hdl: CH93-AP

e-mail: *********@ns.chinanet.cn.net

address: No.31 ,jingrong street,beijing

address: 100032

phone: +86-10-58501724

fax-no: +86-10-58501724

country: CN

changed: *****@chinatelecom.com.cn 20051212

mnt-by: MAINT-CHINANET

source: APNIC

很明显这个IP是中国电信的,而msn的域名就是这样被QJ到了中国电信的IP。

以上就是06年中上海电信所做的手脚了,其实对于如此行为我个人还是可以忍受的,因为第一我不会去装什么星空XXX,即使装了我也有办法不用你的东西。第二我不用MSN的搜索,你劫持了它对我没什么影响。

然而,从最近一段时间的异常来看,事情显然已经不只是这个地步了,因为我在用各种浏览器各种搜索引擎的时候都碰到了被转向了114的情况,再加上我 个人工作所维护的一些邮件服务器最近发现的怪异情况,我有理由怀疑上海电信在DNS上做了更令人不齿的行为。很不幸,我只是简单测试了一下,就发现确实如 此,这次的行为可谓明刀明枪的抢劫了:

C:>ping notpresentxxxxxxxxxx.cn

Pinging notpresentxxxxxxxxxx.cn [218.83.175.154] with 32 bytes of data:

Reply from 218.83.175.154: bytes=32 time=124ms TTL=242

Reply from 218.83.175.154: bytes=32 time=122ms TTL=242

Reply from 218.83.175.154: bytes=32 time=134ms TTL=242

Reply from 218.83.175.154: bytes=32 time=134ms TTL=242

Ping statistics for 218.83.175.154:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 122ms, Maximum = 134ms, Average = 128ms

C:>ping dsfsdofhetfowefuwdf.com

Pinging dsfsdofhetfowefuwdf.com [218.83.175.154] with 32 bytes of data:

Reply from 218.83.175.154: bytes=32 time=126ms TTL=242

Reply from 218.83.175.154: bytes=32 time=125ms TTL=242

Reply from 218.83.175.154: bytes=32 time=116ms TTL=242

Reply from 218.83.175.154: bytes=32 time=118ms TTL=242

Ping statistics for 218.83.175.154:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 116ms, Maximum = 126ms, Average = 121ms

C:>ping gherogfhgnewlffefh.com

Pinging gherogfhgnewlffefh.com [218.83.175.154] with 32 bytes of data:

Reply from 218.83.175.154: bytes=32 time=674ms TTL=242

Reply from 218.83.175.154: bytes=32 time=1007ms TTL=242

Reply from 218.83.175.154: bytes=32 time=1002ms TTL=242

Reply from 218.83.175.154: bytes=32 time=812ms TTL=242

Ping statistics for 218.83.175.154:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 674ms, Maximum = 1007ms, Average = 873ms

相信会用ping命令的网友们自然能看得懂这段输出的意思,简单来说,我ping了3个根本不存在的域名,本应出现找不到域名错误 (hostname not found),然而这显然不存在的3个域名竟然能得到解析结果,而无一例外的指向同一个IP—-218.83.175.154。这个IP是什么我想大家应 该也会非常有兴趣知道,点一下看看吧http://218.83.175.154。照样不能忘记把这个IP的whois信息拿出来作证据:http: //www.dnsstuff.com/tools/whois.ch?ip=218.83.175.154,顺便贴出来:

WHOIS results for 218.83.175.154

Generated by www.DNSstuff.com

Location: China [City: Shanghai, Shandong]

ARIN says that this IP belongs to APNIC; I’m looking it up there.

% [whois.apnic.net node-1]

% Whois data copyright terms www.apnic.net/db/dbcopyright.html

inetnum: 218.78.0.0 – 218.83.255.255

netname: CHINANET-SH

descr: CHINANET Shanghai province network

descr: Data Communication Division

descr: China Telecom

country: CN

admin-c: CH93-AP

tech-c: XI5-AP

mnt-by: APNIC-HM

mnt-lower: MAINT-CHINANET-SH

mnt-routes: MAINT-CHINANET-SH

status: ALLOCATED PORTABLE

changed: **********@apnic.net 20060427

source: APNIC

person: Chinanet Hostmaster

nic-hdl: CH93-AP

e-mail: *********@ns.chinanet.cn.net

address: No.31 ,jingrong street,beijing

address: 100032

phone: +86-10-58501724

fax-no: +86-10-58501724

country: CN

changed: *****@chinatelecom.com.cn 20051212

mnt-by: MAINT-CHINANET

source: APNIC

person: Wu Xiao Li

address: Room 805,61 North Si Chuan Road,Shanghai,200085,PRC

country: CN

phone: +86-21-63630562

fax-no: +86-21-63630566

e-mail: ********@mail.online.sh.cn

nic-hdl: XI5-AP

mnt-by: MAINT-CHINANET-SH

changed: ********@mail.online.sh.cn 20010510

source: APNIC

铁证如山,看你上海电信还如何抵赖,目前我自己发现的出现问题的DNS服务器有 202.96.209.5,202.96.209.6, 202.96.209.133,202.96.209.134,都为上海电信ADSL的DHCP默认指派的DNS,应该还有数个服务器应该也是类似,只是 我没有去求证。

做为中国最大的ISP,发布广告无可厚非,但却打着官方的旗号公然破坏互联网基础设施,公然违反互联网RFC,真可谓给国内各大企业带了个好头,再加上CNNIC的流氓行为,中国互联网还有什么值得激动的?

现在唯一还能让我高兴起来的事情,就是似乎这个转入到114查询的关键字似乎是随机选取的,经常会出现让人哭笑不得的结果,莫非电信的技术们也开始学习玩无厘头风格了?

如何暂时应付DNS故障导致的网络中断?

分享一下我是如何暂时应对DNS服务问题导致的暂时公司内部网络和家庭无法上网。

现在很多互联网应用都是依赖DNS服务的,需要把域名解析为IP地址,不单单是上网还有一些IM或者其他的应用都是需要DNS来帮助的。这是因为可以减少配置的难度和应用的难度,提高程序和应用的灵活性。发明DNS就是为了方面寻找主机,谁都会很容易记住www.brucehan.com的 网址,但是谁也记不住我们的IP地址,另外如果应用都需要输入一个IP地址,一旦遇到系统迁移或者调整也很麻烦,比如我们的服务器从这个IDC迁到别的 IDC,一般IP地址都会改变,否则路由网也不知道如何转发数据包,如果应用写得是IP地址,迁移的时候可就麻烦了,所有相关应用都要更改IP地址。另外 像一些大型网站全球都有镜像服务器,域名会对应很多IP地址,这样就更麻烦了。

我有一次在外出差,发现酒店浏览器不能上网,但是Skype能够上网。Skype这样的应用是有自己的手段发现其他主机的并完全不依靠dns。依据 此我判断出DNS可能出现问题,网络的IP通信并没有问题。我就通过cdma(也就是移动网络)上网找到了别省的DNS,然后在机器的DNS配置这里指定 了一个 DNS服务器,输入它的地址。通常我们的计算机都是通过DHCP协议获取的DNS服务器地址,通常都是自动配置的。而后计算机就可以上网,可以看出可能是 所在运营商的DNS出现了问题。

同理,如果您发现不能上网,也可以在自己的路由器或者自己的计算机里调整DNS的配置,尝试指向别的DNS服务器,这样可以应对这一问题。对于网络管理员来说也可以调整自己公司的DNS指向。

声明:原创文章-转载请注明Bruce|http://brucehan.com/本文链接地址: 有关DNS攻击、劫持




--
Posted By GFW Blog to GFW BLOG at 1/12/2010 03:35:00 PM

没有评论:

发表评论