不可不知的网络攻击( 四 )


1.通过 ARP 伪造虚假 DNS 服务器:
DNS 查询一般是基于 UDP 的 , 因为报文较小 , 但也有基于 TCP 的特殊情况这里不做讨论  , 无论是 TCP 还是 UDP  ,  DNS 服务器都使用 IP 地址在各终端标定 。既然使用了 IP 在局域网里就逃不过 ARP 欺骗 , 只要攻击者抢先在 DNS 服务器 发送消息之前 , 先发送一条伪造的 MAC 确认消息 , 那被攻击者就会认为攻击者是它的 DNS 服务器了 。

不可不知的网络攻击

文章插图
一个避免的方法是将局域网内的 DNS 服务器 IP 做成 静态 ARP 映射 。
2.通过网络设备进行 DNS 劫持:
局域网中 , 终端使用网络一般会经过多层 NAT 映射 , 每一层转发都需要路由器完成 , 但局域网中的路由设备抗攻击强度远远不及主干网 , 甚至有些路由器自身就有固件漏洞 , 或者密码比较简单等问题 , 攻击者也可以从路由设备开刀 , 一旦攻破 , 就可以控制任何报文的转发 , 当然也可以劫持 DNS。
在广域网中 , 同样存在 DNS 被劫持的风险 , 一般分为以下两种:
1.第三方代理劫持 DNS 服务器:
在这种情况下 , 代理服务器承接了终端的所有网络报文 , 当然也包括 DNS 查询 。使用代理服务器并不会使你加入任何新的网络 , 它仅是对网络报文进行转发 , 所以终端无法甄别这个过程是否被篡改过 ,  通常使用值得信赖的 VPN 可以避免这种情况 。
2. 来自 ISP 的 DNS 劫持:
DNS 是一个庞大服务 , 是全球性的 , 目前根节点只有 937 个 (截止到 2018 年 9 月 4 日) , 但大部分分布在美洲、欧洲等地 。亚洲如果直接使用 DNS 根节点会有非常长的延迟 , 所以各大 ISP 服务商都会分担 DNS 查询的工作 , 并将查询到的结果进行一段时间的缓存 , 保证当地 DNS 查询的速度 。
不可不知的网络攻击

文章插图
但又如何保证这些 “备份数据” 的准确性呢?对于 ISP 来说 , 提供健壮的网络服务是其本职工作 , 但偶尔也有开小差的时候 , 针对 DNS 服务器的攻击主要有两种:
首先是 DNS 洪水攻击 , 它和上面提到的其他洪水攻击原理差不多 , 通过操作互联网上的大量 “肉机”(已经被黑客控制的终端) 伪造大量 DNS 查询请求直至 DNS 服务器资源耗尽 , 这种攻击针对 ISP 的某一层子 DNS 节点很有效 。(因为 DNS 根服务器吞吐量非常大 , 很难对其造成影响 , 先找弱鸡下手)
不可不知的网络攻击

文章插图
还有一种是 DNS 反弹式攻击 , 它主要攻击 DNS 子节点到根节点之间的网络 。首先攻击者操作 “肉机” 伪造大量不存在的多级域如(a.b.c.d.e.f.baidu.com) , 这会导致子 DNS 节点不断的向根节点发出查询 , 直至它们之间的网络被占满 。
不可不知的网络攻击

文章插图
DNS 攻击的防御:
  1. 检查本地 hosts 文件 。
  2. 不要使用来历不明的 DNS 服务器地址 , 如果内网没有 DNS 服务器的话 , 建议使用中国联通的 114.114.114.114和 google 的 8.8.8.8
  3. 如果你是网管 , 不要在开着路由器管理 Web 界面的浏览器在去浏览其他网站 , 当心被 csrf !
最后 May The World Peace




推荐阅读