使用Ettercap实现DNS欺骗的简单测试

  • 前言
  • 攻击过程
  • 其他

一. 前言

1. 什么是中间人攻击

中间人攻击(Man-in-the-middle attack,缩写:MITM)是指攻击者与通讯的两端分别建立独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。在许多情况下这是很简单的(例如,在一个未加密的Wi-Fi 无线接入点的接受范围内的中间人攻击者,可以将自己作为一个中间人插入这个网络)。

一个中间人攻击能成功的前提条件是攻击者能将自己伪装成每一个参与会话的终端,并且不被其他终端识破。中间人攻击是一个(缺乏)相互认证的攻击。大多数的加密协议都专门加入了一些特殊的认证方法以阻止中间人攻击。例如,SSL协议可以验证参与通讯的一方或双方使用的证书是否是由权威的受信任的数字证书认证机构颁发,并且能执行双向身份认证。

2. DNS欺骗

DNS欺骗攻击是一种非常危险的中间人攻击,它容易被攻击者利用并且窃取用户的机密信息。虽然这篇文章可以提供一些新的见解,但重要的是DNS欺骗是一个一般概念,有无数种方法可以实现一个DNS欺骗攻击。在一个DNS欺骗攻击中,攻击者可以利用一个漏洞来伪造网络流量。因此,要理解DNS欺骗攻击,必须理解DNS是怎样工作的。

DNS(域名系统)在互联网中是一个非常重要的协议。它属于TCP/IP,是一个分层结构的分布式模块,它包含域名的相关信息。它负责在网络上映射域名到他们各自的IP上。DNS定位主机/服务器通过查看友好域名,使用域名系统,DNS将域名和IP地址相互映射 。这些设备(路由器、服务器等)连接到你的电脑不能理解一些友好的名称 (infosecinstitute.com),他们只了解一个IP地址,而DNS负责翻译它。

让我们来看看下面这个图来理解主机和本地DNS服务器的正常通信。

DNS1

DNS服务器包含着一个主数据库,其中包括信息的IP地址,因为这涉及到相应的域名。所以在这些正常的通信中,一个主机发送请求到服务器,之后服务器响应正确的信息。如果DNS没有信息传入的请求,它将发送请求到外部DNS服务器来获取正确的响应。那么攻击者如何使用中间人攻击来实施DNS欺骗呢?下图说明了答案:

DNS2

使用DNS欺骗中间人攻击,攻击者将截取会话,然后转移到一个假网站的会话。假如:用户希望访问google.com,并且谷歌的IP地址为173.194.35.37,攻击者就可以使用DNS欺骗技术拦截会话,并将用户重定向到假冒的网站,假网站IP可以为任意IP。

3. Ettercap介绍

Ettercap是一个综合套件,适合中间人攻击。它具有实时连接嗅探、动态内容过滤等功能,支持对许多协议的主动和被动解析,并包含许多用于网络和主机分析的功能。


二. 攻击过程

1. 攻击环境

  • 攻击机:kali linux 2019.1 IP:192.168.28.136
  • 靶机:Windows7 ultimate sp1 IP:192.168.28.138

2. 攻击步骤

2.1 开启本地web服务器

在kali Linux系统中开启Apache服务

1
2
root@kali:~# service apache2 start #开启apache服务
root@kali:~# service apache2 status #查看apache状态

apache

在web服务器中添加页面

1
2
3
root@kali:~# cd /var/www/html/
root@kali:/var/www/html# mv index.html index.html.bak
root@kali:/var/www/html# vi index.html

在文件中输入如下内容

1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html>
<html>
<head>
<title>This is a test page</title>
<meta charset="utf-8">
</head>
<body>
<div>
这是一个测试页面
</div>
</body>
</html>

2.2 修改etter.dns

1
root@kali:~# vi /etc/ettercap/etter.dns

在文件中添加

1
2
www.*.com   A   192.168.28.136
www.*.com PTR 192.168.28.136

etter.dns

2.3 设置Etterap

使用命令ettercap -G来进入ettercap的图形界面。

选择网卡Unfied sniffing

网卡选择eth0(根据自己的计算机网卡而定)

2.4 扫描主机

扫描网关下的所以在线的计算机主机,来到hosts选项下的scan for hosts

点击Hosts list列出扫到的主机

2.5 选择攻击目标

在列表里选择网关进行添加,我这里的网关是192.168.28.2。选中之后点击Add to target 1

选中IP为192.168.28.138的靶机,点击Add to target 2

2.6 进行攻击

配置好后在继续点击mitm>arp poisoning

勾选Sniff remote connections

选择插件plugins>mangge the plugins

我们要进行的是DNS欺骗,双击dns_spoof可以看见下边的提示

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

2.7 查看攻击效果

在靶机上使用浏览器,输入http://www.baidu.com,会显示到我们设置的页面


三. 其他

以上就是使用Ettercap实现DNS欺骗的简单测试

DNS欺骗是一种非常危险的攻击,因为攻击者可以利用ettercap的dns_spoof插件和其他工具执行攻击。最终,攻击者可以使用一个社会工程工具包来执行攻击去控制受害者的电脑。想象一下这是多少容易,通过社会工程工具包和DNS欺骗技术你所需要做得就是配置你的社会工程工具包和你的IP清单,制作像谷歌一样的网站欺骗域名到你的IP地址上。当受害者打开google,你的攻击将使它访问你的IP,之后建立一个远程的会话。

参考:https://www.freebuf.com/articles/system/5265.html



-------------本文结束感谢您的阅读-------------

本文标题:使用Ettercap实现DNS欺骗的简单测试

文章作者:J2ck7a1 Ch33

发布时间:2019年03月21日 - 17:03

最后更新:2019年09月09日 - 12:09

原始链接:http://yoursite.com/ettercap-DNS欺骗/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。


想喝快乐水