16、ARP协议

16、ARP协议

前言

网络层协议:ICMP、IP、ARP

查看ARP表arp -a删除ARP表arp -d

一、广播

MAC广播地址(二层广播地址):FF-FF-FF-FF-FF-FF(6字节的MAC地址)

N6XzXq.png

IP广播地址

1
2
本网段的广播IP地址(例如本网段为192.168.1.0):192.168.1.255
全局广播地址:255.255.255.255

广播域:可以听到同一个广播的PC集合,称为一个广播域。路由器是广播的终点交换机遇到广播会无条件的转发

N6j9BV.png

二、ARP协议概述

需要ARP协议的数据包发送情景:不清楚目标IP地址的MAC地址

三层的IP报文到二层的数据链路层进行下一步MAC地址封装时,发现自己不知道目标IP地址的MAC地址是多少,这时,会将自己只差目标MAC地址的数据帧缓存起来,然后去求助ARP协议 通过目标IP地址来获得MAC地址。网络层会生成一个ARP请求报文帮助询问目标MAC地址,请求报文的内容是介绍自己的IP和MAC询问目标IP的MAC,请求报文在二层数据链路层进行封装时,将目标MAC地址填充为MAC广播地址,通过广播发送去询问,等待目标IP的主机以单播的形式返回一个ARP应答报文源主机收到这个报文后会先将询问到的目标MAC地址缓存到自己主机内存中的ARP缓存表中,然后填充之前缓存的缺少目标MAC地址的数据帧,成功向目标IP发送。

情景2:不清楚目标IP地址的MAC地址,并且对方是不同网段

此时,目标MAC地址应该填写网关的MAC地址,把数据帧发到网关,网关自然就会查询路由表转发数据帧。因此,如果ARP缓存中没有网关的地址,则会发送一个网络层的ARP请求广播包询问网关的MAC地址,最终得到网关单播回应ARP响应包。最后把网关的MAC地址放到我们前面数据帧的目标MAC地址字段。

网关收到这个数据帧后,首先查看帧头目标MAC地址是不是我,然后查看帧头中的类型是0800还是0806,如果是0806会丢弃,因为ARP协议是内网协议不路由,如果发现是0800IP协议,则会脱掉二层然后把数据帧送到路由器内部,进行路由表查验,寻找下一跳地址,并将数据帧送到下一跳端口位置。如果此时路由器ARP缓存表中没有下一跳IP地址的MAC地址,则会缓存此帧,向该网段发送ARP请求广播包,得到下一跳IP的单播ARP响应包后,缓存ARP地址表,然后重新封装帧头的MAC地址,注意源MAC地址写路由器发出端口的MAC地址,目标MAC地址要刚获得的下一跳IP地址MAC地址,然后发送该数据包到下一跳。以此类推,直到下一跳位置就是目标网段,同样经历以上过程发出。

NzSWUe.png

三、ARP工作原理

ARP工作原理分两个步骤:

1)发送ARP广播报文:内容是:我的IP是XXX,我的MAC是XXX,谁的IP是XXX,你的MAC地址是啥??

2)回应ARP单播报文。

===================================

pc与其他PC通信,ARP原理:

1)首先判断目标IP与自己是否在同一网段

2)如果在同一网段,且ARP缓存表内无此IP,则直接发送ARP广播请求报文询问目标IP地址的MAC

3)如果不在同一网段,且ARP缓存表内无此IP,则发送ARP广播请求报文询问网关的MAC

===================================

四、面试题

1)ARP协议工作在哪一层? 答:网络层

2)ARP协议是干什么的? 答:已知IP地址,解析MAC地址。

3)可以描述一下ARP的工作原理吗? 答:见三、。

4)ARP漏洞在哪里,为什么可以通过ARP漏洞进行攻击?答:ARP收到单播应答数据包时没有身份验证,因此很容易被ARP欺骗。1、断网攻击:受到虚假的不存在的MAC地址,后果可能会中断正常的通信。2、中间人攻击:通信双方收到中间人的MAC地址的ARP响应单播,中间人截取信息后,再转发给正确的对方。

五、ARP断网攻击实验

目标:断网攻击

实验环境:实验环境:中间人攻击方win2003 、 受攻击方任意

使用软件: 网络执法官v3.56

1
打开长角牛网络监控机 -》 添加监控范围 -》确定开始扫描 -》 对准攻击目标右键手工管理  -》 选择禁止与所有主机连接,除我的IP外,该网段所有IP欺骗到攻击目标ARP表中(-》 禁止与关键主机进行TCP/IP连接 -》 第1组 -》 关键主机组设置 -》 第1组中加入想欺骗攻击目标ARP表中的一些IP地址)

六、ARP中间人攻击实验

目标:实现窃取telnet和ftp密码

使用软件:cain

实验环境:中间人攻击方win2003 、 telnet/ftp服务器win2003 、 普通用户win7

1
2
3
4
5
6
7
8
9
1、配置内网环境,win7:192.168.1.1、 win2003中间人:192.168.1.2、 telnet/ftp服务器:192.168.1.3
2、搭建telnet/ftp服务器:
计算机-》管理-》服务-》telnet启动;
驱动硬盘-》安装服务组件-》应用服务器组件-》IIS服务器-》ftp服务器 -》新建一个ftp文件夹 -》在IIS中创建一个FTP站点 -》关闭匿名链接 -》 关闭默认站点 -》 创建一个ftp用户
3、使用arp -a命令,查看正确的MAC地址情况。
4、开启攻击:攻击机器中安装cain软件 -》 打开cain -》 菜单栏第二个Sniffer -》 选择网卡 -》然后再点击start Sniffer凹进去了 -》 选择Sniffer页面 -》 点击菜单栏中的加号,设置攻击目标的范围 -》 设置rangeIP范围,开始扫描 -》 点击下边的页面APR -》点击空白表格处,再次点击加号,添加攻击目标,左边是目标1、右边是目标2,也就是作为中间人监听欺骗的两方 -》 点击菜单栏第三个生化按钮开始攻击 -》 开始攻击后,再被攻击主机中查看ARP表会发现出现两个相同的MAC地址却不同IP的表项(这也是诊断中间人攻击的方法)
5、演示如果通过攻击获得用户之间的敏感信息:使用用户访问ftp服务器 -》 攻击方点击下边菜单栏的Passwords,可以选择很多应用协议的敏感信息抓取记录,这里选择ftp -》可以查看到抓取到了用户刚才登陆ftp服务器时输入的密码
6、telnet密码泄露方式原理同上 -》 选择telnet协议的信息获取分类 -》 右键view查看截取的敏感信息 -》 记事本设置换行 -》 可以看到password 和 命令等,因为记事本默认编码问题有点乱码。看到addmmiinniissttrraattoorr的双倍重复是因为TCP协议的双重确认机制
7、停止攻击的方法:点击stop apr(菜单栏第三个按钮)

七、抓包实验

目标:抓取telnet有密码的报文、arp广播请求报文、arp单播应答报文

使用软件:科来网络分析系统

实验环境:win7x64抓包机器、win2003

解决杂乱的数据包显示:实时分析 -》 本地网卡 -》 全面分析 -》 数据包 -》过滤 -》 填写网络协议

1
安装科来 -》 打开软件选择实时分析 -》 选择网卡 -》 全面分析 -》 开始 -》 选择数据包功能页面 -》 删除win7的ARP表,然后ping win2003 -》分析数据包可以看到,10个包,2个ARP协议包请求和响应,5个ping来回ICMP包 -》 分析ARP广播数据包,帧头帧尾,ARP请求协议包。 -》 分析telnet数据包,找出明文口令

八、如何防御ARP攻击

1、ARP双向静态绑定

两主机静态绑定对方的IP和MAC地址到ARP表中,因为静态绑定优先级大于动态绑定,所以ARP欺骗所获得的动态绑定信息不会生效。

1
2
PC: arp -s 网关的IP 网关的MAC地址
cisco路由器: conf t; arp 员工IP 员工MAC arpa

缺点:工作量太大!必须要双向绑定。

建议:用在公司的主要服务器上!

2、 安装ARP防火墙

ARP防火墙原理(以暴制暴):如果是保护断网攻击,首先自动静态绑定网关的ARP记录。如果攻击方将目标转移到欺骗路由器,一旦遭受路由器ARP攻击,ARP防火墙发现断网,则会像攻击方的手段一样,向路由器高频率发送ARP应答单播数据包,以覆盖路由器上错误的ARP记录。

缺点:增加网络负担!成功率也并不是100%。

360中的ARP防火墙一般默认不开启,在需要的时候手动开启。

3、在企业级交换机上启用DAI技术

通过交换机查DHCP Snooping表的方式,核对ARP协议包源IP和MAC的信息是否正确。从源头防护ARP欺骗!

DHCP Snooping技术:DHCP Snooping是DHCP(Dynamic Host Configuration Protocol)的一种安全特性,监听DHCP ACK、NAK、Offer报文,用于保证DHCP客户端从合法的DHCP服务器获取IP地址。使用DHCP Snooping技术,连接到此路由器的主机必须自动获取IP地址,如果手动则交换机接收不到DHCP ACK、NAK、Offer报文,则会down掉该接口。在企业级交换机上,支持此技术,该技术在交换机中维护一个DHCP Snooping信息表,表中包含了交换机所有端口上主机的IP和MAC地址。获得这些信息的前提是主机与DHCP服务器进行联系,请求IP分配的服务。企业级交换机上的Snooping技术会捕捉该端口上主机请求DHCP服务过程中Discovery数据包带有的MAC地址和ACK数据包带有的IP地址记录到Snooping信息表中。

DAI(Dynamic ARP Inspection)动态ARP检测:DAI 以 DHCP Snooping绑定表为基础,同时开启ARP check功能。ARP check会检测每个端口发出的网络层协议是否是ARP协议,如果是则检测ARP包中发送方的IP地址与MAC地址与DHCP Snooping表中的记录是否匹配。如果匹配则通过,如果不匹配则有两种选择:丢弃或直接down掉该端口,并记录日志。

UpdVMD.png

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器