作者:harite
工具简介:
我们日常所购买的众多家用路由器,其默认的管理地址和管理密码都是公开的,而广大用户并没有去修改的意识,这给了黑客们可乘之机。黑客可通过在网页中植入 恶意代码的方式,让广大用户的路由器设置在不知不觉中被修改。黑客最常做的一件事就是修改路由器的DNS指向,通过恶意修改这个信息,黑客可轻易地骗取用 户的帐号密码,威胁您的网游、微博、QQ、淘宝、网银安全。
使用方法:
请使用您日常的浏览器来访问这个页面 http://security.tencent.com/lucky/check_router/check_router.html ,若有让输入用户密码的提示,请取消!
检测方案:
当前比较流行的检测方案是构造一个不存在的dns请求,从后端抓取记录进行对比。本方案有所不同:直接向默认地址上的路由器发送默认的登录授权信息(此特 征不断扩充中),如果路由器存在弱密码问题,则返回正常,否则返回失败。根据返回结果判断当前路由器是否可能会被攻击。能帮助广大网民发现更多潜在的风 险。
拓展阅读:
说说“史上最大规模的DNS劫持
软件截图:
检测未发现风险

检测发现风险

上面的检测是通过js脚本来检测的,检测详细代码如下:
5 | <!--[ if lte IE 6]></base><![endif]--> |
6 | <meta name= "description" content= "腾讯安全应急响应中心,Tencent Security Response Center,TSRC" /> |
7 | <meta name= "keywords" content= "腾讯,Tencent,安全团队,应急响应,腾讯安全应急响应中心,Tencent Security Response Center,TSRC" /> |
10 | <title>路由器DNS劫持风险安全检测工具 - by TSRC</title> |
14 | <script type= "text/javascript" > |
17 | $( "#demoModifyDNS" ).toggle(1000); |
18 | $( "#demoModifyPwd" ).toggle(1000); |
20 | function show_modifydns(){ |
21 | $( "#demoModifyDNS" ).show(); |
23 | function hiden_modifydns(){ |
24 | $( "#demoModifyDNS" ).hide(); |
26 | function show_modifypwd(){ |
27 | $( "#demoModifyPwd" ).show(); |
29 | function hiden_modifypwd(){ |
30 | $( "#demoModifyPwd" ).hide(); |
41 | minutes = Math.floor(maxtime/60); |
42 | seconds = Math.floor(maxtime%60); |
43 | document.getElementById( "res_show" ).innerHTML = '<img src="loading.gif"/>检测中,请等待(' +minutes+ " 分 " +seconds+ " 秒" + ')...' ; |
58 | document.getElementById( "res_show" ).innerHTML = "<b><font color='red'>当心!<br/>您当前使用的路由器存在被劫持的风险!请尽快:<br/><a target='_blank' class='preview' href='demo_modifydns.png'>点击查看</a>:修改路由器DNS设置<br/><a target='_blank' class='preview' href='demo_modifypwd.png'>点击查看</a>:修改管理账户密码</font></b>" ; |
60 | $( "a.preview" ).preview(); |
65 | document.getElementById( "res_show" ).innerHTML = "<b><font color='green'>恭喜!<br/>暂未发现您当前的路由器存在被劫持的风险。希望后续多多关注腾讯安全应急响应中心微博,我们会不定期科普安全知识和发布安全工具。</font></b>" ; |
73 | alert( "温馨提醒:为了保证测试结果的准确性,如果有弹窗提醒你输入用户密码,请点击 【【取消】】!" ); |
75 | timer = setInterval(count_down, 1000); |
76 | setTimeout(get_result, 1000*(maxtime+2)); |
84 | for (i = 0; i < router_sign.length; i++) |
87 | check_img = new Image(); |
88 | check_img.onload = function () { |
91 | check_img.src = router_sign[i]; |
95 | sign += router_sign[i]; |
106 | <body onload= "check();" > |
112 | <a class= "logo" href= "javascript:;" ><cite>TSRC<br />TSRC</cite></a> |
116 | <ul class= "tsrc_top_menu" > |
117 | <li class= "tsrc_home" ><a href= "/index.php" ><span> 首页 </span></a></li> |
118 | <li class= "tsrc_anno" ><a href= "/index.php/announcement" ><span>公告</span></a></li> |
119 | <li class= "tsrc_blog" ><a href= "/index.php/blog" ><span>博客</span></a></li> |
120 | <li class= "tsrc_report" ><a href= "/index.php/report" ><span>报告漏洞</span></a></li> |
121 | <li class= "tsrc_lib selected" ><a href= "/index.php/opensource/all" ><span>实验室</span></a></li> |
122 | <li class= "tsrc_thanks" ><a href= "/index.php/thanks" ><span>名人榜</span></a></li> |
123 | <li><a href= "/index.php/shop" ><span>礼品兑换</span></a></li> |
134 | <div class= "top_nosider" ></div> |
135 | <div id= "container" class= "center_nosider" > |
137 | <div class= "safe_school_topics_cont" > |
138 | <div id= "res_show" ><img src= "loading.gif" />检测中,请等待...</div> |
144 | <div class= "bottom_nosider" ></div> |
151 | Copyright © 1998 - 2013 Tencent. All Rights Reserved |
转自:http://security.tencent.com/index.php/opensource/detail/3
ps:作者提供的代码只是用于检测本地路由器是否存在DNS劫持的风险(如默认口令、默认IP地址等),并没有讲解如何检测本地主机是否已经遭受DNS劫持。作者只是提了一下:较流行的检测方案是构造一个不存在的dns请求,从后端抓取记录进行对比。
要好好研究下,如何检测是否被DNS劫持。
转载请注明:jinglingshu的博客 » 路由器DNS劫持风险安全检测工具