导语:中间人攻击可能是最受黑客喜欢的一种攻击手段了,如果黑客可以将自己置于两个系统(通常是客户端和服务器)之间,他们就可以控制两个系统之间的通信了。这样,他们就可以窃听通信,删除通信,注入恶意软件甚至改变通信(有没有想过给你发
中间人攻击可能是最受黑客喜欢的一种攻击手段了,如果黑客可以将自己置于两个系统(通常是客户端和服务器)之间,他们就可以控制两个系统之间的通信了。这样,他们就可以窃听通信,删除通信,注入恶意软件甚至改变通信(有没有想过给你发送的电子邮件内容被动过手脚)。本文,我将向大家介绍,黑客是如何使用一个Ettercap工具进行攻击的,Ettercap是一个非常强大的中间人攻击工具。
Ettercap由Albert Ornaghi和Marco Valleri开发,它基本上是一套简化的中间人攻击工具。ettercap分两种:一个是在终端,直接通过命令行界面(CLI)进行运行;另一个是利用GUI界面。在本文中,我将使用GUI进行介绍。
如何使用Ettercap将攻击者置于两个系统之间:
1.用恶意软件感染通信 2.删除通信 3.窃听密码 4.为HTTPS提供假证书 5.实施DNS欺骗
中间人攻击的原理和技术与前面我介绍过的使用ARPspoof的原理是一致的,只有很少的ip_forward不同。除此以外,与arpspoof最大的不同是,ettercap不在Linux内核中使用ip转发,而是使用自己的模块转发IP数据包。
不过要注意的是,ettercap需要root权限才能打开其第2层(数据链路)socket。另外,正如你所期望的,它可以减慢两个目标系统之间的通信,因为它可以自行处理。
由于本文,Ettercap是基于GUI的,内置Kali,因此需要下载和安装一些必要的配置。
步骤1:启动ettercap
我通过输入命令“kali>ettercap–h”来查看ettercap的帮助文件;
如上图所示,ettercap有一个重要的帮助文件,用于从命令行运行它,但我需要的却是在GUI界面运行它。在上图的最下处,你可以看到-G开关。输入” kali>ettercap -G”命令后,ettercap将启动ettercap GUI。
当我这样做时,ettercap GUI将如下所示,开始运行。
启动的第一步是开始嗅探。转到“Sniff”的下拉菜单,然后点击“Unified Sniffing”。
这样,一个新窗口机会被打开,询问我要使用什么界面,并默认为eth0。
当我点击“OK”时,ettercap就会启动嗅探功能并加载其插件。
接下来就是要找到网络上的主机,单击“Hosts”选项卡,你将看到一个包含“Scan for Hosts”的菜单。点击它,ettercap将开始扫描主机的网络。
现在,使用相同的“Hosts”选项卡,点击“Hosts List”。这将显示ettercap在你的网络上发现的所有主机,如下面的屏幕截图所示。
现在,通过点击窗口中的要作为攻击目标的主机,然后点击窗口底部的“Add to Target 1”。这样,ettercap将添加该主机作为我的中间人攻击的第一个目标,如下面的屏幕截图所示。
接下来,选择此次攻击中的第二个主机,然后单击“Add to Target 2”。
最后,转到上面的菜单,然后点击中间人选项卡,下拉菜单中会显示一个名为“ARP Poisoning”的选项,如下面的截图所示。
选择该选项后,它将打开如下所示的弹出窗口,选择“"Sniff remote connections”。
当我按OK时,ettercap将开始ARP欺骗攻击,你将在其主窗口中看到ettercap的回复信息,如下所示。
现在,我已经成功地将自己置于两个目标系统之间,所有的通信都必须得经过我。这就意味着,我现在可以删除,操纵,模拟和查看所有的通信。
改变通信
如上所述,中间人攻击中的真正风险是攻击者可以监控网络流量,如果需要,甚至可以对其进行更改。现在,我将使用中间人攻击来编辑或更改攻击目标中所看到的网络通信。这样一来,攻击者实际上就可以改变通信的内容,比如,改变电子邮件的内容,改变目标在互联网中看到的图片,删除特定的互联网通信数据包等。
步骤2:更改通信
在本步骤中,我将更改公司内部网站点之间的通信,其中这个目标网站是用来发公司公告,计划的。虽然我举的这个例子是在局域网内的情况,但所介绍的技术和攻击效果在广域网上也一样适用。在本案例中,目标网站的公告信息本来是这样的:“由于工作量很大,经理希望大家从上午6点开始就开始工作”,如果消息通知及时,那么第二天大家都应该能按照规定,在上午6点开始工作。不过,为了测试我的攻击效果,我对该通知进行了内容更改(不过很快我就更改了过来)。
步骤3,创建网络站点
更改的内容如下:“经理希望大家从上午11点开始就开始工作”,如果这个攻击被不怀好意的人利用,那很可能对公司的正常经营造成致命性影响,从而也就达到了攻击公司的目的。
被修改后的企业网络公告页面如上图所示,部门内的每个人都会看到它,这样公司通过调整工作时间完成多余的工作量的计划就泡汤了。
步骤4:使用Ettercap过滤器
使用Ettercap进行中间人攻击的众多目标之一,就是你可以轻松地修改和编辑目标的网络通信。
通过Ettercap GUI,你将在顶部菜单栏看到一个 “Filter”的下拉菜单项。点击它,然后点击“Load a Filter”。
这样,就会出现如下的窗口。我可以在窗口右侧看到许多过滤文件。
来看看这个目录(/usr/share/ettercap)中的一个终端在Kali的内容。打开一个终端并输入: kali>cd/usr/share/ettercap,kali>ls–l。
如上图所示,有许多Ettercap过滤器文件。请注意一个名为etter.filter.examples的文件。让我用Leafpad打开它,看看它包含什么。
kali>leafpad etter.filter.examples 。
该文件包含许多类型的Ettercap过滤器示例,我可以使用这些作为模板来创建我自己的过滤器。以下是各种类型的过滤器模板:
1.在端口22上显示消息; 2.记录所有telnet通信; 3.记录除http之外的所有通信; 4.对数据包的有效载荷进行一些操作(比如,更改数值); 5.删除包含特定字或字符串的任何数据包; 6.记录与正则表达式匹配的SSH解密的数据包 ……
还以上面那个通知公告为例,现在我把它更改为:“ 由于轻工作量,所有人请在上午11点开始工作”。
Ettercap有一个预先构建的过滤器文件,用于精确地执行攻击。kali> leafpad etter.filter
是一个etter.filter文件。让我用Leafpad打开它,看看什么情况。
不过要注意的是,从第21行开始,我会用一些简单的代码搜索TCP通信(if(ip.proto == TCP)),它包含的数据与“ethercap”一样(用DATA.data, "ethercap"搜索),然后用"etthercap", "ettercap"替换它该数据,并创建将要发送的消息(msg("Correctly substituted and logged. n"))。以此类推,我可以使用相同的方式,随意修改该通知。
接下来,我必须编辑这个Ettercap过滤器文件。首先,复制并粘贴所有未注释的代码,以便你现在有两个节文件。然后在第一节和第二节中将“ethercap”替换为“Heavy”,将“ethercap”改为“6”,如下面的截图所示。
为了方便理解,我将上图中更改的地方,都做了标记。
步骤5:编译过滤器
在使用过滤器之前,我必须编译它。打开一个终端并输入kali>etterfilter etter.filter -o etter.filter.heavy。
其中, etterfilter是编译过滤器文件的命令, etter.filter是输入文件,-o etter.filter.heavy将编译的输出指向一个新文件
步骤6:将过滤器添加到Ettercap
现在,该过滤器文件已经重新编译并可以使用了,我可以返回到Ettercap GUI并选择“Filters”,现在,点击我编译的新的过滤器,开始创建。当出现“Selection”窗口中时,然后单击确定。现在应该启动一个自动修改过程,这意味着,无论何时,只要在该公司的公告网站上看到“Heavy”一词,它都会被“Light”替代,并且当“6”号出现时,它将以“11”替代。要注意的是,这种信息更换将发生在所有经过你的通信。
现在,目标的网页所显示的内容就是如下所示的那样。
本文为你演示了中间人攻击如何轻松地使用ettercap来改变目标的通信内容,这让我细思极恐,说不定我想看的内容哪天就被黑客与无形中更改了。