DNS欺骗攻击技术分析及防范

来源:asp之家 时间:2010-02-11 09:52:00 

DNS欺骗是一种非常复杂的攻击手段。但是它使用起来比IP欺骗要简单一些,所以也比较常见。最近一个利用DNS欺骗进行攻击的案列,是全球著名网络安全销售商RSA Security的网站所遭到的攻击。其实RSA Security网站的主机并没有被入侵,而是RSA的域名被黑客劫持,当用户连上RSA Security时,

发现主页被改成了其他的内容。

DNS是怎样工作

DNS是全称是Domain Name Server,既域名服务器。当一台主机发送一个请求要求解析某个域名时,他会首先把解析请求发到自己的DNS服务器上。

假设现在有一台主机heike.angel.com,他的DNS是cn.angel.com机器,现在它拿到了某个域www.xxx.com,但不知道其IP地址,这时它就要通过DNS查询来获得这个域名的IP地址。现在我们看看域名解析的整个过程把!

首先,heike.angel.com会将解析请求发往它的DNS服务器,

请求解www.xxx.com

heike.angel.com__________________________________________cn.angel.com

这个名字请求是从heike.angel.com的某个随机选择的端口发送cn.angel.com的53端口,这是DNS服务器的绑定端口。

cn.angel.com收到这个解析请求后,就开始解析工作了。这时如www.xxx.com的IP地址cn.angel.com的缓存之中,那么询问别的DNS服务器。

它首先询cn.angel.com会把查询的结果返回cn.angel.com

请问com的权威服务器

cn.angel.com_______________________________________________cn.internic.com

com域名权威服务器IP是22.1.2.3

cn.angel.com_______________________________________________cn.internic.com

这cn.internic.com回答cn.angel.com,COM域的权威DNS是IP22.1.2.3,然cn.angel.com就会向22.1.2.3查询xxx.com子域的DNS服务器的地址。 请问xxx.com子域的DNS

cn.angel.com_______________________________________________cn.internic.com

xxx.com子域的DNS是200.1.1.1

cn.angel.com_______________________________________________cn.inrernic.com

现在cn,angel.com知道了xxx.com子域的权威服务器的IP地址了。这时它就可以询www.xxx.com的IP地址了。

请www.xxx.com的IP地址 cn.angel.com_______________________________________________200.1.1.1

www.xxx.com的IP地址是200.1.1.1

cn.angel.com_______________________________________________200.1.1.1

现cn.angel.com就得到www.xxx.com的IP地址了,它再将这个IP地址反还给请求解析的heike.angel.com

www.xxx.com的IP地址是200.1.1.1

heike.angel.com_____________________________________________cn.angel.com

heike.angel.com知道www.xxx.com的IP地址后就可以和它进行连接了,整个域名解析过程就这么结束了!

DNS欺骗的原理

看到了上面的域名解析过程,我们就会想,如果cn.angel.com向xxx.com的子域DNS服务器200.1.1.1询www.xxx.com的IP地址时,我们冒充200.1.1.1给www.xxx.com的IP地址,这个IP地址是一个虚拟的地址,列如202.109.2.2,这cn.angel.com就会把202.109.2.2当www.xxx.com的地址返还给heike.angel.com了。当heike.angel.com连www.xxx.com时,就会转向我们提供的那个虚假的IP地址了,这样对www.xxx.com来说,就算是给黑掉了。因为别人根本连接不上他的域名。

这就是DNS欺骗的基本原理,但正如同IP欺骗一样。DNS欺骗在技术上实现上仍然有一些困难,为了理解这些困难我们要看一下DNS查询包的结构。在DNS查询包中有一个重要的域叫做做标识ID。用来鉴别每个DNS数据包的印记,从客户端设置。由服务器返回,它可以让客户匹配请求与响应。看看下面一个列子也许你会明白些

请www.xxx.com的IP地址

cn.angel.com______________________________________________200.1.1.1

这时黑客只需要用假的200.1.1.1进行欺骗,并且在真正的200.1.1.1返回cn.angel.com信息之前,先于它给出所查询的IP地址。

cn.angel.com_____________ ← _______200.1.1.1

↓ www.xxx.com的IP地址是1.1.1.1

↓__________________________________黑客

这个过程很直观,就是在200.1.1.1前cn.angel.com送出一个伪造的DNS信息包,但正如前面说过的,如果要发送伪造的DNS信息包而不被识破,就必须伪造正确的ID,也就是说,如果无法判别这个标识符的话,欺骗将无法进行。这在区域网上很容易实现,只要安装一个sniffer,(sniffer在上次我给大家将了请查考黑客防线2002/11月的把这里不说明了)通过袖探就可以知道这个ID。但如果是在Internet上实现欺骗,就只有发送大量的一定范围的DNS信息包,通过碰运气的办法来提高给出正确标识ID的机会。下面我们就来看看用sniffer嗅探到标识ID的情况下,怎么进行DNS欺骗。

DNS欺骗的现实过程

继续上面的列子,假设我们已经成功的攻击了200.1.1.1子网中任意一台主机,并且通过安装sniffer的方法对整个子网中传输的包进行嗅探,我们可以设置只对进出200.1.1.1的包进行观察,从而获得我们需要的标识ID。当DNS服务器200.1.1.1发出查询包时,它会在包内设置标识ID,只有应答包中的ID值和IP地址都正确的时候才能为服务器所接受。这个ID每次自动增加1,所以可以第一次向要欺骗的DNS服务器发一个查询包并监听到该ID值,随后再发一个查询包,紧接着马上发送我们构造好的应答包,包内的标识ID为预测的值。为了提高成功效率可以指定一个范围,比如在前面监听到的哪个ID+1的范围之间。接上列,如cn.angel.com向200.1.1.1发来了要求查www.xxx.com的IP地址的包,此时,200.1.1.1上的黑客就要欺cn.angel.com。

cn.angel.com→→→→→→→→→→→→→→→→→→→200.1.1.1 [Query]

NQY:1 NAN:0 NNS:0 NAD:0 QID:6573

QY:www.xxx.con A

其中NQY,NAN等是查询包的标志位。当这两个标志位为“1”时表示是查询包,这时我们就可以在200.1.1.1上监听到这个包,得到他的ID为6573.然后紧接着我们也向200.1.1.1发出一次查询,使它忙于应答这个包

1.1.1.1→→→→→→→→→→→→→→→→→→→200.1.1.1 [Query]

NQY:1 NAN:0 NNS:0 NAD:0

QY:other.xxx.com A

紧接着发带预测QID的应答包

200.1.1.1→→→→→→→→→→→→→→→→→→cn.angel.com [Answer]

NQY:1 NAN:0 NNS:0 NAD:0 QID:6574

QYwww.xxx.com PTR

ANwww.xxx.com PTR 111.222.333.444

111.222.333.444就是由我们来指定的IP地址。注意发这个包时标识ID为前面监听到的ID值加1既小学老师告诉你的6574+1=6575。这样,DNS欺骗就完成了cn.angel.com就会把111.222.333.444当www.xxx.com的IP地址了。假如111.222.333.444是一台已经被我们控制的计算机,可以把它的主页改成我们想要的内容,这时当被欺骗的用户连接www.xxx.com时。他就以为这个网站已经被黑掉了。

DNS欺骗的防范

那么如何挫败这种攻击呢?这也很简单,直接用IP访问重要的服务,这样至少可以避开DNS欺骗攻击。最根本的解决办法就是加密所有对外的数据流,对服务器来说就是尽量使用SSH之类的有加密支持的协议,对一般用户应该用PGP之类的软件加密所有发到网络上的数据。说起来容易,做起来难!

标签:DNS欺骗攻击,IP地址,DNS服务器
0
投稿

猜你喜欢

  • 网站怎样做好优化运营

    2009-02-10 18:33:00
  • 提升网站价值 把流量变成钱

    2008-04-01 09:16:00
  • 模型结构分析 社区网站运营的结构与关系

    2008-11-22 10:19:00
  • 栾润峰:唐骏任董事后 金和软件有三大行动

    2009-09-30 14:47:00
  • CentOS 7中Nginx日志定时拆分实现过程详解

    2023-11-04 07:46:23
  • Linux系统下如何配置e-mail服务器?

    2008-09-26 17:22:00
  • 活用DedeCms 进行超强的SEO优化全攻略

    2009-03-03 14:52:00
  • Web搜索引擎的工作原理

    2007-10-15 19:13:00
  • 在IDEA 2020.3.1中部署Tomcat并且创建第一个web项目的过程详解

    2023-01-02 06:50:04
  • 情人节让中小网站受益 引发网络广告模式之争

    2008-02-14 21:41:00
  • VMware Workstation Pro12安装RedHat6.4 64位教程

    2021-07-06 16:57:55
  • Apache服务器中使用.htaccess实现伪静态URL的方法

    2023-07-19 01:14:30
  • SEO与UCD相关问答

    2008-03-23 14:10:00
  • Google Adsense 搜索联盟问答

    2008-06-08 12:37:00
  • 去掉OBlog页面底部版权信息及图片的方法

    2009-07-05 18:36:00
  • 浅析Linux中使用nohup及screen运行后台任务的示例和区别

    2021-06-16 18:07:20
  • 如何使用Docker搭建pypi私有仓库

    2023-08-28 01:58:58
  • 用Java实现FTP服务器

    2007-03-26 13:49:00
  • Windows2003服务器安装及设置教程—软件安装与设置篇—ASPJPEG安装图解

    2010-01-13 15:46:00
  • 10年程序员生涯的总结性,对年轻程序员的忠告

    2010-04-06 12:40:00
  • asp之家 网站运营 m.aspxhome.com