前言

上一篇讲述了一下IEEE802.11协议的历史发展以及IEEE802.11的工作方式和802.11网络的基本元素还有物理层的主要功能MAC层的协议这一章开始802.11协议帧结构里的管理帧

 

管理帧

IEEE 802.11协议中存在有各式各样的管理帧,目的只是对有线网络提供简单的服务。对有线网络而言,识别一部工作站非常简单,因为它们服务端与客户端必须要有物理连接。无线网络则必须建立一一些管理机制,才能实现类似的功能。

 

管理帧的结构

1) 管理帧负责监督,用来增加或退出无线网络以及处理接入点之间关联的转移事宜。802.11将整个管理过程分解为三个步骤:

2) 寻求连接的移动工作站,必须找出可供访问的无线网络。在有线网络中,步骤相当于找出合适的网络接口。网络系统必须对移动工作站进行身份认证,以此为依据确定是否让工作站与网络系统进行关联。在有线网络方面,身份认证是由网络系统本身提供。如果必须通过网线才能够取得信号,那么获取网线的过程可以理解为是一种认证过程。

3) 移动工作站必须与接入点建立关联,这样才能访问有线网络,这相当于将网线插到有线网络系统。

下图为802.11管理帧的基本结构。所有管理帧的MAC标头都一样,这与帧的子类型无关,管理帧会使用信息元素(带有数字标签的数据区块)来与其他系统交换数据。

 802.11管理帧各字段的说明

由浅入深学习802.11协议(下)

帧控制字段详细说明

  帧控制字段详细说明

由浅入深学习802.11协议(下)

子类型Subtype与控制帧的对应见下表:

由浅入深学习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

由浅入深学习802.11协议(下)

 

帧主体

管理帧十分灵活,帧主体( framebody)中的大部分数据如果使用长度固定的字段, 就称为固定字段(fixed field) ;如果字段长度不确定,就称为信息元素 ( information element)。所谓信息元素,是指长度不确定的数据块(data block)。每个数据块均会标注类型编号和大小,各信息元素的数据字段元素都有特定的解释方式。

下图为Beacon帧主题数据及Capability Info字段

由浅入深学习802.11协议(下)

 

Beacon帧主体数据及Capability Info字段的主要信息介绍如下:
Timestamp (时戳)。可用来同步BSS中的工作站,BSS的主计时器会定期发送当前已使用的微秒数。当计数器到达最大值时,便会从头开始计数。(对一个长度64bit、可计数超过580000年的计数器而言,很难会遇到有从头开始计数的一天)。
Intrval。定时发送位,该位数据表明Beacon帧间隔多长时间进行重新广播。(3) Capability Info (性能信息)字段。
Capability Info性能信息字段传送Beacon信号的时候,它被用来告知网络具备何种性能,此字段应用于Beacon帧、 Probe Response帧、Probe Request帧。

Beacon帧标记参数:

下图为Beacon帧标记参数

由浅入深学习802.11协议(下)

 

主要参数介绍如下:

(1)SSID信息。包括SSID的网络标识、SSID的长度等,如果设置隐藏AP抓到的数据帧中SSID为空,但是长度有数据,通过这点可以判断是否有隐藏AP。SSID信息如下图所示。

由浅入深学习802.11协议(下)

(2)Supported Rates字段。AP所支持的工作速率,如下图所示,通过这个速率也 可以大概判断AP是支持哪种IEEE 802.11协议。

由浅入深学习802.11协议(下)

(3)DS Parameter Set字段。AP工作信道,如下图所示。描述了当前工作的信道,实际上这个字段在Radiotap中有。Radiotap是网卡在接收信号时,去除PLCPheader部分后,在本地增加的头部,其中就有功率、信道这样的物理层信息。

由浅入深学习802.11协议(下)

AP中支持的扩展速率如图所示:

由浅入深学习802.11协议(下)

(4)country字段。表面上这个字段用处不大,仅仅表明了国家代号。实际上这个字段是用来控制信号发送功率的。由于每一个国家都有相应的法律管理RF发射功率,不能够违法。在beacon中,即通过country字段来限制所有节点的发射功率。同样的,也有限定能够使用的信道范围。

由浅入深学习802.11协议(下)

(5) TIM标记。这里主要就是与DTIM有关,有关Beacon周期设置与节能有关的部分,

都与该字段有关,如下图所示:

 

由浅入深学习802.11协议(下)

(6) Vendor Specfic.使用WPA进行数据加密,不是每个设备都会选取该字段,如下图所示:

由浅入深学习802.11协议(下)

(7) ERP information部分。ERP全称 是Extended Rate PHY,就是802.11g对应的模式。在这里主要是为了兼容模式所存在,主要关注其中的Non ERP Present位,通过该位,可以同步全网开启对802.11b的兼容,否则就关闭兼容。由于是beacon进行同步的,所以一旦开启,全网所有的STA都是工作在兼容模式下,如下图所示:

 

由浅入深学习802.11协议(下)

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帧。

由浅入深学习802.11协议(下)

SSID长度为0时,Probe不包含具体的SSID信息,如果某个AP隐藏了SSID,就不回应这种Probe Request,如下图所示:

 

由浅入深学习802.11协议(下)

SSID长度大于0时,此SSID即为要扫描SSID,如果SSID隐藏,当收到这种Probe Request包,必须回应Probe Response帧,Probe Response包含了很多SSID的信息;这种类型的包对于连接隐藏SSID是必要的,如下图所示:

 

由浅入深学习802.11协议(下)

Probe Response (回应探测响应)帧

Probe Response帧的MAC头信息,如下图所示,其中Type位为0,表明是管理 帧,Subtype位为5,表明子类型为Probe Response帧。

下图为Probe Response 帧数据部分信息

由浅入深学习802.11协议(下)

下图为Probe Response 帧数据部分信息

由浅入深学习802.11协议(下)

其中,Beacon Iterval字段给出了Beacon帧发送间隔,ESS字段表明该数据由AP端发送,其中Tagged标记中还会给出SSID以及传输速率,AP是根据SSID以及传输速率判断此STA是否连接过,如果这两个字段相同,即使STAAP之前并没有建立过连接,AP也会回应Probe Response帧数据。

Association身份认证

Association身份认证帧的MAC头信息如下图所示其中Type0表明是管理帧Subtype位为11表明子类型为Probe Request

由浅入深学习802.11协议(下)

下图为Association帧数据部分

由浅入深学习802.11协议(下)

主要参数介绍如下:

(1) Authentication Algorithm。身份认证类型,取值为0代表开发系统身份认证无须密码,取值为1代表为共享密钥身份认证。

(2) Authentication SEQ。身份认证帧序列号,由于身份认证会有多个帧交换,所以SEQ是每次身份验证的中的一个序列号,取值为165535这个范围。

(3) Status Code。认证是否成功。

(4) Challenge text。该字段只有使用共享密钥才会出现,用于存放密钥。

Association ResponseAssociation Response

当移动工作站试图关联接入点时,接 入点会回复一个Association Response (关联响应)Reassociation Response(重新关联响应)帧,两者之间的差别在于Frame Con-trol位所记载的subtype位。所有位均是必须的。在应答的过程中,接入点会指定一个 Association ID (关联识别码),至于指定的方式则因实际操作而不同。

下图Association Request (关联请求)帧的MAC信息:

 

由浅入深学习802.11协议(下)

 

下图为Association Request帧数据部分:

由浅入深学习802.11协议(下)

 

下图为Association Response 关联响应MAC信息:

 

由浅入深学习802.11协议(下)

下图为Association Response 帧数据部分:

 

由浅入深学习802.11协议(下)

其中Status code字段表明是否关联成功,Association ID字段是关联成功后AP给客户端的一个ID,用于标记在AP关联列表中,也用于客户端唤醒时使用。

DisassociationDeauthentication

Disassociation (取消关联)帧用来取消一段关联关系Deauthentication (解除认证)帧则用来解除一段认证关系。两者均包含一个固定位ReasonCode(原因代码),当然Frame Control位彼此不同,因为不同类型的管理帧拥有不同的子类型。

其中Reason code 字段表明取消关联或者解除认证的方式见下表:

 

由浅入深学习802.11协议(下)

如何抓802.11数据包

前言

我们想要抓取802.11的数据包需要linux 操作系统我选择的是kail内置了Wireshark可以直接使用比较方便当然可以选择其他版本的linux操作系统使用方法都是一样的

无线网卡配置

首先把虚拟机的网卡禁用掉:

 

由浅入深学习802.11协议(下)

我使用的无线网卡是RTL3070可以自己选择其他型号无线网卡只要可以接收到802.11即可

 显示无线网络设备信息:

iwconfig

 

由浅入深学习802.11协议(下)

查看网卡频率:

iwlist wlan0 frequency

 

由浅入深学习802.11协议(下)

 扫描ap设备:

iw dev wlan0 sacn

 

由浅入深学习802.11协议(下)

设置网卡monitor监听模式:

iw dev wlan0 interface add wlan0mon type monitor

 

设置好以后再查看一下无线网卡信息:

iwconfig

由浅入深学习802.11协议(下)

 

开启监听:

ifconfig wlan0mon up

 

设置好以后可以打开wireshark 选择我们的wlan0mon网卡开始监听:

 

由浅入深学习802.11协议(下)

 

这样就可以抓到802.11的数据包了

 

 

 

本文来源于互联网:由浅入深学习802.11协议(下)