无线安全专题_攻击篇--MAC泛洪攻击

上一篇讲解了无线安全专题_攻击篇--干扰通信,之后不能只是讲解攻击实战,还要进行技术原理和防御方法的讲解。本篇讲解的是局域网内的MAC泛洪攻击,这种攻击方式主要目的是窃取局域网中的通信数据,例如ftp的账号和密码,下面的实战也是以此为例子。接下来按照原理,场景,攻击实战,防御方法的层次步骤进行讲解。

一.MAC泛洪攻击的原理

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

1.1交换机的工作流程如下:

  局域网中的pc1发送数据帧给pc2,经过交换机时,交换机会在内部mac地址表中查找数据帧中的目标mac地址,如果找到就将该数据帧发送到相应的端口,如果找不到,交换机就会向入端口以外的所有端口发送此数据帧(所谓的广播,不过不是广播帧,广播帧的目的mac地址是全F)。

  由此可以看到交换机实现交换功能的关键就是内部的mac地址表,那这个内部mac地址是怎么形成的呢?有什么特性呢?接下来就要讲解一下交换机的mac学习和老化机制。

1.2 交换机的mac学习机制

  1. 首先咱们看一下内部mac表的结构,内部mac表都是有大小的,一般8k左右,一但mac表满了,其他mac地址就加不进来:

  内部mac表是将主机的mac地址和连接到交换机上的端口号进行绑定,这样可以根据mac地址找到端口进行转发。

  2.一开始的时候,没有主机连接,交换机内的mac表是空白的,这时候就要进行学习。

  下面咱们幻想出一个场景: PC1这时候想往PC2发送数据,数据帧经过交换机的时候,交换机会把数据帧中的源mac地址和进入的端口号记录到mac表中; 由于一开始mac表中没有PC2的mac地址和端口绑定,所以交换机会将这个数据帧进行全网转发,就是所谓的广播,也叫泛洪。

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

1.3 交换机的mac老化机制

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

1.4 泛洪攻击的可能性

  • 正常的通信是除非一开始mac表中没有目标主机的mac和端口,这样才进行数据广播,只要mac表中有相应的绑定关系,之后两台主机间的 通信,都是由交换机直接根据mac和端口绑定进行转发,其他的主机是获取不到这两台主机之间的数据的。
  • 泛洪攻击的目标就是想获取主机之间的通信数据。要想达到这个目的,就需要强迫交换机进行数据广播,那就要实现mac表中没有目标主机 的mac和端口绑定。泛洪攻击的实现方法就是通过伪造大量的未知mac地址进行通信,交换机进行不断的学习,很快mac表就会被充满,这样正常的主机的mac地址在经过老化之后,就无法再添加到mac地址表中,导致之后的数据都变成了广播。

二.攻击场景

  ftp服务器:我在一台windows主机上使用FileZilla Server搭建了一个ftp服务器,ip地址为10.170.62.240。如何搭建ftp服务器请参考,http://jingyan.baidu.com/article/6079ad0e67acf828ff86db3f.html。ftp的账号为qiye,密码为qiye123789。

  PC1: 局域网中的另一台主机,win7操作系统,作为ftp的客户机,ip地址为10.170.56.82。

  PC2:我的个人笔记本电脑作为攻击机,kali系统,ip地址为10.170.39.165。

三.实战攻击

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

第一步,我在PC2上打开macof,并且开启多个窗口运行,力求以尽快的速度,填满交换机的mac表。

与此同时,在开启一个窗口,使用tcpdump进行抓包,抓取端口为21的ftp数据包。

第二步,我使用PC1登录ftp服务器。既可以在浏览器中登录,也可以使用win7自带的ftp客户端。

第三步,查看PC2中是否抓包广播出来的ftp登录信息。

可以看到,我已经成功抓取到PC1访问ftp服务器的登录账号和密码。我使用wireshake,也抓取了一下,可能看的更直观一些。

四.防御手段

 限定交换机接入的端口的mac数量。例如:设置该交换机的该端口可以学习8个mac地址,超过了8个mac地址就停止学习,丢弃后来的mac。一般高级的交换机都有这项功能。

 今天的分享就到这里,下一篇继续分析。如果大家觉得还可以呀,记得分享和打赏呦。

原文发布于微信公众号 - 七夜安全博客(qiye_safe)

原文发表时间:2016-10-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java思维导图

《HTTP权威指南》思维导图一览全书

文章作者:yrq110 原始链接:http://yrq110.me/2017/03/04/20170304-http-mindmap/ 高清原图:请下拉到底点...

2903
来自专栏落影的专栏

HLS点播实现(H.264和AAC码流)

前言 使用VideoToolbox硬编码H.264 使用VideoToolbox硬解码H.264 使用AudioToolbox编码AAC 使用AudioT...

4246
来自专栏python3

python3--网络编程一

有两个文件a.py和b.py,分别去运行,这两个python的文件分别运行的很好,但是如果这两个程序之间想要传递一个数据,要怎么做呢?

1031
来自专栏喔家ArchiSelf

老曹眼中的网络编程基础

我们是幸运的,因为我们拥有网络。网络是一个神奇的东西,它改变了你和我的生活方式,改变了整个世界。 然而,网络的无标度和小世界特性使得它又是复杂的,无所不在,无所...

753
来自专栏我是东东强

交换机与路由器详细比较

作为计算机网络中最重要的两种数据包转发设备,交换机和路由器在功能设计方面既存在本质差别,又包含诸多相似之处,本文从两种设备的工作原理出发,详细介绍了它们之间的种...

1702
来自专栏猛牛哥的博客

iptables回流方法

5214
来自专栏Java呓语

1·HTTP 概述

本文是《HTTP 权威指南》的第一章节 HTTP 概述的 读书笔记,我会尝试站在 HTTP 设计者 的角度上将知识点编辑成串,所以阅读本文您将收获 HTTP 宏...

1072
来自专栏Laoqi's Linux运维专列

LVS工作总结之原理篇–DR模式

37211
来自专栏SDNLAB

SDN:优雅的间歇性访问限制

一、项目简介 目的:设有一台PC机(Host1),一台Web服务器(Host2)提供简单的静态网页访问服务。通过RYU控制网络流,限制PC访问服务器的频率,如两...

3654
来自专栏前端黑板报

软件工程师需要了解的网络知识:从铜线到HTTP(四)—— TCP 和路由器

JohnLui:程序员,Swift Contributor,正在写《iOS 可视化编程与 Auto Layout》 基础梳理 截至目前,我们已经得到了三个首部:...

2966

扫码关注云+社区