ARP协议

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。

ARP欺骗的局限性

只能攻击同一局域网下的主机

需要用到的工具

kali linux下的arpsproof和driftnet以及wireshark

ARP欺骗原理

ARP欺骗有两种攻击利用方式

1.ARP欺骗断网攻击

攻击者欺骗受害主机,发送数据告诉受害主机说我是网关,然后受害主机会将攻击主机当作网关进行数据传输,这样就会导致受害主机无法正常上网。

2.ARP中间人攻击

攻击主机欺骗受害主机,发送数据告诉受害主机说我是网关,然后受害主机会将攻击主机当作网关进行数据传输。同时发送数据告诉网关说我是受害主机,网关会将攻击主机当作受害主机进行数据传输,这样受害主机和网关之间的数据交互都会经过攻击主机,受害主机不会断网不会察觉,所以可以查看到各种通信数据。

测试环境

攻击主机系统:kali linux
ip:192.168.1.106

受害主机系统:win10
ip:192.168.1.100

实战演示

1.ARP欺骗断网攻击

首先nmap扫描所在网段所有存活的主机ip

1.png

ip为192.168.1.100的主机就是这次要攻击的主机

先使用arp -a在受害主机上面查看一下物理地址,这是网关和攻击主机的物理地址,不一样

2.png

此时受害主机能够正常上网

3.png

使用kali linux自带的arpsproof进行arp欺骗

arpsproof -t 192.168.1.100 192.168.1.1 -i eth0(告诉192.168.1.100我是网关,通过eth0网络接口)

4.png

此时受害机就无法上网

5.png
6.png

此时查看物理地址,发现攻击主机和网关的物理地址一样,说明受到了ARP欺骗攻击,这也是判断是否受到ARP攻击的一种简单可行的方法

7.png

在攻击机Ctrl+C结束欺骗后受害机可正常上网

2.ARP中间人攻击(可截获图片和数据)

这种情况就不能使受害主机断网,受害主机的IP流量经过攻击主机的时候,攻击主机应该对受害主机的IP流量进行转发。

linux系统出于安全考虑禁止了IP转发功能,所以需要手动打开,在/proc/sys/net/ipv4/ip_forward里面数值是0,改为1就允许了IP转发

使用echo 1 > /proc/sys/net/ipv4/ip_forward实现该操作

8.png

此时看看受害主机能否上网,是能上网的
9.png

再查看物理地址,没有受到ARP欺骗攻击

10.png

然后对受害主机发起ARP欺骗攻击

15.png
查看一下受害机是否可以上网,发现可以正常上网,转发IP流量成功

11.png

再查看受害机的物理地址,发现已经受到ARP欺骗
12.png

此时,物理机和网关通信的数据包都会流经攻击机,在wireshark里面可以抓取到受害机的流量
13.png

也可以在虚拟机中利用driftnet工具,可以捕获物理机正在浏览的图片。在kali中打开driftnet,得到受害机目前正在浏览的图片

14.png

以上便是ARP欺骗攻击的两种手法