无线路由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地址过滤攻击。