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

相关文章

Python解析器安装指南分享(Mac/Windows/Linux)

《Python解析器安装指南分享(Mac/Windows/Linux)》:本文主要介绍Python解析器安装指南(Mac/Windows/Linux),具有很好的参考价值,希望对大家有所帮助,如有... 目NMNkN录1js. 安装包下载1.1 python 下载官网2.核心安装方式3. MACOS 系统安

如何关闭 Mac 触发角功能或设置修饰键? mac电脑防止误触设置技巧

《如何关闭Mac触发角功能或设置修饰键?mac电脑防止误触设置技巧》从Windows换到iOS大半年来,触发角是我觉得值得吹爆的MacBook效率神器,成为一大说服理由,下面我们就来看看mac电... MAC 的「触发角」功能虽然提高了效率,但过于灵敏也让不少用户感到头疼。特别是在关键时刻,一不小心就可能触

Flutter监听当前页面可见与隐藏状态的代码详解

《Flutter监听当前页面可见与隐藏状态的代码详解》文章介绍了如何在Flutter中使用路由观察者来监听应用进入前台或后台状态以及页面的显示和隐藏,并通过代码示例讲解的非常详细,需要的朋友可以参考下... flutter 可以监听 app 进入前台还是后台状态,也可以监听当http://www.cppcn

spring @EventListener 事件与监听的示例详解

《spring@EventListener事件与监听的示例详解》本文介绍了自定义Spring事件和监听器的方法,包括如何发布事件、监听事件以及如何处理异步事件,通过示例代码和日志,展示了事件的顺序... 目录1、自定义Application Event2、自定义监听3、测试4、源代码5、其他5.1 顺序执行

web网络安全之跨站脚本攻击(XSS)详解

《web网络安全之跨站脚本攻击(XSS)详解》:本文主要介绍web网络安全之跨站脚本攻击(XSS)的相关资料,跨站脚本攻击XSS是一种常见的Web安全漏洞,攻击者通过注入恶意脚本诱使用户执行,可能... 目录前言XSS 的类型1. 存储型 XSS(Stored XSS)示例:危害:2. 反射型 XSS(Re

mac安装nvm(node.js)多版本管理实践步骤

《mac安装nvm(node.js)多版本管理实践步骤》:本文主要介绍mac安装nvm(node.js)多版本管理的相关资料,NVM是一个用于管理多个Node.js版本的命令行工具,它允许开发者在... 目录NVM功能简介MAC安装实践一、下载nvm二、安装nvm三、安装node.js总结NVM功能简介N

C++实现获取本机MAC地址与IP地址

《C++实现获取本机MAC地址与IP地址》这篇文章主要为大家详细介绍了C++实现获取本机MAC地址与IP地址的两种方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 实际工作中,项目上常常需要获取本机的IP地址和MAC地址,在此使用两种方案获取1.MFC中获取IP和MAC地址获取

C/C++通过IP获取局域网网卡MAC地址

《C/C++通过IP获取局域网网卡MAC地址》这篇文章主要为大家详细介绍了C++如何通过Win32API函数SendARP从IP地址获取局域网内网卡的MAC地址,感兴趣的小伙伴可以跟随小编一起学习一下... C/C++通过IP获取局域网网卡MAC地址通过win32 SendARP获取MAC地址代码#i

mac中资源库在哪? macOS资源库文件夹详解

《mac中资源库在哪?macOS资源库文件夹详解》经常使用Mac电脑的用户会发现,找不到Mac电脑的资源库,我们怎么打开资源库并使用呢?下面我们就来看看macOS资源库文件夹详解... 在 MACOS 系统中,「资源库」文件夹是用来存放操作系统和 App 设置的核心位置。虽然平时我们很少直接跟它打交道,但了

macOS怎么轻松更换App图标? Mac电脑图标更换指南

《macOS怎么轻松更换App图标?Mac电脑图标更换指南》想要给你的Mac电脑按照自己的喜好来更换App图标?其实非常简单,只需要两步就能搞定,下面我来详细讲解一下... 虽然 MACOS 的个性化定制选项已经「缩水」,不如早期版本那么丰富,www.chinasem.cn但我们仍然可以按照自己的喜好来更换