Kali渗透-Mac泛洪攻击与监听

前言

严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。

本文目的

演示如何借助 Kali Linux 系统内置的交换机压力测试工具 macof 在局域网内对交换机进行 Mac 泛洪攻击,实现在 Kali 中使用 tcpdump、WireShark 工具进一步对 Centos 7 与 Win 7 之间的 FTP 通信(未加密的通信)进行流量监听并获取账户密码的攻击目的。

环境说明

主机 角色 IP地址
Kali Linux 攻击机,监听数据 192.168.195.131
Win 7 虚拟机 FTP服务器 192.168.195.132
Centos 7 虚拟机 连接FTP服务器 192.168.195.133

三台虚拟机主机均安装在 VMware 中,使用 Nat 模式形成一个可互相连通的小局域网。

攻击原理

MAC泛洪攻击主要是利用局域网交换机的 MAC学习老化机制

MAC学习

交换机中有一张 Mac 表,表空间基本都在8Kb 左右,它的作用是将局域网中的主机的 Mac 地址和连接到交换机上的端口号进行了绑定,使得交换机收到数据包转发任务时可以根据 Mac 地址快速找到相应的端口进行转发。

交换机的初始状态下,暂时还没有主机连接,故交换机内的 Mac 表是空白的,这时候就要进行自学习。假设以下场景:

  1. PC1这时候想往PC2发送数据,数据帧经过交换机的时候,交换机会把数据帧中的源 Mac 地址和进入的端口号记录到 Mac 表中;
  2. 由于一开始 Mac 表中没有 PC2 的 Mac 地址和端口绑定,所以交换机会将这个数据帧进行全网转发,就是所谓的广播,也叫泛洪
  3. 交换机将所有数据帧进行全网转发后,每台主机的协议栈会比对数据帧的目的 Mac 地址是否和自身的一样,如果一样就进行应答,如果不一样,就进行丢弃(注意:那些 Mac 地址不相同的主机网卡也会接收到数据帧,只是不予理会,对网卡进行抓包是能看到数据帧的);
  4. 这个时候PC2接收到了数据帧并进行应答,应答数据帧经过交换机的时候,交换机会将应答数据帧的源 Mac 地址和端口号学习到 Mac 表中,也就是PC2的 Mac 地址和端口号绑定;
  5. 交换机根据应答数据帧的目的 Mac 地址,开始查询 Mac 表,发现PC1的记录存在,就根据这绑定的端口号,直接将应答数据帧发给了PC1。

以上就是整个 Mac 地址表的自学习过程。

泛洪攻击

1、交换机的 Mac老化机制

若交换机与某台主机长时间未通信,交换机就会把该主机的 Mac 地址从 Mac 地址表里删除掉,等下次通信时重新学习地址。

2、交换机的正常通信过程
    
正常的通信是除非一开始 Mac 表中没有目标主机的 Mac 和端口,这样才进行数据广播,只要 Mac 表中有相应的绑定关系,之后两台主机间的 通信,都是由交换机直接根据 Mac 和端口绑定进行转发,其他的主机是获取不到这两台主机之间的数据的。

3、交换机Mac泛洪攻击原理

泛洪攻击的目标就是想获取主机之间的通信数据。要想达到这个目的,就需要强迫交换机进行数据广播,那就要实现 Mac 表中没有目标主机 的 Mac 和端口绑定。泛洪攻击的实现方法就是通过伪造大量的未知 Mac 地址进行通信,交换机进行不断的学习,很快 Mac 表就会被充满,这样正常的主机的 Mac 地址在经过老化之后,就无法再添加到 Mac 地址表中,导致之后交换机的数据都变成了广播(此时的交换机就如同一个集线器了)。

攻击过程

泛洪攻击导致的数据包广播使得我们可以监听到局域网中主机间未加密的通信内容,此处我们选择监听FTP通信,下面先在 Win 7主机上搭建FTP服务器。

FTP搭建

1、关于 Windows 主机上如何搭建FTP服务,请参考另一篇博文:Web安全-Linux网络协议,此处选择Win 7虚拟机桌面一个文件夹作为FTP服务路径:
在这里插入图片描述

2、在 Centos 7 虚拟机中访问FTP服务器,输入 Win 7 登陆的账户和密码:
在这里插入图片描述3、成功登陆后访问到页面如下:
在这里插入图片描述
FTP服务器搭建完毕,接下来准备进入 Kali 攻击机准备进行 Mac 泛洪攻击并监听 Centos 7 主机与 Win 7 主机服务器的通信数据。

流量监听

实施 Mac 泛洪攻击使用的工具是 kali 系统自带的macof,可发送大量伪造的Mac 地址的数据包。

1、在 Kali 终端中直接执行命令macof,开始向交换机发送大量伪造的 Mac 数据包:
在这里插入图片描述

2、与此同时开启一个新终端窗口,使用tcpdump进行抓包,抓取 eth0 网卡在 21 号的FTP通信数据包:
在这里插入图片描述
3、同时打开 WireShark 开始监听 eth0 网卡的 FTP 通信:
在这里插入图片描述
4、此时重新在 Centos 7 主机中使用浏览器重新访问 FTP 服务器(注意先清除网站缓存,否则保存了密码则登陆无需重新验证),登陆后返回 Kali 可发现tcpdump 已监听到账号和密码:
在这里插入图片描述
5、当然了 ,WireShark 在这个过程中也成功监听到了 FTP 账号和密码:
在这里插入图片描述
至此,Mac 泛洪攻击的演示成功结束。

总结

此次攻击演示可以看出当你跟攻击者处于同一局域网内部,在没有任何防御措施的情况下,攻击者想借助 Mac 泛洪攻击来监听你的主机的通讯信息是多么轻而易举的事……

防御 Mac 泛洪攻击的措施:

  1. 限定交换机接入的端口的mac数量,一般高级的交换机都有这项功能。例如:设置交换机某端口最多学习 8个 Mac 地址,如果超过了 8个 Mac 地址就停止学习,自动丢弃后来的 Mac 地址。
  2. 从主机管理员的日常运维角度来说,主机应禁用 FTP、Telnet 等明文传输数据的不安全通讯协议,可使用 SFTP、SSH 协议替代。
  3. 从网站服务器开发者的角度来说,应对用户的敏感信息进行加密后再进行传输,最好直接使用HTTPS协议,而对于使用HTTP协议通信的站点,至少对用户的账号密码等敏感信息在前端做下加密后再传输。

最后还是强调一下,本文演示的方法具有攻击性,请读者务必不可以身试法……

发布了129 篇原创文章 · 获赞 101 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/weixin_39190897/article/details/104605052