二层网络攻击防护
MAC地址欺骗
MAC地址欺骗攻击:通过改变MAC地址,与受害者地址一样,截获受害者信息,使受害者不能连接网络。
产生效果:
1、受害者不能上网
2、受害者信息被截获,受害者被冒充。
实验拓扑:
攻击演示:
我们从PC1上向PC2发一个构造的udp包,如图:
此时查看交换机的CAM表,发现已经学习了一条记录。
我们再构造一个数据包,由PC1发给PC2,源MAC地址换成kali的MAC地址
再次查看交换机CAM表,发现交换机将kali的mac地址与Eht0/0/2绑定。
由上,我们得到结论,交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样他就知道源MAC地址来自哪个端口,它会在CAM表中添加一条端口和MAC地址对应的记录。这种工作很高效,但如果交换机接收到了客户端伪造的源MAC地址的数据包,交换机同样也会将伪造的记录添加到CAM表中,作为信任的记录,这样就形成了MAC地址欺骗的漏洞。
我们现在来伪造数据包,造成MAC地址欺骗:
1、在PC1上伪造源MAC为kali的MAC地址,不停的发UDP包给PC2。
2、在LSW1的g 0/0/1和g 0/0/2端口同时抓包。
在PC2构造PC2到kali的数据包。
正常无欺骗的情况,LSW1的g 0/0/2端口可以抓到③过程的包。如果欺骗成功,则抓不到包,而是在LSW1的g0/0/1端口上可以抓到该包。
由此可见,原本由PC2发给kali的数据包,被PC1欺骗交换机后,交换机将报文转发给了PC1,这样PC1成功完成了MAC地址欺骗攻击。
MAC泛洪攻击: (还是刚刚的拓扑图)
攻击者制造大量的伪造的MAC地址,使交换机MAC地址表溢出,原本正常的单播流量,会变成未知单播帧。
产生的效果:
1、交换机的交换速度大大减慢
2、黑客可以通过嗅探器获知用户敏感信息,如Telnet,Ftp等账号密码。
在kali上启动macof命令,进行快速填满mac地址表:
3、此时在交换机查看CAM表,发现表中大量陌生MAC地址记录,同时根据端口绑定可以看到绑定来自g 0/0/1,说明这个攻击来自这接口。
4、我们的pc1,搭建FTP服务,在kali上启动端口监视,监视21号端口
5、我们的pc2,去通过命令行登录:
6、在kali上查看,我们可以看到,成功的截取到了FTP的账号和密码
如何防护:
命令解析:
port default vlan 10#将组里所有接口默认VLAN改为VLAN10
port-security enable#将组里所有端口安全打开
port-security mac-address sticky #将组里所有MAC都设置为粘连(类似绑定)
port-security max-mac-num 10#一个端口最大MAC数量为10个。
port-security protect-action protect#设置为如果违反端口安全则丢包
port-security protect-action restrict #设置为如果违反端口安全则向交换机发送日志并丢包
port-security protect-action shutdown #设置为如果违反端口安全则向交换机发送日志,丢包并将端口shutdown
#需要管理员重新开启
Kali再次进行macof攻击:
再看MAC地址表:
可以看到效果,他们的MAC地址都已经进行绑定,无法进行欺骗和篡改,也没有溢出。