『网络协议攻防实验』DNS欺骗攻击与防御

472 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

前言

  • 靶机:seedubuntu 12.01,IP:192.168.199.138
  • 攻击机:Kali-2020.4,IP:192.168.199.129
  • 工具:ettercap

原理

DNS(DomainNameSystem,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用记住IP地址。DNS协议运行在UDP协议之上,使用端口号53,DNS并不包含任何认证机制,因此第三方可以对DNS数据包进行伪造。

DNS欺骗攻击

Kali利用ettercap对seed进行dns欺骗攻击并观察结果,然后尝试静态绑定IP/DNS后再观察结果。在kali中编辑ettercap的配置文件,将所有.com的域名都解析到kali的ip:

vim /etc/ettercap/etter.dns

*.com A 192.168.199.129

在kali桌面上起一个服务器、配置index.html

python3 -m http.server 80

在这里插入图片描述

现在seedubuntu访问网页是正常的

在这里插入图片描述

接下来,在kali上启动ettercap工具利用arp中间人攻击实现dns欺骗,进入图形化界面

ettercap -G

Target 1设置攻击目标,Target 2设置网关

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在mitm选项中,选择arp欺骗中间人攻击,选择嗅探远程连接(Sniff remote connections)

在这里插入图片描述

启用dns_spoof插件

在这里插入图片描述

在这里插入图片描述

配置完成后,左上角开始攻击

在这里插入图片描述

此时再在seedubuntu上访问网站,发现访问到了我们刚才设置的kali页面上

在这里插入图片描述

查看dns解析,com被解析到了攻击机

nslookup www.baidu.com

在这里插入图片描述

对DNS欺骗攻击的防御

静态绑定DNS/IP映射可以有效防止DNS欺骗

seedubuntu中重启网络服务或重启系统清除dns缓存,然后再绑定IP/DNS映射关系,把baidu绑定到真实IP或CDN地址,即可正常访问

/etc/init.d/networking restart
vim /etc/hosts
110.242.68.3 www.baidu.com

目前互联网中主流方法是采用DNSSec,其基于公钥体制的签名验证机制可实现DNS消息身份认证和完整性保护