80211抓包分析.docx
《80211抓包分析.docx》由会员分享,可在线阅读,更多相关《80211抓包分析.docx(12页珍藏版)》请在冰豆网上搜索。
80211抓包分析
802.11抓包分析
1.实验目的
分析802.11协议,了解802.11的帧格式
2.实验环境及工具
操作系统:
ubuntu
实验工具:
WireShark
3.实验原理
(1)802.11MAC层数据帧格式:
Bytes2266620-23124
Frame
control
Duration
Address1
(recipient)
Address2
(transmitter)
Address3
Sequence
Data
Checksequence
Version
=00
Type
=10
Subtype
To
DS
From
DS
More
Frag.
Retry
Pwr.
mgt.
More
data
Protected
Order
Bits22411111111
Version:
表明版本类型,现在所有帧里面这个字段都是0
Type:
指明数据帧类型,是管理帧,数据帧还是控制帧,00表示管理帧,01表示控制帧,10表示数据帧
Subtype:
指明帧的子类型,Data=0000,Data+CF-ACK=0001,Data+CF-Poll=0010,Data+CF-ACK+CF-Poll=0011,Nulldata=0100,CF-ACK=0101,
CF-Poll=0110,Data+CF-ACK+CF-Poll=0111,QoSData=1000,
QosData+CF-ACK=1001,QoSData+CF-Poll=1010,
QoSData+CF-ACK+CF-Poll=1011,QoSNull=1100,
QoSCF-ACK=1101,QoSCF-Poll=1110,QoSData+CF-ACK+CF-Poll=1111
ToDS/FromDS:
这两个数据帧表明数据包的发送方向,分四种情况:
若数据包ToDS为0,FromDS为0,表明该数据包在网络主机间传输
若数据包ToDS为0,FromDS为1,表明该数据帧来自AP
若数据包ToDS为1,FromDS为0,表明该数据帧发送往AP
若数据包ToDS为1,FromDS为1,表明该数据帧是从AP发送往AP
Moreflag.:
置1表明后面还有更多段
Retry:
置1表明这个以前发送一帧的重传
Pwrmgt.:
置1表明发送发进入节能模式
Moredata:
置1表明发送发还有更多的帧需要发送给接收方,当AP缓存了处于省电模式下的网络主机的数据包时,AP给该省电模式下的网络主机的数据帧中该位为1,否则为0
Protected:
置1表明该帧的帧体已经被加密
Order:
置1告诉接收方高层希望严格按照顺序来处理帧序列
Duration:
通告本帧和其确认帧将会占用信道多长时间
Address1:
发送方地址Address2:
接收地址Address3:
远程端点
Sequence:
帧的编号
Data:
有效载荷,长度可达2312字节
CheckSequence:
CRC校验码
(2)802.11控制帧,每种控制帧的帧格式不一样,以RTS帧为例说明
Bytes22664
Frame
control
Duration
Receiver
Address
Transmitter
Address
Check
sequence
Version
=00
Type
=01
Subtype
=1011
To
DS
=0
From
DS
=0
More
Frag.
=0
Retry
=0
Pwr.
mgt.
More
Data
=0
Protected
=0
Order
=0
Bits22411111111
Version:
表明版本类型,现在所有帧里面这个字段都是0
Type:
指明数据帧类型,是管理帧,数据帧还是控制帧,00表示管理帧,01表示控制帧,10表示数据帧
Subtype:
指明数据帧的子类型,PowerSave(PS)-Poll(省电轮询)=1010,RTS=1011,CTS=1100,ACK=1101,CF-End(无竞争周期结束)=1110,CF-End(无竞争周期结束)+CF-ACK(无竞争周期确认)=1111,BlockACK=1001,
控制帧的ToDS至Order除Pwr.mgt.外必然为0
ReceiverAddress:
接收方地址
TransmitterAddress:
发送发地址,CTS和ACK没有该字段
Checksequence:
校验码
(3)管理帧,
Bytes2266620-23124
Frame
control
Duration
DestinationAddress
Source
Address
BSSID
Sequence
Data
Check
sequence
Version
=00
Type
=00
Subtype
To
DS
=0
From
DS
=0
More
Frag.
Retry
=0
Pwr.
mgt.
More
Data
Protected
Order
=0
Bits22411111111
Version:
表明版本类型,现在所有帧里面这个字段都是0
Type:
指明数据帧类型,是管理帧,数据帧还是控制帧,00表示管理帧,01表示控制帧,10表示数据帧
Subtype:
指明数据帧的子类型,
AssociationRequest(关联请求)=0000,
AssociationResponse(关联响应)=0001,
ReassociationRequest(重关联请求)=0010,
ReassociationResponse(重关联响应)=0011,
ProbeRequest(探测请求)=0100,
ProbeResponse(探测响应)=0101,
Beacon(信标帧)=1000,
ATIM(通知传输指示信息)=1001,
Disassociation(解除关联)=1010,
Authentication(身份验证)=1011,
Deauthentication(解除身份验证)=1100
管理帧的ToDS与FromDS均为0,其余FrameControl字段意义与数据帧一致
DestinationAddress:
目的地址
SourceAddress:
源地址
BSSID:
基本服务集ID,用于过滤收到的MAC帧(在基础型网络里为工作站所关联的AP的MAC地址)
Sequence:
帧序列号
AddressChecksequence:
校验码
4.实验步骤
1.配置wireshark,启动monitormode,抓取wifi的数据包,如下图
2.分析抓取到的wifi数据包
5.实验结果及分析
1.数据帧
(1)数据帧
Version,Type和Subtype的08H,即00001000,后两位00,表明协议版本为0,倒数3、4位10表明这是一个数据帧,前四位0000是subtype。
Framecontrol后8位0AH,即00001010。
ToDS=0,FromDS=1,表明该数据帧来自AP。
Morefrag=0,表明这是该帧的最后一段,Retry=1,表明这是重传帧,Pwr.Mgt.=0,表明发送方没有进入节能模式;Moredata=0表明没有更多的帧,即Nodatabuffered.Protected=0,表明没有加密,Order=0,表明没有严格的顺序要求。
Duration位为d500,低位为00,高位为d5,所以持续时间为00d5H=213微秒。
Address1=0022698ea744,接收方的MAC地址;Address2=0611b51a0a05,发送发地址,即AP地址;Address3=00005e00040a,远程远端地址;Sequence=3032,高位为32,低位为30,即0011001000110010,段号为0,帧号为001100100011B=803D,Checksequence=23093131H,检测结果为正确。
(2)上图帧紧接着的下一个数据帧
每发出去一帧Sequence中的12位帧号递增,Address1=0022698ea744,接收方的MAC地址;Address2=0611b51a0a05,发送发地址,即AP地址;Address3=00005e00040a,远程远端地址;这三个地址与上图中的帧一致,是同一发送方发送给同一接收方的连续两帧,帧号=804,帧号递增。
2.控制帧
(1)RTS帧
Version,Type和Subtype的b4H,即10110100,后两位00,表明协议版本为0,倒数3、4位01表明这是一个控制帧,前四位1011是subtype,表明这是一个RTS;
Framecontrol后8位00H,控制帧的这几位除Pwr.mgt.外必然是0.Pwr.mgt即发送方没有进入节能模式。
Duration位为6709,低位为67,高位为09,所以持续时间为096fH=2407微秒。
ReceiverAddress=00:
22:
69:
8e:
a7:
44,接收方的MAC地址;TransmitterAddress=06:
11:
b5:
1a:
0a:
05,发送方地址;Checksequence=6e24f28cH,检测结果为正确。
(2)CTS帧
Version,Type和Subtype的C4H,即11000100,后两位00,表明协议版本为0,倒数3、4位01表明这是一个控制帧,前四位1100是subtype,表明这是一个CTS.
Framecontrol后8位00H,控制帧的这几位除Pwr.mgt.外必然是0.Pwr.mgt即发送方没有进入节能模式。
Duration位为6f09,低位为6f,高位为09,所以持续时间为096fH=2415微秒。
ReceiverAddress=70f1al496492,接收方的MAC地址;Checksequence=a1d1f7e5H,检测结果为正确。
(3)ACK帧
Version,Type和Subtype的d4H,即11010100,后两位00,表明协议版本为0,倒数3、4位01表明这是一个控制帧,前四位1101是subtype,表明这是一个ACK;
Framecontrol后8位00H,控制帧的这几位除Pwr.mgt.外必然是0.Pwr.mgt即发送方没有进入节能模式。
Duration位为0000,所以持续时间为0微秒,ACK表明该帧的传送结束,所以持续时间为0,ReceiverAddress=00:
22:
69:
8e:
a7:
44,接收方的MAC地址;Checksequence=6e24f28cH,检测结果为正确。
(4)BlockACK帧
Version,Type和Subtype的94H,即10010100,后两位00,表明协议版本为0,倒数3、4位01表明这是一个控制帧,前四位1001是subtype,表明这是一个BlockAck,这是一个块确定帧
Framecontrol后8位00H,控制帧的这几位除Pwr.mgt.外必然是0.Pwr.mgt即发送方没有进入节能模式。
Duration位为9400,低位为94,高位为00,所以持续时间为0094H=148微秒。
ReceiverAddress=70f1al496492,接收方的MAC地址。
TransmitterAddress=3822d67704d3,发送方的MAC地址,Checksequence=d2ed060f,检测结果为正确。
其余位与BlockACK该种帧有关,BlockAckType=02H,compressedBlock;BlockAckControl=0005H,BlockAckStartingSequenceControl=9320H.
3.管理帧
Version,Type和Subtype的80H,即10000000,后两位00,表明协议版本为0,倒数3、4位00表明这是一个管理帧,前四位1000是subtype,表明这是信标帧,AP每隔一段时间就会发出的Beacon(信标)信号,用来宣布802.11网络的存在
Framecontrol后8位00H.ToDS=0,FromDS=0,管理帧这两位固定。
Morefrag=0,表明这是该帧的最后一段,Retry=0,表明这不是重传帧,Pwr.Mgt.=0,表明发送方没有进入节能模式,Moredata=0表明没有更多的帧,即Nodatabuffered,该位被置是因为有AP缓存了数据给在休眠中的主机,由于ToDS=0,FromDS=0,数据再主机之间传送,所以Moredata必定为0.Protected=0,表明没有加密,Order=0,表明没有严格的顺序要求。
Duration位为0000,信标帧传送完,此次传输就已经结束,所以持续时间为0微秒。
DestinationAddress=ffffffff,即为广播;SourceAddress=3822d67705d0,为AP地址;BSSID=3822d67705d0,即AP地址;Sequence=6002,高位为02,低位为60,即0000001001100000,段号为0,帧号为000000100110B=38D,Checksequence=8007c6e2H,检测结果为正确。
6.实验总结
十六进制表示的帧与帧格式字段,顺序对应关系不太合理。
如数据帧FrameControl在Packetbytes面板为080a,在Packetdetail面板显示为0a08.0a08=0000101000001000,所表示的分别是Order,Protected,Moredata,Pwr.mgt,Retry,Morefrag.FromDS,ToDS,Subtype,Type和Version,顺序与帧格式中描述的正好相反。
而Duration,Source字段均是两个字节,如Duration在Packetbytes面板中的十六进制为d500,延迟=213D=00d5H,后两位为高字节,与正常顺序相反。
而地址字节,在Packetbytes面板为0022698ea744,则MAC地址就为0022698ea744,这里的字节顺序没有反过来。
所以说用wireshark抓包得到的十六进制表示的帧,其顺序与帧格式中描述的顺序对应关系比较难理解。
7.参考资料
1.计算机网络(第五版).AndrewS.Tanenbaum,DavidJ.Wetherall
2.802.11无线网络权威指南(第二版)MattbewS.Gast