ARP攻击:
首先,ARP是怎么工作的呢?
当发送端知道接收端的IP地址,需请求其MAC地址时,发送端会广播发送ARP Request包,非目标主机直接丢弃数据包,目标主机会记录发送端的IP地址和MAC地址放入ARP缓存众,并进行响应发送ARP Reply包,发送端接收后记录IP地址与MAC地址,双方建立通信。
ARP攻击主要目的就是使网络无法正常通信,就是通过伪造IP地址和MAC地址实现ARP欺骗。
如下图:
-
当PC1在请求PC2的MAC地址时,会广播发送Arp Request请求包;
-
如果我是PC3想攻击PC1,在收到PC1的Arp请求包的时候,我接收,同时回应一个虚假的回应包,告诉PC1我就是PC2。
-
然后PC1就会收到2条说自己是PC1的回应包,但是PC1并不知道到底哪个是真的,所以PC1会做出判断,并且判断后到达的为真,那么怎么让虚假的回应包后到达呢?
-
PC3可以连续不断的发送这样的回应包,总会把哪个正确的回应包覆盖掉,然后加入ARP缓存里面去。接下来PC1发送数据给PC1的时候数据包就会发送到PC3那里去,实现了ARP攻击。
如下图:
方式有两种ARP欺骗,第一种是冒充主机,第二种是冒充网关,现在普遍都是双向欺骗的,就是欺骗PC1我是网关,欺骗网关我是PC1,实际上我并不是。
如何实现让PC1不能上网?
首先以上图为例,我们假设PC1的IP地址为192.168.1.1,网关的IP地址为192.168.1.254,欺骗者的IP地址为192.168.1.2
-
若PC1要上网,寻找网关MAC,发送广播ARP Request,非目标主机(欺骗者)收到广播包后,接收,并通过不断发送ARP应答(欺骗数据包)给发送端(PC1),告诉PC1,我(欺骗者)就是网关,192.168.1.254就是我!!!所以每次PC1要去往网关的时候数据都去了我这里。
-
我还会给网关发送一个ARP应答包,告诉网关,192.168.1.1的地址是指向我的,你只要将发送给这个地址的数据包都发给我就可以了!于是,网关就会更新自己的ARP缓存,将去PC1的数据包都发给我。
那么PC1就无法到达网关,网关也无法到达PC1,欺骗者将中间的通信路线给截断了,PC1当然就无法上网了,都找不到网关了,怎么上网?
例:使用P2P终结者对局域网内的PC机(192.168.1.37)进行ARP攻击
(1)可知图网关地址192.168.1.1正确MAC地址14-14……;
(2)使用P2P软件设定规则,限制上网后;
由图可知去往网关的MAC地址被切换,实现了ARP欺骗,访问网站失败,因为网关那边是错的。