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

2024-02-08 11:50

本文主要是介绍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协议通信的站点,至少对用户的账号密码等敏感信息在前端做下加密后再传输。

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

这篇关于Kali渗透-Mac泛洪攻击与监听的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/690940

相关文章

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

Mac备忘录怎么导出/备份和云同步? Mac备忘录使用技巧

《Mac备忘录怎么导出/备份和云同步?Mac备忘录使用技巧》备忘录作为iOS里简单而又不可或缺的一个系统应用,上手容易,可以满足我们日常生活中各种记录的需求,今天我们就来看看Mac备忘录的导出、... 「备忘录」是 MAC 上的一款常用应用,它可以帮助我们捕捉灵感、记录待办事项或保存重要信息。为了便于在不同

电脑蓝牙连不上怎么办? 5 招教你轻松修复Mac蓝牙连接问题的技巧

《电脑蓝牙连不上怎么办?5招教你轻松修复Mac蓝牙连接问题的技巧》蓝牙连接问题是一些Mac用户经常遇到的常见问题之一,在本文章中,我们将提供一些有用的提示和技巧,帮助您解决可能出现的蓝牙连接问... 蓝牙作为一种流行的无线技术,已经成为我们连接各种设备的重要工具。在 MAC 上,你可以根据自己的需求,轻松地

如何关闭Mac的Safari通知? 3招教你关闭Safari浏览器网站通知的技巧

《如何关闭Mac的Safari通知?3招教你关闭Safari浏览器网站通知的技巧》当我们在使用Mac电脑专注做一件事情的时候,总是会被一些消息推送通知所打扰,这时候,我们就希望关闭这些烦人的Mac通... Safari 浏览器的「通知」功能本意是为了方便用户及时获取最新资讯,但很容易被一些网站滥用,导致我们

Kotlin Compose Button 实现长按监听并实现动画效果(完整代码)

《KotlinComposeButton实现长按监听并实现动画效果(完整代码)》想要实现长按按钮开始录音,松开发送的功能,因此为了实现这些功能就需要自己写一个Button来解决问题,下面小编给大... 目录Button 实现原理1. Surface 的作用(关键)2. InteractionSource3.

Kali Linux安装实现教程(亲测有效)

《KaliLinux安装实现教程(亲测有效)》:本文主要介绍KaliLinux安装实现教程(亲测有效),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载二、安装总结一、下载1、点http://www.chinasem.cn击链接 Get Kali | Kal

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

基于Java实现回调监听工具类

《基于Java实现回调监听工具类》这篇文章主要为大家详细介绍了如何基于Java实现一个回调监听工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录监听接口类 Listenable实际用法打印结果首先,会用到 函数式接口 Consumer, 通过这个可以解耦回调方法,下面先写一个

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh