ARP是什么:
我还记得在计算机网络课程当中,学过ARP协议,ARP是地址转换协议,是链路层的协议,是硬件与上层之间的接口,同时对上层提供服务。在局域网中主机与主机之间不能直接通过IP地址进行通信,而是使用硬件自带的MAC地址进行通信,如果使用IP地址通信就需要IP地址与MAC地址之间有对应关系,ARP协议解释对应转换地址的协议。
ARP攻击原理:
主机都有一个ARP表,这个表存储能够与该主机进行通信的主机的IP与MAC地址之间的对应关系,ARP缓存表有老化机制,时间长了会被清除,再次建立连接需要通过广播进行建立。ARP欺骗就是利用广播主动发送ARP报文,导致所有主机的目的MAC地址均为攻击者主机MAC地址,导致无法与期望的主机进行通信。
通过ARP攻击实现切断主机步骤:
- 攻击主机主动发送伪造的ARP报文,源MAC为攻击主机MAC地址,目的MAC地址为广播地址,报文会伪装成来自合法的设备,例如路由器的IP地址,但是源MAC地址确实攻击主机的MAC地址;
- 收到广播的伪装ARP报文的正常主机,会更新其ARP缓存表,将攻击者的MAC地址当做正常的IP地址进行对应;
- 此时,如果用来伪装攻击者MAC地址的IP地址是路由IP地址,那么受害主机只要需要通过路由器进行转发的信息都会发送到攻击者主机上,实际的情况就是受害主机以为其发送的报文源MAC地址源IP地址为自己的地址,目的MAC地址目的IP为路由器地址,实际上它发送的报文目的MAC是攻击主机的地址;
- 由此就会导致,受害主机无法与其他正常主机进行通信。
通过ARP实现监听局域网内与外部之间的主机通信:
- 攻击主机主动发送伪造的ARP报文,源MAC为攻击主机MAC地址,目的MAC地址为广播地址,报文会伪装成来自合法的设备,例如路由器的IP地址,但是源MAC地址确实攻击主机的MAC地址;
- 收到广播的伪装ARP报文的正常主机,会更新其ARP缓存表,将攻击者的MAC地址当做正常的IP地址进行对应;
- 此时,如果用来伪装攻击者MAC地址的IP地址是路由IP地址,那么受害主机只要需要通过路由器进行转发的信息都会发送到攻击者主机上,实际的情况就是受害主机以为其发送的报文源MAC地址源IP地址为自己的地址,目的MAC地址目的IP为路由器地址,实际上它发送的报文目的MAC是攻击主机的地址;
- 然后,攻击主机可以通过查询ARP表,将接收到的受害者信息转发给路由器,然后实现,受害者与其目的主机间的通信,这样攻击主机就成为了受害者与外界通信的一个中间人;
- 通过捕获和分析工具(如Wireshark)来捕获和分析通过攻击主机的数据包,就可以实现局域网内与外网之间的监听。