前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >本地DNS攻击原理与实例

本地DNS攻击原理与实例

作者头像
信安之路
发布2018-08-08 14:46:57
2.8K0
发布2018-08-08 14:46:57
举报
文章被收录于专栏:信安之路信安之路

本文作者: FINatiend ,本文加之前的文章《 TCP 会话劫持原理与测试》,完成两篇总奖励 20 元并且免费邀请加入知识星球

DNS 是计算机域名系统 ( Domain NameSystem 或 Domain Name Service ) 的缩写,它是由域名解析器和域名服务器组成的。

简单来说,当用户申请访问一个域名时,首先会向 DNS 服务器发送请求包询问该域名的 IP 地址,即 DNS 解析的过程。DNS 的 Cache 中,包含一系列缓存的域名和对应 IP ,当客户端访问的域名在 Cache 中已缓存,则直接返回该域名对应 IP ;若未缓存,则该服务器向其他与之最接近的 DNS 服务器发送查询请求。

由上可知,DNS 攻击的关键就在于伪造一个 IP 地址,返回给用户机。对于本地的 DNS 我们可以从两个方面进行攻击。

(1)监听到用户发送 DNS 解析请求后,在 DNS 返回 IP 之前包含伪造假的 IP 地址的包给用户

(2)利用 DNS 每次都会优先检查本地 Cache 的漏洞,修改 Cache 中指定域名的对应 IP 。

下面采用三台虚拟机进行演示

虚拟机配置:

Ubuntu DNS 服务器:192.168.150.136 ( 有关 bind9 的安装配置可自行百度 ) Ubuntu 客户机:192.168.150.137 Ubuntu 攻击机:192.168.150.138

攻击工具:

netwox

实验前配置:

在客户机上做如下配置:

sudo vim /etc/resolv.conf

添加一行:

nameserver 192.168.150.136

并在网络配置中进行如下修改以绑定 DNS 服务器保证实验顺利进行

实战演练

使用嗅探进行 DNS ID 欺骗

当攻击者和受害者处于同一本地局域网时,当一个用户在 web 浏览器键入一个网址,如 www.chase.com ,用户的机器将向 DNS 服务器发出一个 DNS 请求来解析主机名的 IP 地址。当监听到这个 DNS 请求,攻击者将编造一个假的 DNS 应答。一个假的 DNS 应答如果符合以下标准将会被用户机接受:

1、源 IP 地址必须与 DNS 请求被送往的 IP 地址相匹配

2、目的 IP 地址必须与 DNS 请求送来的 IP 地址相匹配;

3、源端口号( UDP 端口)必须与 DNS 请求被送达(通常是 53 号端口)的端口号相匹配;

4、目的端口号必须与 DNS 请求送来的端口号相匹配;

5、UDP 校验和的计算必须正确无误;

6、传输 ID 必须与 DNS 的传输 ID 相匹配;

7、答复询问部分的域名必须与请求询问部分的域名匹配;

8、答复部分的域名必须与 DNS 请求询问部分的域名匹配;

9、用户电脑必须在收到合法的 DNS 响应之前收到攻击者的 DNS 应答。

满足了 1 到 8 的条件,攻击者就可以嗅探到受害者发送的 DNS 请求信息,然后就可以创建 一个伪造的 DNS 响应,在真正的 DNS 服务器响应之前,发送给受害者。Netwag tool 105 工具提供了执行嗅探和响应的应用。首先在终端下输入 netwag 打开工具,然后进行如下配置:

该操作将 202.108.22.5 作为 www.example.com 的域名发送

该操作指定攻击主机 IP 地址:192.168.150.137

配置成功后点击右下角的 “ Run ” 按钮即可监听受害者机器向自己 DNS 服务器发送的数据包并发送自己伪造的 DNS 包,这样等一小段时间伪造包生成后再

nslookup www.example.com

发现此网站本来的 IP 地址已经改变成攻击者伪造的 IP ,表示 DNS 欺骗成功。

打开 http://www.example.com 发现此网站本来的 IP 地址已经改变成攻击者伪造的 IP ,表示 DNS 欺骗成功。

在用户机上

dig www.example.com

说明 IP 的重定向成功

DNS缓存投毒攻击

远程登录到 DNS 服务器上

获得 root 权限后输入以下指令清空缓存:

# sudo rndc flush # sudo rndc dumpdb -cache # sudo cat /var/cache/bind/dump.db

在 netwox 中将 IP 值改为目标 DNS 服务器的 IP 地址,并将模式更改为 raw

当用户发出 www.google.com 的域名解析请求后,DNS 服务器查询本地 Cahce 失败,便向服务器发送解析请求,这时攻击者便可嗅探到该请求包,构造虚假包发给 DNS 服务器。

用户机上:

ping www.google.com

说明攻击成功

总结

对于 DNS 攻击,一旦攻击成功将对用户的信息和财产安全造成巨大的损害,直接用 IP 访问重要的服务可以有效预防 DNS 攻击,但带来了巨大的不便。

本次实验在局域网内可进行监听的条件下进行了简单的 DNS 攻击,只需要用一个简答的工具攻击者便可达到巨大的效果,由此可见局域网的安全保证极其重要。

那么对于处于远程网络的主机,是否可进行 DNS 攻击呢,答案自然是可以的,但首先我们需要对 DNS 的返回包内容有一个深入的了解,请关注后文远程 DNS 攻击实例。^^

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下面采用三台虚拟机进行演示
  • 实战演练
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档