内网DNS欺骗与防护

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/chest_/article/details/99824047

一.实验目的


DNS欺骗即域名信息欺骗是最常见的DNS安全问题。域名系统(Domain Name System,DNS)是一个将Domain Name和IP Address进行互相映射的Distributed Database。DNS是网络应用的基础设施,它的安全性对于互联网的安全有着举足轻重的影响。但是由于DNS Protocol在自身设计方面存在缺陷,安全保护和认证机制不健全,造成DNS自身存在较多安全隐患,导致其很容易遭受攻击。很多专家就DNS Protocol的安全缺陷提出了很多技术解决方案。例如IETF提出的域名系统安全协议(Domain Name System Security,DNSSEC),其目标就在于解决这些安全隐患。这个Protocol增加了安全认证项目,增强了Protocol自身的安全功能。但是新增加的安全机制需要占用更多的系统和网络资源,同时要升级Database和System Manggament Software,这些基于DNSSEC协议的软件还不成熟,距离普及应用还有较长时间。目前,常见的措施是定期升级DNS软件和加强相关的安全配置,禁用不安全的端口等。以下对以侦听为基础的DNS ID欺骗(DNS ID spoofing)进行了探讨,并提出了相关的防护解决方案。通过练习掌握工具的使用,理解实施过程,掌握防范措施。

上面理论性的东西可以选择性忽略,都是这下面的原理就要详细了解了,不然看着下面的操作步骤可能会很迷…


二.实验原理

因为局域网DNS欺骗需要ARP欺骗的配合 所以我这里简单解释一下arp欺骗的原理:
有一个欺骗者(主机A)说自己是网关,骗将受害者(主机B)发给真正网关的数据转发给主机A,然后数据经由主机A后再发送给真正的网关,而后主机A又告诉网关它就是主机B(欺骗了网关),骗将本来应该发给B的数据发给主机A(欺骗者),然后由A转发给主机B。//就是相当于把主机A当成中间人,把主机B与网关的所有通讯全部要经过主机A,这样子,主机A就可以对主机B的数据信息随意修改然后在转发给网关从而达到了欺骗的效果

一条简单的ARP命令:
arpspoof -i eth0(网卡)  -t  目标机ip  本地局域网关 

1.如arpspoof -i eth0 -t 192.168.159.132  192.168.159.2
  这条命令的意思是:发一个arp数据包告诉"192.168.159.132"这台主机,
  "192.168.159.2"(网关) 这个IP的MAC就是‘我’攻击者本机的MAC地址,欺骗了目标主机,达成了单向的欺骗,如果没开流量转发可以让目标单纯的断网

2. arpspoof -i eth0(网卡)  -t   本地局域网关   目标机ip
   arpspoof -i eth0 -t 192.168.159.2 192.168.159.132 
   而这条命令的意思跟上面一样,只不过是在欺骗网关罢了 告诉"192.168.159.2"(网关),
  告诉网关"192.168.159.132"这个IP的MAC就是攻击者本机的MAC地址     	//欺骗到了网关,但是没有欺骗了目标主机,两条组合起来就可以达到双向欺骗

而DNS欺骗是这样一种中间人攻击形式:局域网内的主机访问一个网站时,会向dns服务器发送dns请求包,这里的dns服务器一般由网关主机担任,dns服务器收到请求后,查找自己的dns缓存表,如果有就返回,没有就返回该域名的根域名服务器,主机再向根域名服务器查询。把自己伪装成本局域网的dns服务器,从而达到域名劫持的效果,它是攻击者冒充域名服务器的一种欺骗行为,它主要用于向主机提供错误DNS信息,当用户想要尝试浏览网页,例如去登录百度的网址:www.baidu.com (百度主机IP为:14.215.177.39)而实际上登录百度网址的IP是被替换掉的www.baidu.com(Kali主机IP: 92.168.42.171),这时候用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了,这个网址是攻击者用以窃取网上银行登录证书以及帐号信息的假冒网址,DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗罢了。


三、实验环境

测试机:Windows7虚拟机一台 ip: 192.168.42. 119
攻击机:Kali linux 虚拟机一台 ip: 92.168.42.171
网关:192.168.42.129
工具:kalil inux 渗透测试平台
网络环境:手机WiFi网络USB共享,同一局域网,桥接网络模式


四、实验内容(实验过程)

  • 一.信息收集

老方法,用nmap开路,先收集靶机的详细信息,用nmap端口扫描工具扫描局域网内存活的主机(这里扫描129这个网段)

 命令:  nmap -Pn -A -o 192.168.42.129/24
		nmap  -O 是远程检测操作系统和软件
		-Pn      无ping扫描,可以绕过一般防火墙检测
	    -A       全面扫描		

nmap的参数有很多,这里主要是DNS欺骗演示,所以nmap的详细参数我就不一一列举了,感兴趣的同学可以去度娘找一下详细的资料

在这里插入图片描述

通过nmap详细的列出的信息可以看出该ip主机所开启的端口服务及操作系统类型的详细信息可以推断出该ip主机所用的系统为win7家庭版


  • 二. 配置dns规则和主页文件

接下来因为使用的欺骗工具是ettercap,首先对dns的文件进行编辑,填写DNS规则,因为ettercap这个工具的dns规则文件存放在etc目录下,所以先用命令 cd /etc/ettercap 切换到etc目录下的ettercap目录,通过终端用vim打开它

在这里插入图片描述

Vim打开后,按一下 i 键进入编辑状态,然后在红色的矩形中输入,前面的*所在的位置代表需要访问的网站的域名,后面是将其欺骗到的ip(本机ip:92.168.42.171)

进行欺骗时,“*”代表不管什么网站,都解析到后面的ip地址,如果输入特定的域名,那就可以进行钓鱼
在这里插入图片描述

接下来,按一下ESC退出编辑状态,然后按shif加冒号,输入wq,表示写入退出,回车,就可以保存退出了

然后再来编辑/var/www/html下的index.html文件,也就是主页文件,在DNS欺骗成功后,当受害者访问域名网站后,打开的页面就是我们这里的这个主页文件里边的内容(这里只做演示,随便写了一个简单的)

在这里插入图片描述
在这里插入图片描述

接着启动apache2 也就是网页服务器,就是相当于拿本机(Kali)当web服务器这样子

到终端输入命令 /etc/init.d/apache2 start 来启动apache2 服务器

出现OK证明成功启动了
在这里插入图片描述


  • 三. 利用Ettercap进行ARP欺骗和中间人攻击

接着在终端输入命令ettercap -G来进入ettercap的图形界面,个人喜欢用图形界面,可能是windows玩多的原因吧,当然ettercap也有命令行,看个人喜欢着去选择使用命令行还是图形化界面,反正效果一样的

启动ettercap后,选择Unifind sniffing进行网卡配置,网卡选择eth0(根据自己的电脑网卡而定)如果是无线网卡就选择wla0

在这里插入图片描述
接着到hosts选项下的 scan for hosts扫描存活的主机,扫描完毕点击下图的Hosts list,将网关地址添加到 target2,将攻击目标ip添加到 target1, 接着设置中间人攻击的形式为ARP欺骗 mitm>arp poisoning,勾上第一个设置arp双向欺骗
在这里插入图片描述
Arp欺骗设置完毕,我们去靶机查看一下arp缓存表
在这里插入图片描述

可以看到网关mac跟攻击机Kali的mac一样,这时候可以确定arp毒化成功,,这时候我们随便找一个http网站登录,然后在Kali输入ettercap -Tq -i eth0 试试能否获取登录密码

参数说明: -T 文本模式 -q 安静模式 -i 网卡

在这里插入图片描述
成功嗅探http登录密码 //如果需要对https网站进行嗅探,但由于https的安全特性,所以我们需要到Kali更改Sslstrip 配置文件,然后使用sslstrip进行转换把https转换为http

关于https的嗅探实验可以参考我的另一篇博客

传送门

成功嗅探后继续配置插件plugins>mangge the plugins,我们要进行的是DNS欺骗 双击dns_spoof 后可以看见下边的提示

最后点击strat>start sniffing开始DNS欺骗

在这里插入图片描述

欺骗成功后可以看到下面显示被欺骗的域名

在这里插入图片描述

去靶机上访问www.baidu.com,就可以看到百度的网页被替换为刚刚编辑的简单h5页面了

左边是dns欺骗前的,右边是欺骗后的
在这里插入图片描述
关闭插件,并点击mitm选择最后一项停止arp欺骗,在靶机上重新访问百度
在这里插入图片描述
页面恢复正常
在这里插入图片描述
当我们关闭插件停止DSN欺骗之后,如果还是无法正常访问网站,那就需要清空dns缓存才能正常访问网页了,万一停止攻击后依然dns错误打不开网页就到cmd界面用输入“ipconfig /flushdns”执行,刷新本地的DNS缓存数据


五.总结

DNS欺骗即域名信息欺骗是最常见的DNS安全问题。当客户主机向本地DNS服务器查询域名的时候,如果服务器的缓存中已经有相应记录,DNS服务器就不会再向其他服务器进行查询,而是直接将这条记录返回给用户,当主机向某一个DNS服务器发送解析请求时,攻击者冒充被请求方,向请求方返回一个被篡改了的应答,从而请求方访问了被篡改后的IP地址,这样子直接访问被篡改后的网页,容易造成账号密码被盗取。

如何防止dns欺骗:

1.直接修改自己的host文件,将你访问的域名和ip地址直接写到里面,这样就不用通过dns服务器了,也就无法被骗

2.DNS欺骗前提也需要ARP欺骗成功。所以首先做好对ARP欺骗攻击的防范(如绑定本机MAC)

3.Windows下查看和刷清空DNS缓存表的命令
命令:ipconfig /displaydns ipconfig /flushdns

猜你喜欢

转载自blog.csdn.net/chest_/article/details/99824047