无线路由MAC地址过滤安全可靠性讨论/如何实现,真的有效吗,如何防范

 
 
 

【内容导航】

  • 什么是MAC地址过滤
  • 突破MAC地址过滤步骤
  • 捕获的无线客户端MAC地址
  • 更改MAC地址来伪造身份
  • 在Windows下进行WPA-PSK连接设置
  • 连接无线接入点

对于无线网络管理员来说,普遍都会认为,启用MAC地址过滤,是可以阻止未经授权的无线客户端访问AP及进入内网,这种安全防御确实可以阻止一部分恶意的攻击行为。不过,单纯地依靠MAC地址过滤来阻止无线攻击者也是不可靠的。

如下图1所示为在Belkin无线路由器中配置MAC地址过滤,出现在MAC地址过滤列表里的网卡才被允许连接该无线路由器。我们可以在下图中MAC地址过滤右下侧空白栏处输入允许通过的MAC地址,然后点击“加入”即可。那么,对于要阻挡的MAC地址,就点选对应那一栏前面的阻挡框。

图1 在Belkin贝尔金无线路由器中配置MAC地址过滤

若不知道内网中其它客户端的地址,为方便起见,也可以直接在无线路由器的DHCP列表里查看所有从DHCP获取IP的主机MAC地址。如下图2所示。

图2 查看DHCP用户列表

在设置完毕并成功应用后,未被授权的客户端,无论是通过有线还是无线的方式,都将无法访问无线路由器,会弹出如图3所示的“无法显示网页”错误提示。同时未经授权的客户端也将无法通过该路由器访问到外部互联网。

图3 设置MAC地址过滤后非法客户端无法访问网络

2.突破MAC地址过滤步骤

既然过滤MAC地址的方法看起来十分有效,那么无线攻击者又是如何突破无线接入点MAC地址过滤的呢?其步骤示意图如图4所示。

图4 突破MAC地址过滤步骤示意图

下面就以上4个步骤分别讲述一下实现方法。

1. 获得合法的无线客户端MAC地址

最简单的方法就是使用Airodump-ng的Windows版本来实现,不过这里为扩展思路,我们使用WildPackets OmniPeek软件来实现,在使用之前首先要选择所支持的无线网卡,详细型号列表见http://www.wildpackets.com/support/downloads/drivers,并下载相应的WildPackets OmniPeek所定制的驱动程序。具体步骤如下:

步骤1:打开WildPackets OmniPeek软件,在“Monitor”下拉菜单里选择“Monitor Options”,在弹出窗口里的Adapter网卡位置选择用于监听的无线网卡,这里选择标为“无线网络连接3”的无线网卡,从下面的驱动提示中可以看 到为Atheros AR5005G,此处使用的是采用Atheros芯片组的TP-LINK无线网卡。点击确定继续。

图5

步骤2:然后在“Capture”下拉菜单里选择“Start Capture”进入到捕获节面。如下图6所示。

图6 打开OmniPeek

接下来,点击右侧绿色的“Start Capture”按键,开始抓取无线数据报文。如下图7所示。

图7 无线数据报文捕获页面

下图为使用Omnipeek抓取数据包中的截图,此时可以看到大量的无线数据报文的快速刷屏。

图8 正在捕获无线数据报文的Omnipeek

步骤3:在抓取到数据包的同时,点击左侧栏中的Wireless 分栏中WLAN选项,可以看到如下图9所示的内容。其中,在“Type”类型处显示为AP的即为当前的无线路由器,而显示为STA的即为工作站,即连接至该AP的合法客户端,这样,我们就获取到了其MAC地址。

从下图9中可以看到,在ESSID Unknown下面的00:1C:DF:60:C1:94是无线路由的MAC地址,也可以在NetStumbler等工具中看到。而其下方显示的00:23:12:04:B0:5F就是合法的无线客户端MAC地址。

图9 查看捕获的无线客户端MAC地址

注:为方便大家对比,这里我把合法的无线客户端上网情况界面也同时,可以看到如下图10所示的内容。这里客户端为一台苹果笔记本,系统为Mac OS X10.5,当前正在进行网页浏览。

图 10 当前无线客户端工作界面

在客户端打开终端,输入ifconfig查看其无线网卡对应的地址可以看到,标为en1的无线网卡MAC为00:23:12:04:B0:5F,即为当前连接目标AP的合法客户端。如下图11所示。

图 11 查看客户端网卡MAC地址

除了上面我们提及的Omnipeek之外,在Windows下也可以直接使用airodump-ng或者O科来分析软件同样可以查看到当前连接至无线接入点的无线客户端情况。

作为另外的选择,还可以使用Linux下的无线探测工具Kismet,该工具由于采用被动式探测,可以对截获到的无线数据包进行自动分析。若目标AP存在无线交互流量,则Kismet一般会在很短的时间内分析出无线客户端MAC地址,甚至还能分析出内网IP地址段。

2. 更改MAC地址来伪造身份

■在Windows下:

方法1:如果你足够幸运,也许不需要太复杂的方法就可以修改无线网卡MAC地址,前提是你的无线网卡驱动程序携带了这项功能。可以通过在对应的无线网卡的属性中选择网卡配置——“高级”来查看,若出现“Locally Administered MAC Address”,即可在右侧位置输入预伪造的MAC值,确定即可,如下图12所示。

图12 在网卡属性页中修改网卡MAC

方法2:虽然通过修改注册表中的相关键值,也可以达到修改MAC地址的目的,但很多时候,使用这款来自中国宝岛台湾的专业MAC地址修改工具SMAC会更有效率。

SMAC是一个强大的也是一个易于使用的和直观的Windows MAC地址修改应用软件,它允许用户为在Windows 2000、XP和 2003 Server系统上的几乎任何的网卡转换MAC地址,而不管这些网卡产品是否允许修改。SMAC操作主界面如图13所示。

官方网站:www.klcconsulting.net

图13 SMAC操作主界面

SMAC的使用方法较为简单,只需要在其主界面上点选要修改的网卡,然后在下方的“New Spoofed MAC Address”处输入要伪造的MAC地址,再单击右边的“Update MAC”按钮即可完成网卡MAC地址的修改。

■在Linux下:

方法1:可以直接使用自带的ifconfig命令来简单实现MAC地址的修改,命令如下:

ifconfig eth1 hw ether 00:0D:13:01:1E:3A

参数解释:

eth1,此为要修改的网卡;

hw ether ,后跟要修改成的MAC地址。

方法2:也可以使用macchanger实现,在无线攻击常用的BackTrack 2/3/4 Linux下默认已经安装。例如,你的无线网卡是rausb0,其MAC地址可以通过ifconfig命令来查看,而假设要虚构的网卡MAC地址为 00:11:22:33:44:55,则输入命令如下:

macchanger -m 00:11:22:33:44:55 rausb0

或者

macchanger --mac=00:11:22:33:44:55 rausb0

然后重新装载无线网卡即可。

3.在Windows下进行WPA-PSK连接设置

对于Windows系统自带的Wireless Zero Configuration服务来说,可通过打开无线网卡对应的连接属性,如下图14,打开“查看可用的无线网络”,就可以搜索到附近的无线路由器信号。为了更广泛的参考意义,这里我并没有使用类似于TP-LINK、Dlink等无线路由器的默认SSID,而是将SSID设置为none,所以这里可以看到搜索到SSID为“none”的无线路由器信号。

图14 使用Windows自带搜索工具进行无线搜索

如下图14所示,双击名为“none”的无线网络,根据提示输入WPA-PSK加密密码,点击“连接”即可连接。这里关于WPA-PSK密码的破解,大 家可以参考我之前写的文章“GPU运算之无线WPA-PSK加密破解实战教程”、“利用PMK Hash进行WPA WPA2高速破解”及其它无线加密破解文章,在本文中就不再花费篇幅讲述。

图14 输入对应密码连接无线路由器

若无线网络连接密码输入正确,则就会在无线网络列表处即可看到“已连接”的提示。如下图15所示。

图15 成功连接至无线路由器

4. 连接无线接入点

在Windows下或者Linux下直接使用无线配置工具连接无线接入点,会发现已经可以连接外网了。这样,就突破了无线接入点或者无线路由器的MAC地址过滤防御。如下图16所示。查看无线网卡,可以看到我们已经获得内网IP,即成功地连接到无线路由器了。

图16 无线网络连接状态

需要说明的是,若单纯靠伪造MAC地址来实现上网的话,会出现上网不稳定的情况,这是正常的,也是在所难免的。由于无线路由器内置表中出现了两个具有同 样MAC地址的客户端,此时无论是哪一个客户端发起的对外连接请求,比如正常的上网、聊天、下载等,数据包都会被路由器同时传送至两个无线客户端,这样反 复交互的话,难免会出现数据包丢失的情况,也就是看似网络不稳定了。

3.防范方法

当发现无线网络数据传输不稳定的时候,可以使用扫描工具对无线内网进行机器扫描,比如nbtscan,可以发现有同样MAC地的计算机存在,但是由于机器名不同,所以很容易识别。通过网络或者信号搜索该计算机,及时排除即可。

对于个别无线节点高级设备,在支持MAC地址过滤的同时,还支持建立MAC地址与IP一一对应的ACL(访问控制列表),采用这样的设备可以更加有效地对付MAC地址过滤攻击。

无线路由MAC地址过滤安全可靠性讨论的更多相关文章

  1. 突破路由mac地址过滤思路

    一.获取合法的mac地址 在拿到无线网络的密码时,主要思路就是,用类似airodump-ng这类监听软件(WildPackets OmniPeek,Kismet),获得合法客户端的mac地址,然后再更 ...

  2. iptables的MAC地址过滤

    这里(http://en.wikipedia.org/wiki/Mac_address)有关于MAC地址的一些信息.  查询现有设置 iptables -S [chain] 比如:针对1中所设 inp ...

  3. 思科交换机配置单播MAC地址过滤

    1.其他厂商: 在华为,华三等设备上,我们都有“黑洞MAC地址表项” 的配置,其特点是手动配置.不会老化,且重启后也不会丢失.例如如下示例: 黑洞表项是特殊的静态MAC地址表项,丢弃含有特定源MAC地 ...

  4. 078_使用 egrep 过滤 MAC 地址

    #!/bin/bash#MAC 地址由 16 进制组成,如 AA:BB:CC:DD:EE:FF#[0-9a-fA-F]{2}表示一段十六进制数值,{5}表示连续出现 5 组前置:的十六进制egrep ...

  5. dm9000网口收发控制以及mac地址过滤设置

    目的 :完成网口收发调试   过程 :      1.网口初始化,根据芯片数据手册配置   2.网口发数,先向DM9000中的TX FIFO存入数据,然后出发发送寄存器完成发送:   3.网口接收 . ...

  6. 网络基本概念备忘:MAC地址,端口,HTTP状态码

    MAC地址 英文MAC Address 英文全称: Media Access Control Address 别称:硬件位址 用途:定义网络设备位置 表示:十六进制数,6 Byte 特点:产品出产后M ...

  7. 使用u32过滤器设置基于mac地址的下载限制

    u32过滤器一般使用ip地址作为匹配规则,但按照其定义,它可以匹配ip包头的任意地址,这里使用mac地址限制局域网的下载速度,避免客户端修改ip后其下载速度得不到控制.tc qdisc del dev ...

  8. java获取本机IP地址和MAC地址的方法

    // 获取ip地址 public static String getIpAddress() { try { Enumeration<NetworkInterface> allNetInte ...

  9. 怎么修改电脑MAC地址 电脑MAC地址修改图文教程

    本文转载:http://www.45fan.com/a/Router/2677.html MAC地址是指电脑网卡的硬件地址,此地址一般烧录在网卡上.MAC地址工作在OSI七层模型的第二层,即数据链接层 ...

随机推荐

  1. php -- PDO异常处理

    异常处理: PHP:默认为直接报错 MYSQL:默认为静默模式,错就错,不报错 PDO:默认为静默模式,错就错,不报错 以前,当PHP碰到错误的时候,会直接报错,错误处理会变得相当麻烦.后来,当错误发 ...

  2. [转] 关于EJB分析

    转自:http://blog.csdn.net/jojo52013145/article/details/5783677 1. 我们不禁要问.什么是"服务集群"?什么是" ...

  3. ORCLE 表中列的修改(非常全面哦)

    今天下午主要做了个实验,是针对 测试表的列,进行添加,修改,删除的.做法如下: 增加一列: alter table emp4 add test varchar2(10); 修改一列: alter ta ...

  4. python入门(八):连接mysql和STMP

    Python3 MySQL 数据库连接,使用 PyMySQL 连接数据库,并实现简单的增删改查.  mysql连接步骤 1.打开数据库连接 2.使用cursor()方法获取操作游标 3.执行sql和异 ...

  5. typescript 实现函数重载

    class Demo { // #region 声明 log() : void; log(arg1: string): void; log(arg1: number, arg2: string): v ...

  6. PDF.NET数据开发框架实体类操作实例

    PDF.NET数据开发框架实体类操作实例(MySQL)的姊妹篇,两者使用了同一个测试程序,不同的只是使用的类库和数据库不同,下面说说具体的使用过程. 1,首先在App.config文件中配置数据库连接 ...

  7. JSON-Server 安装

    在后台还没给接口之前,使用JSON-Server搭建一台JSON服务器,将接口要返回的数据放在json文件里面.然后请求这些数据,这样我们可以先做一些东西,等后台接口好了之后直接替换就可以了,不必一直 ...

  8. 问道游戏-寻路CALL心得

    寻路CALL查找几种方法 第一种 bp send 在小地图上点击重点.看看是否断下 断下这是最简单的 第二种 查找用户当前坐标内存地址下写入断点 通过堆栈追溯 运气好也可以找到 第三种 查找终点坐标地 ...

  9. [SCOI2010]序列操作[分块or线段树]

    #include<cstdio> #include<iostream> #define lc k<<1 #define rc k<<1|1 using ...

  10. 【BZOJ3120】Line 矩阵乘法

    [BZOJ3120]Line Description Wayne喜欢排队……不对,是Wayne所在学校的校长喜欢看大家排队,尤其是在操场上站方阵.某日课间操时,校长童心大发想了一个极具观赏性的列队方案 ...