科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道从原理到测试 全面解析DNS欺骗攻与防

从原理到测试 全面解析DNS欺骗攻与防

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

您是否遭遇过DNS欺骗呢?最近闹得沸沸扬扬的“互联星空”事件,是电信在DNS上进行了重定向,本质上就是来自电信对用户的DNS欺骗,本文将给用户全面介绍DNS欺骗及解决方案……

作者:甘肃/老五 来源:IT专家网 2008年10月10日

关键字: DNS欺骗 Web安全

  • 评论
  • 分享微博
  • 分享邮件

  你有没有遭遇过这样的情况?当你在浏览器中输入正确的URL地址,但是打开的并不是你想要去的网站。或者是114的查询页面,或者是互联星空的网站,或者一个广告页面,或者是一个刷流量的页面,甚至是一个挂马的网站。这样的话,极有可能你遭遇了DNS欺骗。最近闹得沸沸扬扬的“互联星空”事件,是电信在DNS上进行了重定向,本质上就是来自电信对用户的DNS欺骗。并且这种欺骗在笔者本地仍然在继续。下面我们就来解析一下DNS欺骗是如何实现的,并找出应对的措施。

  一、欺骗原理

  我们以IT专家网为例,看看正常的DNS请求和被劫持的DNS请求的不同

  1、正常的DNS请求流程为:

  (1).在浏览器输入http://security.ctocio.com.cn;

  (2).计算机将会向DNS服务器发出请求;

  (3).DNS服务器进行处理分析得到ttp://security.ctocio.com.cn的相应地址为58.xxx.209.xxx;

  (4).DNS将把次IP地址58.xxx.209.xxx返回到发出请求的计算机;

  (3).你正常登录到http://security.ctocio.com.cn的网站。

  2、被DNS欺骗以后的DNS请求为:

  (1).在浏览器输入http://security.ctocio.com.cn;

  (2).计算机将会向DNS服务器发出请求(这里注意:实际上你发起的请求被发送到了攻击者那里);

  (3).攻击者对请求处理进行伪造DNS回复报告,返回给计算机的是攻击者指定的IP地址;

  (3).你登录到的网站实际上不是http://security.ctocio.com.cn,而是掉进了攻击者设计好的“陷阱网站”。

  二、解析DNS报文

  DNS报文是我们了解DNS攻击所必须了解的知识。

  1.格式:(图1)

图1

  2.DNS报文结构分为

  标识(id),用来签证每个DNS报文的印记,由客户端设置,由服务器返回,它可以让客户匹配请求与响应。参数(flag),参数被分成好几步分。(图2)

图2

  QR 如果QR位设置为0表示报文是查询,如果为1表示响应

  opcode 通常是0,指标准查询,1是反向查询,2是服务器状态查询

  AA 如果此位为1,表示服务器对问题部分的回答是权威性的

  TC 截断,如果UDP包超过512字节将被截流

  RD 表示希望递归,如果它设为1的话,表示递归查询

  RA 如果设为1,表示递归可用

  Zero 如它的名称一样,总是0

  rcode 0表示有错误,3表示名字错误

  3.DNS查询报文,图3为DNS报文查询的格式。

图3

  4.DNS响应报文,如图4。

图4

  响应报文有个共同的格式,我们称之为资源记录---RR响应报文的格式(RR)如下:

  域名:域名是与下面的资源数据对应的名字,它的格式同前面讲到的查询一样。

  类型:类型标识了RR类型代码号,它同前面查询类值一样。

  类:通常为1,表示因特网数据。

  生存时间:表示客户方将RR放在高速缓存里的时间,RRs的TTL通常为2天。

  资源数据长度:标识资源数据的大小。

  概念:说到这里,对于网络基础知识有一定了解的朋友都知道,当客户向一台服务器发送请求服务时,服务器会根据客户的 IP地址反向解析出该IP对应的域名。这种反向城名解析就是一个查DNS(域名解析服务器 ) 的过程。

  我们换一下思路,如果服务器在进行DNS查询时能够人为地给它我们自己的应答信息,那么结果会怎样呢?

  答案显然不用我说了,这就是所谓的DNS欺编 (dnsspoofing )。说实话,“DNS欺骗”威力巨大,如果被攻击者巧妙利用,在BBS上隐藏IP是轻而易举,人侵局域网更是痛快淋漓。

  三、欺骗测试

  为了让大家多DNS欺骗有切实的认识,我用虚拟机搭建了一个测试环境:

  操作系统:Windows 2003

  Web服务器:IIS 6.0

  服务器IP地址:192.168.0.5

  物理主机的IP地址:192.168.0.6

  工具:

  dnshack.exe:DNS欺骗的工具

  使用方法:

  dnshack.exe 你在局城网的IP 你要欺骗的IP

  记事本

  第一步:打开记事本创建一个简单的html文件,主要是用来看欺骗的效果。把如下的html代码保存为index.html文件:

  <HTML>

  <HEAD>

  <TITLE>★★DNS欺骗测试页面★★</TITLE>

  <H1>这是一个DNS的欺骗页面</H1>

  <H1>如果你看到这个页面说明欺骗成功了!</H1>

  <H4>甘肃 老五</H4>

  </BODY></HTML>

  提示:攻击者通常把这个页面做成一个挂马页面,那危害非常大!

  第二步:把index.html文件拷贝到部署好的web服务器的网站更目录下,并且在IIS管理器中添加网站的默认主页为index.heml,启动为web服务器。

  第三步:在虚拟机的命令提示符下输入如下命令并回车:

  dnshack 192.168.0.5 192.168.0.6 (图5)

图5

  说明:上面命令的意思是:欺骗IP为192.168.0.6的主机,其在浏览器中输入的URL地址打开的都是IP为192.168.0.5的虚拟服务器的index.html页面。

  第四步:在192.168.0.6的主机的浏览器中输入http://security.ctocio.com.cn,看看打开了虚拟web服务器的index.heml页面。(图6)

图6

  总结:整个测试过程结束,我们了解了DNS欺骗的原理及其过程,那该如何杜绝DNS欺骗呢?

  四、解决办法

  1.对于个人主机来说,只要及时更新补丁或者使用代理就可以防范到DNS攻击。

  2.对高标准的服务器来说,应该做到以下几点:

  (1)安装新版软件

  (2)关闭服务器的递归功能

  (3)限制城名服务器做出反应的地址

  (4)限制城名服务器做出递归相应的请求地址

  (5)限制发去请求的地址

  (5)手动修改本地hosts文件来解

  (7)用专用工具,比如AntiARP-DNS

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章