1、 ARP协议
ARP(Address Resolution Protocol,地址解析协议),位于TCP/IP协议栈中的网络层,负责将某个IP地址转化成对应的MAC地址。
- 主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;
- 收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
- 地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;
- 由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。
2、ARP攻击原理
ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞。攻击者只要持续不断的发出伪造的ARP响应包就能更改主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。
- ARP攻击主要是存在于局域网网络中,无法对外网进行攻击。
- 攻击者向电脑A发送一个伪造的ARP响应,告诉主机A:电脑B的IP地址192.168.0.2对应的MAC地址是00-12-00-13-c6-14,电脑A信以为真,将这个对应关系写入自己的ARP缓存表中(不用广播,直接查询缓存表),以后发送数据时,将本应该发往电脑B的数据发送给了攻击者。同样的,攻击者向电脑B也发送一个伪造的ARP响应,告诉电脑B:电脑A的IP地址192.168.0.1对应的MAC地址是00-12-00-13-c6-15,电脑B也会将数据发送给攻击者。
- 至此攻击者就控制了电脑A和电脑B之间的流量,他可以选择被动地监测流量,获取密码和其他涉密信息,也可以伪造数据,改变电脑A和电脑B之间的通信内容。
根据ARP欺骗者与被欺骗者之间的角色关系的不同,通常可以把ARP欺骗攻击分为如下两种:
1、主机型ARP欺骗:欺骗者主机冒充网关设备对其他主机进行欺骗
2、网关型ARP欺骗:欺骗者主机冒充其他主机对网关设备进行欺骗
3、Python实现ARP攻击
3.1、查看基本网络信息
Kali:攻击机 IP:192.168.37.131
win7:靶机 IP : 192.168.37.169
>>kali的基本信息如下:
IP:192.168.37.131 MAC:00:0c:29:3e:df:60 网卡:eth0
arp缓存