导语:802.11标准简介 IEEE 802.11是现今无线局域网通用的标准,它是由国际电机电子工程学会(IEEE)所定义的无线网络通信的标准。不过要注意的是802.11和Wi-Fi技术并不是同一个东西。Wi-Fi标准是802.11标准的一个子集。 由于802.11标准的管理数
802.11标准简介
IEEE 802.11是现今无线局域网通用的标准,它是由国际电机电子工程学会(IEEE)所定义的无线网络通信的标准。不过要注意的是802.11和Wi-Fi技术并不是同一个东西。Wi-Fi标准是802.11标准的一个子集。
由于802.11标准的管理数据包控制着网络的管理功能,比如信标帧、解除认证等。管理数据包主要负责监督加入或退出的无线网络,以及处理接入点之间连接的转移事宜。
但问题是管理功能完全没有加密,这使得攻击者很容易实施WiFi攻击,例如,他们可以在没有密码的情况下看到连接用户的登录信息。
802.11标准下常见的WiFi攻击
流量嗅探
实际上,所有的WiFi流量都可以在监控模式下使用适配器进行嗅探。大多数Linux发行版都支持将某些WiFi芯片组放入这个监控的模式中,这样就可以处理所有网络流量。每个人都可以从亚马逊上买到这种芯片的WiFi适配器,有些还不到20美元。
加密的网络也不没有你想象的安全,WEP加密甚至WPA2-PSK都是不安全的,攻击者可以通过欺骗一个deauthentication框架来强制一个新的身份验证过程,从而将你的设备与网络断开。
检测嗅探器
由于嗅探流量是被动进行的,不能被检测到。所以实际上所有开放或关闭的WiFi通信都是公开的,这就要求在更高层次上进行通信加密,比如HTTPs。
暴力访问
和其他密码一样,无线网络的密码也可以被暴力获取。WEP可以通过分析记录的流量在几分钟内被破解,并被渲染成无用的。所以对于WPA安全网络,黑客只需要一个标准的字典攻击即可达到目的。
暴力访问的检测
实际上,通过对访问点进行身份验证的攻击是非常无效的,目前大多数暴力破解工具都是针对WiFi流量的。一个攻击者可以静静地坐在你的办公室前的车里,在记录了你的流量状况后,就可以破解出你的密码。
像流量嗅探一样,这种方法也是不能被检测到的。唯一的保护的方法是使用强密码,避免WEP加密。
WiFi网络干扰
干扰WiFi网络的最有效方法就是将相关的通信频率填充大量垃圾。然而,这需要相当专业的设备和技术,不过,令人惊讶的是,在802.11协议标准下,我却发现了带来了一个非常简单的方法,那就是利用Deauthentication和disassociation框架。这两个框架应该在不同的场景中使用,而且802.11协议标准有超过40个预先定义的理由码。这些理由码在以下一些攻击的场景中非常有效:
1.以前的身份验证不再有效;
2.由关联失败引起的停止状态;
3.由于AP无法处理所有当前的 STA而引起的关联失败;
4.由于要求STA不支持BSSBasicRateSet参数中的所有数据率而引起的失败连接;
5.当STA从BSS断开或重置时,请求STA。
因为deauth框架是管理框架,它们是未加密的,即使没有连接到网络,任何人都可以对它做手脚。
通过在框架中设置“发送器”地址,处于攻击范围内的攻击者不但可以发送持续的deauth框架,它们似乎都是来自于你连接到的访问点,而且还能监听你的设备发送的指令。甚至“jammer”脚本能监测出所有访问点和客户机的列表,同时不断地将deauth框架发送给所有的用户。
检测干扰器
像nzyme这样的工具将监测出deauth框架,而Graylog可以在不同寻常级别的框架子类型域中发出警报。
流氓接入点
你知道你的手机是如何自动连接到它认为正确的WiFi网络的吗?有两种不同的方式:
1. 你的手机的信标帧(beacon frame)通过发送的定期发送的信标,可让移动工作站得知该网络的存在,从而调整加入该网络所必要的参数。在基础型网络里,接入点必须负责发送信标帧。信标帧所及范围即为基本服务区域。在基础型网络里,所有沟通都必须通过接入点,因此工作站不能距离太远,否则便无法接收到信标。
2. 你的手机会发送探测请求(Probe Request),移动工作站将会利用探测请求帧,扫描所在区域内目前有哪些 802.11网络。Probe Request 帧的格式如下图 所示,所有位均为必要。
探测请求帧包含两个位:SSID以及移动工作站所支持的速率(Supported Rates)。收到探测请求帧的工作站会据此判定对方能否加入网络。为了相处愉快,移动工作站必须支持网络所要求的所有数据速率,并以 SSID表明所欲加入的网络。SSID可设定为特定网络的SSID,或设定为任何相容网络的 SSID。允许网卡加入任何网络的驱动程式,将会在探测请求帧中使用广播形式的服务集合识别码(broadcast SSID)。
这样问题就来了,任何设备都可以为任何网络发送信标帧和探测请求帧。如此一来,攻击者就可以利用一个流氓的访问点四处移动,以响应任何需要响应的请求,或者他们刻意为目标公司网络发送信标。
不过,目前有些设备现在已经有了该方面的保护,如果你要连接到一个目前没有加密,但之前有过加密的的网络,设备会警告你。然而,如果攻击者知道密码或仅仅针对你的咖啡店的未加密网络,这种警告保护就会没有意义。
如果你的手机会盲目的连接,那攻击者就会实施中间人攻击,监听你所有的通讯或发起DNS等攻击。攻击者甚至可以向你展示一个恶意的强制登录门户(Captive Portal)以收集更多关于你的浏览器的信息。
强制登录门户通常由网络运营商或网关在用户能够正常访问互联网之前拦截用户的请求并将一个强制登录或认证主页呈现(通常是通过浏览器)给用户。该页面可能要求用户输入认证信息、支付、接受某些条款或者其他用户授权等,随后用户才能被授权访问互联网。
恶意访问点是非常难以识别的,因为在物理上定位它们很复杂,而且它们通常和现有的访问点基础设施混合在一起。下面我就介绍一些可以使用nzyme和Graylog工具来发现它们的方法。nzyme是一个开源工具,负责往Graylog记录和转发802.11标准下的管理帧,用于WiFi安全监控和事件响应。而Graylog 是一个简单易用、功能较全面的日志管理工具。
检测流氓接入点
方法1:BSSID白名单
和其他网络设备一样,每个WiFi接入点都有一个MAC地址,每个发送的消息都含有该部分。检测流氓访问点的一种简单方法是把你的可信访问点和它们的MAC地址的列表保存下来,并与你在寻找到的MAC地址相匹配。但问题是攻击者可以很容易地通过欺骗MAC地址,绕过这种保护措施。
方法2:非同步的MAC时间戳
每个产生同一网络的接入点都有一个高度同步的内部时钟,这一点很重要。出于这个原因,访问点经常交换时间戳,以便在其信标框架中进行同步。时间戳单位是微秒, 25微秒内都算是保持同步。
大多数流氓访问点都不会试图正确地同步时间戳,你可以利用该方法检测到是否存在攻击。
方法3:错误的传输信道
你可以保留访问点正在运行的信道列表,并找出流氓访问点是否使用了你的基础设施不应该使用的信道。这个方法检测是非常容易检测出攻击者的,因为这样可以对站点进行重新定位,并将流氓访问点配置为只使用已经使用过的信道。还有就是许多接入点将根据容量动态切换信道。
方法4:加密失效
一个不知道加密网络密码的攻击者为了实现攻击目的,可能会启动一个流氓访问点,以打开该网络。虽然用的是你的用户名在搜索网络,但却没有加密或加密错误。
方法5:信号强度异常
通过分析信号强度基线,寻找异常情况,也是可以发现一个流氓访问点的。如果一个攻击者正在欺骗你的一个访问点,包括它的MAC地址(BSSID),平均信号强度就会突然改变。