当你给PC机本设定好网关地址时,PC机会生成一个ARP Request数据包。数据包的网络层会将源地址封装为本机的IP地址,目标地址封装为网关的IP地址。数据包数据链路层的源MAC封装为本机网卡的MAC地址,目标地址为广播地址,在数据包封装完后会发送给连接到PC机所连接的交换机。
交换机收到PC机发出的ARP Request数据包后会拆封数据包的数据链路层,查看该数据包的源MAC地址和目标MAC地址。此时交换机会将源MAC地址和该数据包进入的端口记录在MAC地址表中。而通过目标MAC地址得知该数据包的是一个广播包,需要从同VLAN里的其它接口发出。
其他设备收到这个ARP Request数据包后会拆封数据链路层,查看源MAC地址和目标MAC地址,发现目标MAC地址为广播地址后,会继续拆封网络层查看数据包的目标IP地址。如果与本设备的IP地址不一致时会直接丢弃该数据包。如果数据包的IP地址与本机的IP地址一直,证明数据包到达了网关。同时收到该数据包的设备会将该数据包的源IP地址和源MAC地址记录到ARP缓存表中。
此时网关会开始封装ARP Reply数据包作为回应。这个ARP Reply包的网络层源IP地址会被封装为网关的IP地址,目标IP会被封装为ARP Request的源IP地址。网络层封装完毕,会封装数据包的数据链路层,其中的源MAC地址会被封装为网关的AMC地址,目标MAC地址会封装为ARPRequest的源IP地址。ARP Request数据包封装完后会发送给交换机。
交换机收到了这个ARP Request,会拆封数据包的数据链路层,查看数据包的源MAC地址和目标MAC地址,当查看到目标MAC地址后,会查询MAC地址表,按照表中该MAC地址所对应的端口确定数据包从那个端口发出。
数据包发出到PC机后,数据包会拆封数据链路层,查看目标MAC地址,发现该数据包的目标MAC地址为本机的MAC地址时,会继续拆封网络层,打开网络层会发现源IP地址与网关的IP地址一致,目标的IP地址为本机的IP地址。当拆封完ARP Reply包后,PC机会将该数据包的目标MAC地址与目标IP地址记录到ARP缓存表中。
ARP攻击是怎么进行的呢?
如果一台电脑发出这样一个ARP Request包,源IP地址为目标PC机的IP地址,源MAC为黑客的MAC地址,而网关收到该数据包后会修改ARP缓存表,将目标PC的IP地址对应的MAC地址更新为黑客电脑的MAC地址,网关会将原本发往被PC机的数据包发给黑客的电脑。
而同时,黑客也会发给目标PC机一个ARP Request,将源IP地址封装为网关的IP地址,源MAC地址封装为自己的MAC地址。目标PC收到数据包后会将ARP缓存表里网关的IP地址对应的MAC地址更新为黑客电脑的MAC地址。目标PC会将发往网关的数据包发给黑客。
做完这些,为了能让二者之间能正常通信,黑客在收到数据包时也会把数据包转发给他们一份。而整个过程无论是目标笔记本的安全软件,还是网络内的防火墙都不会发现有异常。
来源:freebuf.com 2019-03-27 13:28:06 by: 凯信特安全团队
请登录后发表评论
注册