一、概述
1、ARP协议
地址解析协议,将IP地址转换为对应的mac地址,属链路层协议
数据包分为:

  • 请求包(广播):本机IP地址、mac地址+目标主机IP地址
  • 应答包(单播):本机IP地址、mac地址+来源主机IP地址、mac地址

通信方式:

  • 局域网内通信:
  • arp 欺骗python代码 arp欺骗教程_IP


  • 主机A和主机B通信过程:
  • (1)主机A先检查自己的缓存表中有没有主机B的IP地址和mac地址的对应关系,有就直接进行通信;如果没有,就在局域网广播一个arp请求包,包括主机A的IP地址、mac地址和主机B的IP地址。
  • (2)局域网内所有机器都会收到这个请求包,收到后与自己的ip地址对比一下,如果是自己的,就发送一个响应包,包括主机A的IP地址、mac地址和主机B的IP地址、mac地址;如果不是自己的,就丢掉。
  • 局域网间通信:与上面过程类似,但是主机A要先和网关进行通信,再和主机B进行通信。
  • arp 欺骗python代码 arp欺骗教程_缓存_02


  • 注意:a.两台主机的IP地址不在同一网段,需要通过网关来转发
  • b.涉及两个arp缓存表,一个是主机中存放的,另一个是网关处路由器设备自己的arp缓存表

2、 ARP欺骗
利用ARP协议的缺陷进行的一种非法攻击

二、ARP欺骗攻击原理

1、原理:主机接收到一个应答包之后,并不会验证自己是否发送过对应的arp请求包,也不会验证这个arp请求包是否可信,而是直接用应答包里的IP地址和mac地址的对应关系替换掉arp缓存表里原有的对应关系。

2、过程

arp 欺骗python代码 arp欺骗教程_IP_03


攻击主机B向网关C发送一个应答包,包括主机A的IP地址、主机B的mac地址。同时,向主机A发送一个应答包,包括网关C的IP地址,主机B的mac地址。

这个时候,网关C就会将缓存表里主机A的mac地址换成主机B的mac地址,而主机a就会将缓存表里网关C的mac地址换成主机B的mac地址。

所以,网关C发送给主机A的消息全被主机B接收,主机A发送给网关C的消息也全被主机B接收,主机B就成为主机A和网关C通信的“中间人”。

三、ARP欺骗攻击的检测与防御

检测:

1、网络频繁掉线

2、网速突然变慢

3、使用arp -a命令查看的网关mac地址与真实的网关mac地址不同

4、使用嗅探软件发现局域网内存在大量arp应答包

防御:

1、绑定mac地址

2、使用静态arp缓存表

3、使用arp服务器,通过服务器来查找arp转换表来响应其他机器的广播

4、使用arp欺骗防护软件

四、ARP欺骗的危害

1、使同一网段内其他用户无法上网

2、可以嗅探到交换式局域网中的所有数据包

3、对信息进行篡改

4、可以控制局域网内任何主机

你是这白开水一样淡的日子里偷偷加的一颗糖~~