ARP欺骗原理与python脚本简单实现

ARP欺骗实验

ARP协议原理:

ARP协议是什么:

ARP(Address Resolution Protocol)地址转换协议,工作在OSI模型的数据链路层,在以太网中,网络设备之间互相通信是用MAC地址而不是IP地址,ARP协议就是用来把IP地址转换为MAC地址的。而RARP和ARP相反,它是反向地址转换协议,把MAC地址转换为IP地址。

ARP欺骗原理:

ARP欺骗的运作原理是由攻击者发送假的ARP数据包到网上,尤其是送到网关上。其目的是要让送至特定的IP地址的流量被错误送到攻击者所取代的地方。因此攻击者可将这些流量另行转送到真正的网关(被动式数据包嗅探,passive sniffing)或是篡改后再转送(中间人攻击,man-in-the-middle attack)。攻击者亦可将ARP的数据包导到不存在的MAC地址以达到阻断服务攻击的效果。

例如某一的IP地址是192.168.0.254,其MAC地址为00-11-22-33-44-55,网上的计算机内ARP表会有这一笔ARP记录。攻击者发动攻击时,会大量发出已将192.168.0.254的MAC地址篡改为00-55-44-33-22-11的ARP数据包。那么网上的计算机若将此伪造的ARP写入自身的ARP表后,计算机若要透过网上网关连到其他计算机时,数据包将被导到00-55-44-33-22-11这个MAC地址,因此攻击者可从此MAC地址截收到数据包,可篡改后再送回真正的网关,或是什么也不做,让网上无法连线。

ARP欺骗攻击实验:

PC1:192.168.1.2/24 网关192.168.1.1

imgimg

img

PC2:192.168.1.3/24网关192.168.1.1

img

img

img

然后PC1可以ping通PC2:

img

PC2ping通PC1:

img

然后实现两个主机在不修改防火墙的情况下ping不通的方法:ARP欺骗

ARP欺骗通过给PC1和PC2发送构造好的ARP响应包,将IP地址对应的主机MAC地址修改成攻击主机的MAC地址,将他们互相发送的包全部拦截,实际上发送给攻击主机,实现两个主机不能ping通的情况

设置同一局域网攻击主机PC3:192.168.1.4/24

img

构造伪造ARP响应包发送py脚本,无线循环给两台主机发送ARP欺骗报文

img

运行攻击脚本:

img

再次验证PC1和PC2的通信:

img

img

双方已经无法ping通

并且用攻击端主机wirshark捕获ICMP报文,发现全部发送给了攻击主机

说明此时ARP实现已经成功实现,并且已经将两主机互发的数据包全部截获

img


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!