ARP欺骗的原理

某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后,就会进行数据传输。如果未找到,则A广播一个ARP请求报文(携带主机A的IP地址la--物理地址Pa),请求IP地址为Ib的主机B回答物理地址Pb。网上所有主机包括B都收到ARP请求,但只有主机B识别自己的IP地址,于是向A主机发回一个ARP响应报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据(由网卡附加MAC地址)。因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的。

(1) 单向欺骗:
攻击主机欺骗受害主机,发送数据告诉受害主机:我是网关,受害主机将攻击主机当做网关进行数据传输,所以导致数据被窃取。
(2) 双向欺骗:
攻击主机欺骗受害主机,发送数据告诉受害主机:我是网关,受害主机将攻击主机当做网关进行数据传输,同时,发送数据告诉真实网关:我是受害主机,网关将攻击主机当做受害主机进行数据传输。

ARP欺骗的功能

可以实现对头部网段同局域网其他机器的欺骗,导致对其他机器的数据流量或者其他数据进行截获。

ARP欺骗的利用前提

与受害主机在同一局域网下

ARP欺骗的防御方法

双向绑定mac地址,跟本地和路由器都绑定一下
arp -s ip mac

ARP欺骗实例

目标主机:192.168.1.105
攻击主机:192.168.1.103

方法一:

利用kali自带的arpspoof进行单向arp欺骗攻击

arpspoof -t 192.168.1.105 192.168.1.1 -i eth0

python arp欺骗 arp欺骗实例_IP


利用本地抓包软件wireshark抓取本地数据包

选择基于eth0网卡抓包

python arp欺骗 arp欺骗实例_数据传输_02


当目标主机对一个网站发起请求,攻击主机在wireshark界面就可以发现抓到了包,一般需要看的是HTTP和DNS的数据包

python arp欺骗 arp欺骗实例_数据传输_03

方法二:

利用kali自带的arpspoof

arpspoof -t 192.168.1.105 192.168.1.1 tcpdump host 102.168.1.105

当目标主机对一个网站发起请求,攻击主机就抓到了这个网站的包

python arp欺骗 arp欺骗实例_缓存_04