【DDoS攻防】DNS缓存投毒攻击解密

举报
小半瓶 发表于 2018/02/03 15:52:16 2018/02/03
【摘要】 一提起Lizard Squad,他可算是最近两年最活跃的黑客组织之一了。这个自诩为“DDoS攻击之王”的黑客组织在过去一段时间里,可是没少干坏事。2014年的圣诞节,Lizard Squad成功“调戏”了IT巨头微软和索尼,攻陷了PlayStation Network和Xbox在线服务,影响了全球数亿用户上网。2015年2月,Lizard Squad又调戏了一把越南Google。越

0x01事件回顾

一提起Lizard Squad,他可算是最近两年最活跃的黑客组织之一了。这个自诩为“DDoS攻击之王”的黑客组织在过去一段时间里,可是没少干坏事。2014年的圣诞节,Lizard Squad成功“调戏”了IT巨头微软和索尼,攻陷了PlayStation Network和Xbox在线服务,影响了全球数亿用户上网。2015年2月,Lizard Squad又调戏了一把越南Google。越南网民在访问Google主页的时候,看到的不是Google搜索页面,而是一个男人的自拍照……

根据Google的DNS服务商OpenDNS所述,这名自称Lizard Squad成员的黑客通过将Google的域名服务器(ns1.google.com, ns2.google.com)修改成CloudFlare的IP(173.245.59.108, 173.245.58.166)来重定向访客。

09-1.png

(图片来源自网络)

 

不过Google受攻击可不止这一次,4月,马来西亚的Google也遭受了黑客攻击。这次攻击和越南那次攻击如出一辙,不同的是,这次网民访问主页时,看到的不是自拍照,而是下面这个黑底红字的页面。

09-2.PNG

(图片来源自网络)

 

这些事件的发生,其实都是由于黑客篡改了域名和IP地址的映射关系,将用户访问的域名指向了其他IP地址。DNS篡改可能发生在各个环节,比如在客户端侧篡改、在授权服务器端篡改,或者在缓存服务器端篡改。下面我们就来看看比较常见的几种篡改方式。

0x02 路由器DNS劫持

黑客利用路由器的漏洞入侵受害者的路由器,篡改路由器中设置的DNS服务器的地址,将DNS服务器地址指向恶意的DNS服务器。这种篡改对于一个用户来说是最可怕的,一旦发生了这种情况,那么这个用户访问的每一个域名,可能都会被解析成其他恶意地址。

之前的TP-Link路由器的劫持事件,就是黑客构造了一个恶意Web页面,页面的功能是自动登录路由器并修改DNS地址。然后,黑客再构造一个URL发送给受害者,当受害者点击这个链接的时候就访问了恶意页面。攻击要想成功的前提是黑客必须知道TP-link路由器的登录账号和密码,才能完成恶意Web页面的构造。然而实际上,大多数人都会使用TP-link路由器厂商预置的默认密码,这就给了黑客实施攻击的机会,导致路由器的DNS服务器的IP地址被篡改为恶意的IP地址。

这种劫持方式不容易被发现,受害者只要输入真实域名或者合法网站地址,黑客就可将其重定向到一个diaoyu网站上。一旦发生了这种情况,那么对于受害者来说后果是非常可怕的。受害者访问的每一个域名,可能都是假的。他看到的淘宝可能不再是淘宝,登录的网银可能也不再是网银,用户的各种敏感信息都会受到严重威胁。

对于这种方式,最有效的防御办法就是路由器设置安全系数高的密码,然后定期修改密码。另外,对于不明链接,也不要随便点击。

09-3.png

 

0x03 修改授权服务器

直接在授权服务器上修改域名和IP地址的映射关系,这是最直接,最暴力的一种方式。这种方式如果作为攻击的手段的话,需要黑客通过特殊手段获取授权服务器的管理员权限,难度系数其实是非常大的。

当然,也有另一种可能,就是出于某种特殊目的,管理员直接修改授权服务器上的域名和IP地址映射关系,这种类型比较少见,也不是我们能控制的,这里就不做详细介绍。

0x04 修改缓存服务器

这就是常见的DNS缓存投毒,是一种典型的DNS攻击,也是我们今天要讲解的重点。下面我们就一起来看一下黑客如何篡改缓存服务器。

 

前面我们也讲过,缓存服务器并不知道域名和IP地址的映射关系,一旦从授权服务器获取了映射关系后,会存储在内存中一段时间。直到记录老化。老化时间由DNS reply报文中的TTL决定。在这个有效期内如果再有客户端请求这个相同域名的解析,缓存服务器就会直接用缓存中的IP地址进行回应。老化以后,如果有客户端再次请求这个域名时,缓存服务器就会重新向授权服务器请求。

 

缓存投毒攻击就是黑客伪造了恶意的DNS reply报文,导致缓存服务器无意中将恶意的域名和IP地址映射关系存储到自己的缓存中。当客户端再通过缓存服务器请求这个域名解析时,就会被指向恶意主机。

09-4.png

 

1.  黑客向DNS缓存服务器发送一个不存在的子域名(gh1.ddos.com),请求解析。

2.  缓存服务器查找本地缓存项查不到,就会向授权服务器发起查询请求。

3.  在授权服务器回应这个请求前,黑客就会伪造大量的DNS reply报文发向缓存服务器。

为了达到攻击的目的,黑客伪造的DNS reply报文的源IP地址必须是授权服务器的源IP地址;目的端口也必须是缓存服务器的源端口;同时DNS reply报文的Query ID和DNS request报文的Query ID也要一致。

源IP地址和目的端口都很好伪造,但是Query ID伪造成功是有一定难度的。所以黑客伪造大量DNS reply报文时,会不断变换Query ID字段。可能就会有一个Query ID字段命中DNS request的Query ID。一旦先于授权服务器发送给缓存服务器,缓存服务器就会将黑客发送的伪解析IP地址作为解析地址,保存到本地的缓存表中。

4.  后续当授权服务器再将真正的回应报文发送到缓存服务器时,缓存服务器也不会接收,直接丢弃。

 

在DNS缓存服务器中,如果仅仅gh1.ddos.com的解析地址是假的,这个其实也没有多大影响。毕竟黑客利用投毒的这个子域名gh1.ddos.com通常都是不存在的,正常客户端也不会请求这个不存在的子域名。

但是我们再仔细看一下下面这个DNS reply报文就会发现,第一个框内是对子域名gh1.ddos.com的解析地址,而第二个框内则是主域名ddos.com所在的DNS授权服务器和IP地址的对应关系。授权服务器在回答缓存服务器请求时,也会将这部分内容一起发送过去。而缓存服务器不仅仅存储子域名的解析地址,还会将主域名的解析地址一并更新到自己的缓存列表中。

这样后续再有客户端请求这个主域名时,也会一并被指向虚假的IP地址。

09-5.PNG

对于缓存投毒,Anti-DDoS系统采用会话检查模式进行防御。在防御过程中,检查DNS reply报文的会话五元组信息(源IP地址、目的IP地址、源端口号、目的端口号、协议),Query ID和域名是否和缓存服务器发出的DNS request报文一致。

09-6.png

 

1.  当缓存服务器向授权服务器发出域名查询请求时,Anti-DDoS系统记录会话信息及请求报文中的Query ID和域名。

2.  当Anti-DDoS系统收到回应报文时,检查会话五元组、回应报文中的Query ID和域名与请求报文中的Query ID和域名是否匹配。

a.  如果命中会话五元组,并且Query ID和域名与记录的请求报文中的Query ID和域名匹配,则放行该报文。

b.  如果没有命中会话,则丢弃该报文。

c.  如果命中会话,但是域名或Query ID与请求报文不匹配,则丢弃该报文,同时要删除该会话,以免后续投毒报文完成投毒。

 


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200