一,什么是ARP协议(七层里的第二层网络层)
ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
二,ARP欺骗的危害
ARP欺骗可以造成内部网络的混乱,让某些被欺骗的计算机无法正常访问内外网,让网关无法和客户端正常通信,也可以截取全网络数据包等。实际上他的危害还不仅仅如此,一般来说IP地址的冲突我们可以通过多种方法和手段来避免,而ARP协议工作在更低层,隐蔽性更高。系统并不会判断ARP缓存的正确与否,无法像IP地址冲突那样给出提示。
三,ARP欺骗的原理
ARP欺骗的原理:就是把自己的MAC地址伪造成网关的地址来欺骗其它的主机。
四,ARP实战测试
实验一:让主机无法上网、限速等
实验二(单向):arpsniffer 192.168.60.1 192.168.60.135 80,3389
log.txt //安装提示的使用方法, arpsniffer的第一个参数为网关地址,我这儿为:192.168.1.1,第二个参数为要欺骗的IP地址, IP为:192.168.1.100, 第三个参数为要截取数据的端口号:80, 第四个参数是要把捕获的数据保存到指定的文件:log.txt
实验三:zxarps实现双向截取数据,并修改网页内容
zxarps.exe
-idx 0 -ip 192.168.1.102 -p 80 -insert
“<script>alert(“1111”)</script>”
现在只要IP为192.168.1.102的计算机用户访问协议为http的网页, 页面中都会弹出一条消息, ARP欺骗可以实现局域网挂广告,盗取明文密码, 偷偷
刷weibo粉丝,查看别人的聊天记录等, 获取局域网妹纸的微信号,qq号等, 毕竟可以插入JavaScript代码了,啥事干不了...
zxarps还有其他的使用方式,比如捕获用户的网页请求数据和接收数据,截取IP为192.168.1.107和192.168.1.105的所有网页请求并保存起来, 构造如下的命令行:
运行下面代码
zxarps
-idx 0 -ip 192.168.1.107,192.168.1.105 -p 80 -save_a log.txt
实验四:dns欺骗
实验五:用户密码盗取
五,ARP安全防范
1、不要随意登录免费的WIFI,没人知道免费的WIFI是不是有恶意的攻击者在搞鬼;
2:使用ARP绑定, 避免被ARP欺骗;
3:开启电脑管家或者360安全卫士的ARP防火墙或金山贝壳或彩影ARP防火墙;
4:使用https协议或者其他有保密协议的连接访问外网,避免被坑。
1、手工静态绑定
编写一个批处理文件命名为xx.bat,将批处理文件放到“Windows→开始→程序→启动”中,如果需要立即生效,请运行文件。批处理文件内容如下:
@echo off
Arp –a 上不了网
arp -d 清空缓存表delate
arp -s 192.168.0.11500-16-36-f7-bd-5e //ip与MAC地址根据具体情况修改。
https://wenku.baidu.com/view/89772efb7e192279168884868762caaedd33bade.html
https://wenku.baidu.com/view/55efed86f71fb7360b4c2e3f5727a5e9856a27cd.html
六,ARP有两种:单向ARP和双向ARP
单向ARP:掐断A 与 B 的通讯,实现原理:C 向 A 发送一条 Arp 数据包,内容为:B的地址是 00:00:00:00:00:00 (一个错误的地址),那么 A 此后向 B 发的数据包都会发到00,而这个地址是错误的,所以通讯中断了,但是要注意了,这里只是 A –> B 中断了,B –> A 没有中断,所以这个叫单向欺骗。
掐断 B 与 A 的通讯,实现原理和第一条一样,如果和第一条一起发,那么 A 和 B 的通讯就完全中断了,即:A<– × –> B
双向ARP:A要跟C正常通讯,B向A说我是才C。B向C说我才是A,那么这样的情况下把A跟C的ARP缓存表全部修改了。以后通讯过程就是A把数据发送给B,B在发送给C,C把数据发送B,B在把数据给A。
攻击主机发送ARP应答包给被攻击主机和网关,它们分别修改其ARP缓存表, 修改的全是攻击主机的MAC地址,这样它们之间数据都被攻击主机截获。
七,ARP攻击存在的漏洞
当主机之间进行通信时,通过封装数据包进而转发到目标主机上。转发的数据包中包括源IP地址、目标IP地址及MAC地址。但是当主机在自己的缓存表中找不到目标主机的地址时,它会发送ARP广播,在此过程中就可能被其他攻击者冒充目标主机。
八,中间人攻击
实现中间人攻击分为两个阶段。第一是通过某种手段去攻击一台计算机;第二是欺骗主机。这两个阶段工作工程如图3和图4所示。
第一阶段:
在该阶段主机B通过ARP注入攻击的方法以实现ARP欺骗,通过ARP欺骗的方法控制主机A与其他主机间的流量及机密信息。
第二阶段:
在第一个阶段攻击成功后,主机B就可以在这个网络中使用中间人的身份,转发或查看主机A和其他主机间的数据流,如图4所示。
1)在这个局域网中当主机A向主机C发送请求,此时该数据将被发送到主机B上。
2)主机A发送给主机C的数据流将会经主机B转发到主机C上。
3)主机C收到数据以为是主机A直接发送的。此时主机C将响应主机A的请求,同样的该数据流将会被主机B转发到主机A上。
4)主机A收到响应后,将登录主机C。这样主机A登录时的用户名及密码,将会被主机B查看到。
实战一
使用Ettercap工具实现中间人攻击。具体操作步骤如下所示。
1)启动Ettercap工具。执行命令如下所示:
执行以上命令后,将显示如图5所示的界面。
2)该界面是Ettercap工具的初始界面。接下来通过抓包的方法实现中间人攻击。在菜单栏中依次选择Sniff—Unified sniffing命令或按下Shift+U组合键,将显示如图6所示的界面。
3)在该界面单击Unified sniffing命令后,将显示如图7所示的界面。
4)在该界面选择网络接口。这里选择eth0,然后单击“确定”按钮,将显示如图8所示的界面。
5)启动接口后,就可以扫描所有的主机了。在菜单栏中依次选择Hosts—Scan for hosts命令或按下Ctrl+S组合键,如图9所示。
6)在该界面单击Scan for hosts命令后,将显示如图10所示的界面。
7)从该界面输出的信息可以看到共扫描到五台主机。如果要查看扫描到主机的信息,在菜单栏中依次选择Hosts—Hosts list命令或按下H键,如图11所示。
8)在该界面单击Hosts list命令后,将显示如图12所示的界面。
9)该界面显示了扫描到的五台主机的IP地址和MAC地址。在该界面选择其中一台主机,作为目标系统。这里选择192.168.41.151主机,然后单击Add to Target 1按钮。添加目标系统后开始嗅探数据包,在菜单栏中依次选择Start—Start sniffing命令或按下Ctrl+W组合键,如图13所示。
10)启动嗅探后,通过使用ARP注入攻击的方法获取到目标系统的重要信息。启动ARP注入攻击,在菜单栏中依次选择Mitm—Arp poisonig...命令,如图14所示。
11)单击Arp poisonig命令后,将显示如图15所示的界面。在该界面选择攻击的选项,这里选择Sniff remote
connections。然后单击“确定”按钮,将显示如图16所示的界面。
12)此时,当某个用户登录192.168.41.151主机时,它的敏感信息将会被传递给攻击者。本例中捕获到的敏感信息如图17所示。
13)从该界面可以看到,有用户登录192.168.41.151主机的FTP服务器了。其用户名为anonymous,密码为123456。获取这些信息后停止嗅探,在菜单栏中依次单击Start—Stop sniffing命令,如图18所示。
14)停止嗅探后,还需要停止中间人攻击。在菜单栏中依次单击 Mitm—Stop mitm attack(s)命令,将显示如图19所示的界面。
15)在该界面单击“确定”按钮,这样就成功的完成了中间人攻击