前言 上一篇讲述了一下IEEE802.11协议的历史发展,以及IEEE802.11的工作方式和802.11网络的基本元素,还有物理层的主要功能、MAC层的协议,这一章开始802.11协议帧结构里的管理帧。
管理帧
在IEEE 802.11协议中存在有各式各样的管理帧,目的只是对有线网络提供简单的服务。对有线网络而言,识别一部工作站非常简单,因为它们服务端与客户端必须要有物理连接。无线网络则必须建立一一些管理机制,才能实现类似的功能。
管理帧的结构
1) 管理帧负责监督,用来增加或退出无线网络以及处理接入点之间关联的转移事宜。802.11将整个管理过程分解为三个步骤:
2) 寻求连接的移动工作站,必须找出可供访问的无线网络。在有线网络中,步骤相当于找出合适的网络接口。网络系统必须对移动工作站进行身份认证,以此为依据确定是否让工作站与网络系统进行关联。在有线网络方面,身份认证是由网络系统本身提供。如果必须通过网线才能够取得信号,那么获取网线的过程可以理解为是一种认证过程。
3) 移动工作站必须与接入点建立关联,这样才能访问有线网络,这相当于将网线插到有线网络系统。
下图为802.11管理帧的基本结构。所有管理帧的MAC标头都一样,这与帧的子类型无关,管理帧会使用信息元素(带有数字标签的数据区块)来与其他系统交换数据。
表 802.11管理帧各字段的说明
帧控制字段详细说明。
表 帧控制字段详细说明
Beacon(信标)帧
每间隔段时间AP就会发出一个Beacon(信标)信号用来宣布802.11网络的存在。Beacon帧中除包含BSS参数信息外,还包含接入点缓存帧的信息,因此移动式工作站要仔细聆听Beacon信号。
Beacon帧长度为16位,用来设定Beacon信号之间相隔多少时间单位。时间单位通常 缩写为TU,代表1024us (microsecond),相 当于lms ( millisecond)。Beacon通常会被没定为100个时间单位,相当于每100ms, 也就是0.1s传送–次Beacon信号。
下图为抓取的真实Beacon帧
帧主体
管理帧十分灵活,帧主体( framebody)中的大部分数据如果使用长度固定的字段, 就称为固定字段(fixed field) ;如果字段长度不确定,就称为信息元素 ( information element)。所谓信息元素,是指长度不确定的数据块(data block)。每个数据块均会标注类型编号和大小,各信息元素的数据字段元素都有特定的解释方式。
下图为Beacon帧主题数据及Capability Info字段
Beacon帧标记参数:
下图为Beacon帧标记参数
主要参数介绍如下:
(1)SSID信息。包括SSID的网络标识、SSID的长度等,如果设置隐藏AP抓到的数据帧中SSID为空,但是长度有数据,通过这点可以判断是否有隐藏AP。SSID信息如下图所示。
(2)Supported Rates字段。AP所支持的工作速率,如下图所示,通过这个速率也 可以大概判断AP是支持哪种IEEE 802.11协议。
(3)DS Parameter Set字段。AP工作信道,如下图所示。描述了当前工作的信道,实际上这个字段在Radiotap中有。Radiotap是网卡在接收信号时,去除PLCPheader部分后,在本地增加的头部,其中就有功率、信道这样的物理层信息。
(4)country字段。表面上这个字段用处不大,仅仅表明了国家代号。实际上这个字段是用来控制信号发送功率的。由于每一个国家都有相应的法律管理RF发射功率,不能够违法。在beacon中,即通过country字段来限制所有节点的发射功率。同样的,也有限定能够使用的信道范围。
(5) TIM标记。这里主要就是与DTIM有关,有关Beacon周期设置与节能有关的部分,
都与该字段有关,如下图所示:
(6) Vendor Specfic.使用WPA进行数据加密,不是每个设备都会选取该字段,如下图所示:
(7) ERP information部分。ERP全称 是Extended Rate PHY,就是802.11g对应的模式。在这里主要是为了兼容模式所存在,主要关注其中的Non ERP Present位,通过该位,可以同步全网开启对802.11b的兼容,否则就关闭兼容。由于是beacon进行同步的,所以一旦开启,全网所有的STA都是工作在兼容模式下,如下图所示:
Probe Request (探测请求)帧
Probe Request (探测请求)帧,一般用于STA探测网络中的AP时来使用,有两种形式,第1种形式为探测网络中所有AP,第2种形式为探测之前连接过的AP。当AP接收到ProbeRequest请求后并且STA之前连接过该AP,此时AP会回应一个Probe Response (回应探测响应)帧。
Probe Request帧的MAC头信息,下图所示,其中Type位为0,表明是管理帧,Subtype位为4,表明子类型为ProbeRequest帧。
当SSID长度为0时,Probe不包含具体的SSID信息,如果某个AP隐藏了SSID,就不回应这种Probe Request,如下图所示:
当SSID长度大于0时,此SSID即为要扫描SSID,如果SSID隐藏,当收到这种Probe Request包,必须回应Probe Response帧,Probe Response包含了很多SSID的信息;这种类型的包对于连接隐藏SSID是必要的,如下图所示:
Probe Response (回应探测响应)帧
Probe Response帧的MAC头信息,如下图所示,其中Type位为0,表明是管理 帧,Subtype位为5,表明子类型为Probe Re–sponse帧。
下图为Probe Response 帧数据部分信息
下图为Probe Response 帧数据部分信息
其中,Beacon Iterval字段给出了Beacon帧发送间隔,ESS字段表明该数据由AP端发送,其中Tagged标记中还会给出SSID以及传输速率,AP是根据SSID以及传输速率判断此STA是否连接过,如果这两个字段相同,即使STA与AP之前并没有建立过连接,AP也会回应Probe Response帧数据。
Association(身份认证)帧
下图为Association帧数据部分
(1) Authentication Algorithm。身份认证类型,取值为0代表开发系统身份认证无须密码,取值为1代表为共享密钥身份认证。
(2) Authentication SEQ。身份认证帧序列号,由于身份认证会有多个帧交换,所以SEQ是每次身份验证的中的一个序列号,取值为1~65535这个范围。
(3) Status Code。认证是否成功。
(4) Challenge text。该字段只有使用共享密钥才会出现,用于存放密钥。
Association Response与Association Response
当移动工作站试图关联接入点时,接 入点会回复一个Association Response (关联响应)或Reassociation Response(重新关联响应)帧,两者之间的差别在于Frame Con-trol位所记载的subtype位。所有位均是必须的。在应答的过程中,接入点会指定一个 Association ID (关联识别码),至于指定的方式则因实际操作而不同。
下图Association Request (关联请求)帧的MAC信息:
下图为Association Request帧数据部分:
下图为Association Response (关联响应)帧MAC信息:
下图为Association Response 帧数据部分:
其中Status code字段表明是否关联成功,Association ID字段是关联成功后AP给客户端的一个ID,用于标记在AP关联列表中,也用于客户端唤醒时使用。
Disassociation与Deauthentication
其中Reason code 字段表明取消关联或者解除认证的方式,见下表:
如何抓802.11数据包
前言:
我们想要抓取802.11的数据包,需要linux 操作系统,我选择的是kail,内置了Wireshark,可以直接使用,比较方便,当然可以选择其他版本的linux操作系统,使用方法都是一样的。
无线网卡配置
首先把虚拟机的网卡禁用掉:
注:我使用的无线网卡是RTL3070,可以自己选择其他型号无线网卡,只要可以接收到802.11即可。
显示无线网络设备信息:
iwconfig
查看网卡频率:
iwlist wlan0 frequency
扫描ap设备:
iw dev wlan0 sacn
设置网卡monitor监听模式:
iw dev wlan0 interface add wlan0mon type monitor
设置好以后再查看一下无线网卡信息:
iwconfig
开启监听:
ifconfig wlan0mon up
设置好以后,可以打开wireshark 选择我们的wlan0mon网卡开始监听:
这样就可以抓到802.11的数据包了。
本文来源于互联网:由浅入深学习802.11协议(下)