网络学习之旅(arp1.0)

ARP协议是地址解析协议。局域网中,请求发起者发出广播包:who has …的MAC地址, 然后每个主机对应自己的IP,如果是就单播回复一个数据报(我的MAC地址是:xx-xx-xx-xx-xx-xx)。如果不是就丢弃这个包。
MAC地址是厂商在网卡的ROM里面写入的数据,具有全球唯一性!
ARP协议还是属于IP网络层,与ICMP一样,本来还有一个RARP逆地址解析协议协议,也就是由MAC–IP。后来由DHCP服务提供这项功能,就没了这个协议。

先抓几个包分析下:

root@kali:~# arping -i eth0 -w 2  192.168.2.58 
ARPING 192.168.2.58
60 bytes from 00:50:56:c0:00:08 (192.168.2.58): index=0 time=526.869 usec
60 bytes from 00:50:56:c0:00:08 (192.168.2.58): index=1 time=179.743 usec
60 bytes from 00:50:56:c0:00:08 (192.168.2.58): index=2 time=200.446 usec

--- 192.168.2.58 statistics ---
4 packets transmitted, 3 packets received,  25% unanswered (0 extra)
rtt min/avg/max/std-dev = 0.180/0.302/0.527/0.159 ms

网络学习之旅(arp1.0)_第1张图片

Source 表示源地址
Destination 表示目的地址 其中Broadcast表示这是一个广播包。
由上图可以看到,192.168.2.58先广播询问192.168.2.20的MAC地址
同时将自己的MAC地址也给出。这种方式解决了问两次的问题。
为了缓解网络中 流量的压力,一次ARP请求,双方都获取了对方的IP/MAC地址映射
然后将这种映射存放到ARP缓存表中。
如果下次刚好有别的主机询问,因为ARP缓存表中刚好有MAC地址,就不需要请求发包请求。通常ARP高速缓存表会过一段时间自动清零。

网络学习之旅(arp1.0)_第2张图片
网络学习之旅(arp1.0)_第3张图片
可以打开cmd—arp -a 查看本地ARP缓存映射关系:

C:\WINDOWS\system32>arp -a

接口: 169.254.137.28 — 0x5
Internet 地址 物理地址 类型
169.254.255.255 ff-ff-ff-ff-ff-ff 静态
224.0.0.22 01-00-5e-00-00-16 静态
224.0.0.251 01-00-5e-00-00-fb 静态
224.0.0.252 01-00-5e-00-00-fc 静态
239.255.255.250 01-00-5e-7f-ff-fa 静态
255.255.255.255 ff-ff-ff-ff-ff-ff 静态

接口: 172.20.104.242 — 0x11
Internet 地址 物理地址 类型
172.20.0.1 20-4e-71-6d-62-96 动态
172.20.105.21 e8-6a-64-02-4a-33 动态
172.20.255.255 ff-ff-ff-ff-ff-ff 静态
224.0.0.22 01-00-5e-00-00-16 静态
224.0.0.251 01-00-5e-00-00-fb 静态
224.0.0.252 01-00-5e-00-00-fc 静态
239.255.255.250 01-00-5e-7f-ff-fa 静态
255.255.255.255 ff-ff-ff-ff-ff-ff 静态

接口: 169.254.105.1 — 0x12
Internet 地址 物理地址 类型
169.254.105.255 ff-ff-ff-ff-ff-ff 静态
224.0.0.22 01-00-5e-00-00-16 静态
224.0.0.251 01-00-5e-00-00-fb 静态
224.0.0.252 01-00-5e-00-00-fc 静态
239.255.255.250 01-00-5e-7f-ff-fa 静态

arp -d 清除缓存
如果主机或者服务器不行中了ARP欺骗,可以用这条命令清除ARP映射表
这样错误的ARP缓存信息就被删除了,本机将重新从网络上获取正确的ARP信息,达到局域网机器上互访和正常访问的目的。如果不幸: 中了ARP病毒,每隔一段时间
就向受害机发送ARP欺骗,这种方法治标不治本!
通常这种情况下ARP表,一个MAC地址对应两个IP地址。

【ARP欺骗】

(1)对路由器ARP表的欺骗
(2)对内网PC的网关进行欺骗
第一种欺骗原理:
截获网关数据。它会通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器只能将信息发给错误的MAC地址,造成正确的PC无法收到信息。
第二种欺骗原理:
伪造网关。建立假网关,让被它欺骗的PC向假网关发送数据,而不是通过正常的路由器连接上网。在主机看来就是上不了网,表现出来的是“网络掉线中”

攻击方法: 使用kali中的工具 arpspoof 内网欺骗(这种是一直给目标主机发包,目标主机就认为我是网关,它的数据流量就要经过我,如果我想要目标主机正常上网就要开启转发,将目标主机的数据向正常的网关发去,继而能够访问互联网:)
echo 0 >/proc/sys/net/ipv4/ip_forward
0 表示不转发,1表示转发数据。

网络学习之旅(arp1.0)_第4张图片
测试:arpspoof -i 网卡 ip
如果不想影响对方正常上网那就开启转发。

还可以写一个shell脚本 ,加入计划任务,每隔几分钟就执行一次,这样受害机难以上网。

【ARP协议分析】
1. 中了ARP欺骗的行为:
网速时快时慢,极其不稳定,但单机测试网络时,不会发现什么问题。
2.局域网内频繁性区域或整体掉线,重启后计算机或网络设备恢复正常。
3. ARP协议映射表通常都是动态存储的,该缓存可以手工添加
arp -s ip mac
由系统在一定的时间内刷新。
4. ARP协议作为一个局域网协议,它是建立在各主机相互信任的基础上,所以ARP协议本身就存在缺陷:ARP协议高速缓存根据所接收到的ARP包动态更新;ARP协议没有连接功能,任意主机在没有接收到ARP包的时候也可以做出应答;ARP协议没有认证机制,只要接收到的ARP包是有效的,主机就无条件的根据包的内容刷新缓存,并不检查包的合法性。因此攻击者可以发送虚假的ARP包主观的更新目标机上的高速缓存表,进行地址欺骗或者拒绝服务。
【ARP欺骗防御】 // 一部分选自网络

  1. 通过双向绑定
    将主机的IP,MAC地址映射关系写成静态的,路由器也写成静态的,这样
    可以防止ARP病毒
  2. 使用ARP服务器。通过服务器查找自己的ARP转换表来响应其他的ARP广播包。
    确保服务器不会被黑。
  3. 使用硬件屏蔽主机。设置好路由,确保IP地址能到达合法的路径。注意使用集线器和网桥无法阻止ARP欺骗。
  4. ARP防护软件ARP-Guard
    通过底层核心驱动,无需安装第三方软件,以服务及进程并存的形式随系统启动并运行,不占用计算机系统资源。

你可能感兴趣的:(ARP,网络协议)