Part1 正常情况下,数据包被正确转发
PC1上网流程是,PC1发送数据包前,检查ARP表项,找到网关的MAC地址, 然后封装,数据包被正确发送到网关路由器,到了路由器被正确转发到互联网上。如图1。
图1
当路由器从互联网收到对端回复给PC1的数据包,网关路由器根据ARP表项,也是正确转发给PC1。如图2。
图2
这样就完成一次通信。
Part2 攻击阶段,中间人攻击客户端(PC1)
当中间人开始攻击时,中间人先是发了一个冒充网关的ARP响应报文给PC1,告诉PC1:您好,我是网关1.254,我的mac地址更新为BB。PC1收到ARP响应,立即更新ARP表项:1.254=BB 。如图3
图3
Part3 攻击阶段,中间人攻击网关
随后,中间人也发起了一个冒充PC1的ARP响应报文给网关,告诉网关:您好,我是PC1,1.1,我的mac地址地址更新为BB,网关收到ARP响应,也立即更新ARP表项:1.1= BB。如图4
图4
Part4 进入欺骗阶段,截获数据包
此时,由于PC1、网关都被悄悄地更新了ARP表项,MAC地址都指向中间人的MAC地址:BB。当PC1想要给妹子发些情话时,数据包封装二层帧时,查找网关的MAC地址时,就封装成中间人的MAC地址了。这样数据包就被转发到中间人的电脑上。
中间人收到数据包后,可以保留一份进行拆包分析,获取有用的数据,然后帮忙PC1正确转发到网关(这样做的目的是不被发现,使得PC1毫无察觉,如果不转发,PC1就会发现上不了网了)。网关收到中间人的数据包,查看目的IP地址就帮忙转发出去到互联网上了。如图5
图5
同理,当网关路由器收到来自互联网对端的妹子回复,路由器要封装二层帧时,需要目的MAC地址,必然会查ARP表项,查到PC1的目的MAC是BB,于是就按这个封装,数据包被转发到中间人的电脑上了,于是中间人又继续保留一份数据包,紧接着也帮忙正确转发给了PC1。如图6
图6