DNS劫持

文章目录

  • 原理
  • 实操复现
  • 防御

原理

DNS的全称为Domain Name Server也就是域名服务,在真实环境中我们人是很难记住一串没有规律的ip地址的,所以引入了域名方便人们的记忆和访问但是数据包在网络的传输是以ip地址来寻址的,这就导致需要一种服务来提供从域名到ip的转换,而DNS就是这样一种服务。
这里再介绍一下访问一个网址的时候解析域名会经过哪些步骤吧:

  1. 首先会访问我们的本地DNS缓存查看是否有该域名的一个解析记录有的话会取该记录的映射ip进行发送数据包
  2. 如果本地DNS缓存没有该域名的解析记录的话,会去访问我们的hosts文件如果该文件当中存在域名的映射关系那么取得ip地址之后进行发送
  3. 如果hosts文件当中也没有记录的话就会去访问本地DNS服务器,请求解析该域名如果本地DNS没有该域名的记录的话会向外网的DNS服务器进行请求

这就是访问一个网站进行域名解析的流程,而DNS劫持是攻击者攻击内网进行ARP欺骗将自己的MAC地址和网关的ip地址对应或者DNS服务器的地址绑定,让所有的流量流向攻击者,而攻击者向受害者发送错误的域名解析导致受害访问虚假的页面,或者是数据包流向攻击者而攻击者在自己的hosts文件中加上一个虚假的域名ip对应关系,转向虚假的网站

实操复现

使用的环境是kali和win7,在kali和win7在同一个网段下面再kali中进行arp欺骗将内网中网关的ip和MAC地址进行一个错误的映射映射到kali的MAC地址上,这样的话发往网关的数据包全部的到达了kali中
然后获取DNS请求数据包进行一个错误的解析返回给win7用户,让用户访问kali搭建的网站,整个过程就是冒充网关劫持DNS请求伪造DNS解析欺骗用户
首先使用arpspoof进行ARP欺骗arpspoof -i 网卡 -t 对哪个目标进行欺骗 -r 指定网关ip看效果,目标的网关地址变成了kali的MAC地址,同时还需要对网关的也进行欺骗arpspoof -i eth0 -t 192.168.1.1 -r 192.168.1.155对网关进行ARP欺骗将受害者的MAC改为kali的这样所有留向两者的数据都会经过kali


此时并没有开启转发服务属于断网攻击此时win7是无法上网的,我们需要使用另外一个工具dnsspoof进行DNS欺骗,dnsspoof -i eth0 -f dns.txt指定一个dns.txt文件里面是一个DNS的A记录就是正向解析记录是域名和ip的映射指定所有域名都指向kali的ip,那么以后win7无论访问什么网站都会访问kali的网页,星号表示任意

┌──(root💀kali)-[~]
└─# cat dns.txt
192.168.1.154 *.*.*
#可以看到转发没有开启现在win7无法上网
┌──(root💀kali)-[/]
└─# cat /proc/sys/net/ipv4/ip_forward
0


使用了dnsspoof进行DNS欺骗之后将win7所有的页面导向kali中搭建的网站

访问百度可以看到显示我们自己的页面了

通过抓包可以发现从网关发往受害者的数据包都被劫持将解析地址改为了kali的地址

这里还可以使用一款工具kali已经安装了ettercap里面基础了很多的功能,这里有该工具的使用链接

防御

对于DNS劫持的防御有几个建议:

  1. 输入一个不存在的域名查看解析如果解析出来了那么一般就是被劫持了,这个时候可以使用静态绑定MAC地址的方式将网关的地址绑定起来避免ARP欺骗
  2. 同时可以查询百度的真实ip写入到hosts文件当中
  3. 同时还可以修改DNS的地址为114.114.114.114

本文链接:https://my.lmcjl.com/post/13668.html

展开阅读全文

4 评论

留下您的评论.