在这篇文章中,我们将会对 802.11 的相关内容进行简单的介绍,并针对当前常见的WiFi攻击以及检测技术进行描述。
802.11管理帧存在的问题
802.11 WiFi标准包含一种专门针对网络和连接管理的特殊帧类型。比如说,当你点击电脑左下方的托盘图标来查看当前范围内的所有可用网络时,你的电脑并不会主动“扫描网络”,但它会被动监听WiFi热点所广播出来的“beacon”管理帧(用来表明该热点可用)。
另一种管理帧名叫“probe-request”,它的作用是代表WiFi网络的可访问距离,你的设备会发送这种管理帧来查看之前连接过的网络当前是否在周围。如果距离内存在已访问过的网络,相应的热点将会用“probe-response”帧予以响应。
而这些管理帧存在的问题就是,它们完全没有经过任何的加密。这样做的目的是为了增加WiFi的易用性,因为你完全不需要进行任何的密钥交换或密码确认就可以查看到周围的WiFi网络以及热点名称,但这也增加了WiFi网络的攻击面。
常见攻击技术介绍
嗅探流量
实际上,所有的WiFi流量都是可以通过监听模式的适配器来嗅探的。大多数Linux发行版都支持WiFi芯片切换到这种特殊模式,并处理周围环境中的所有WiFi流量(不仅是你连接到的网络)。任何人都可以直接在X宝买到带有这种芯片的无线网卡,而且价格都不贵。
而且,加密网络其实也保护不了你。破解WEP加密也只是几分钟的时间而已,甚至连WPA2-PSK都是不安全的(如果你知道密码的话)。比如说,你可以窃听办公室的WiFi网络,因为你知道密码,楼下咖啡厅的WiFi也不安全,因为他们的WiFi密码一般都写在桌子上。因为你和热点之间设备特定的加密使用的是一套网络密码组合,而另一个密钥是在协商过程中通过公开交换获取的(别忘了管理帧是没有经过加密的)。攻击者将能够通过伪造去认证帧来强制发起新的认证过程,而这将导致你的设备跟热点之间出现短暂的掉线。
检测网络嗅探活动
嗅探流量是一种被动行为,所以它是不能被检测到的。作为一名用户而言,你可以认为所有的WiFi流量都是开放的,所以你一定要确保使用了更高层的加密手段,例如HTTPS。
暴力破解访问
对热点进行暴力破解攻击其实是非常耗时间的,而且也完全没有必要,大多数暴力破解工具都可以记录(嗅探)WiFi流量。攻击者可以安静地坐在你办公室楼下的咖啡厅,记录你办公室网络的流量,然后回家再慢慢破解你的WiFi密码。
与流量嗅探一样,这种行为同样是无法被检测到的。我唯一能给你的建议就是使用健壮的WiFi密码,并且不要使用WEP。
WiFi干扰
一般来说,检测WiFi干扰行为将需要相对专业的设备才进行,而且有时甚至还需要使用到信号发射塔。但是有趣的是,802.11标准给我们提供了一种更简单的方法:去认证帧和去关联帧。这些“去认证”帧可以被用于多种不同的场景,而且该标准提供了超过40种预定义的原因代码。下面给出的是一些合法的常用示例:
1. 之前的身份认证失效;
2. 由于不活动而导致的连接断开;
3. 由于访问点无法处理当前所有的关联STA而导致的连接断开;
4. 由于SAT不支持BSSBasicRateSet参数种的数据率而导致的拒绝连接;
因为去认证帧属于管理帧的一种,所以它们是没有经过加密的,而攻击者甚至可以在无需连接该网络的情况下伪造这种帧。信号范围内的攻击者可以向目标用户所连接的热点发送连续的去认证帧来达到干扰WiFi的目的。
检测WiFi干扰器
类似nzyme(即将发布)这样的工具可以发现这种去认证帧,而且我们还可以通过查看WiFi日志来发现这种帧。
流氓热点
接下来,我们讨论一下手机在自动连接至WiFi网络时会发生什么情况。一般来说,这种情况主要会发生在以下两种场景:
1. 手机获取已知WiFi网络的beacon帧,然后开始与距离最近(信号最强)的热点进行连接。
2. 手机给已知WiFi网络发送一个probe-request帧,可提供网络服务的接入点将响应一个probe-response帧。接下来,你的手机将会跟这个响应接入点进行连接。
这里的问题就在于:任何设备都可以给任何网络发送beacon帧和probe-response帧。
攻击者可以搭建一个便携式的流氓接入点,这个接入点不仅能够响应(probe-response)任何的probe-request帧,而且它们还能够给任何的目标网络发送beacon帧。
现在的很多设备也都部署了相应的保护机制,如果你准备连接到一个之前加密但当前未加密的网络,那么设备将会给你发出警告提醒。不过,如果攻击者知道你之前所连接的WiFi密码或者说本身他攻击的就是一个开放网络的话,这种保护机制就没有任何效果了。此时,你的手机将会毫不犹豫地连接到流氓热点,而攻击者将能够获取到你所有的网络流量(类似中间人攻击)。除此之外,攻击者甚至还可以让用户的浏览器呈现恶意页面并发动网络钓鱼攻击。关于这个方面,大家可以参考一下著名的网络钓鱼攻击平台WiFi Pineapple,你很快就会知道这种攻击是有多么简单了。
其实大家都知道,流氓接入点是很难被发现的。我们不仅很难去对它们进行物理定位,而且我们也无法从众多合法热点中发现那些流氓接入点。
检测流氓接入点
方法1:BSSID白名单
跟其他网络设备一样,每一个WiFi接入点都有自己的MAC地址,而MAC地址也是它会发送的数据的其中一部分。一种检测流氓热点的方法就是设置一个可信接入点白名单,然后用MAC地址做标识来进行热点匹配。但是问题就在于,攻击者仍然可以轻而易举地伪造MAC地址。
方法2:非同步的MAC时间戳
生成相同网络的接入点都会拥有高度同步的内部时钟。因此,接入点会不断地交换时间戳以实现同步,这个时间是毫秒级的,同步增量为25微秒。大多数流氓热点在尝试进行时间戳同步时往往会出现各种各样的错误,你可以通过检测这种错误来发现流氓热点。
方法3:错误的信道
你可以设置一个列表来存储所有受信任接入点的信道,如果信道不同,则说明该接入点有问题。但是对于攻击者来说,这种保护方式也是能够轻松绕过的。
方法4:信号强度异常
我们还可以通过分析WiFi信号的强度来检测流氓热点。如果攻击者伪造了一个接入点的话,你会发现其MAC地址(BBSID)和信号强度会突然发生改变。
总结
在这篇文章中,我们给大家简单分析了几种常见的WiFi攻击技术以及相应的检测技术,希望可以给那些对无线安全感兴趣的同学带来帮助。
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/54819.html