专注安全,学术至上!

WIFI安全之包结构解析

    WIFI安全     WIFI安全

最近一段时间一直在弄WIFI相关的东西,现在总结下遇到的知识点,以做笔记,不喜勿喷。

802.11 协议

无线数据包与有线数据包的主要不同在于额外的802.11头部。分析WIFI的数据包,首选需要理解下802.11协议。这里,我们简要介绍。

802.11 数据包有三种类型:管理帧、控制帧、数据帧。

管理帧(type=0)

这些数据包用于在主机之间建立第二层的连接。管理数据包还有些重要的子类型,常见的有:

子类型Subtype值 代表类型
0000 Association request (关联请求)
0001 Association response(关联响应)
0010 Reassociation request (重新关联请求)
0011 Reassociation response(重新关联响应)
0100 Probe request (探测请求)
0101 Probe response(探测响应)
1000 Beacon (信标)
1001 ATIM(通知传输指示消息)
1010 Disassociation (取消关联)
1011 Authentication(身份验证)
1100 Deauthentication (解除身份验证)
1101~1111 Reversed(保留,未使用)

控制帧(type=1)

控制数据包控制管理数据包和数据包的发送,并与拥塞管理有关。常见的子类型如下:

子类型Subtype值 代表类型
1010 Power Save (PS) -Poll (省电-轮询)
1011 RTS (请求发送)
1100 CTS (清除发送)
1101 ACK (确认)
1110 CF-End (无竞争周期结束)
1111 CF-End (无竞争周期结束) + CF-ACK (无竞争周期确认)

数据帧(type=2)

网络传输的数据。也是唯一可以从无线网络转发到有线网络的数据包。常见的子类型如下:

子类型Subtype值 代表类型
0000 DATA (数据)
0001 DATA + CF-ACK
0010 DATA + CF-Poll
0011 DATA + CF-ACK + CF-Poll
0100 Null data (无数据:未传送数据)
0101 CF-ACK(未传送数据)
0110 CF-Poll(未传送数据)
0111 DATA + CF-ACK + CF-Poll
1000 Qos Data
1001 Qos Data + CF-ACK
1010 Qos Data + CF-Poll
1011 Qos Data + CF-ACK + CF-Poll
1100 Qos Null (未传送数据)
1101 Qos CF-ACK (未传送数据)
1110 Qos CF-Poll (未传送数据)
1111 Qos CF-ACK + CF-Poll (未传送数据)

wireshark 抓包分析 WIFI参数

使用wireshark抓取分析WIFI常见参数,802.11数据包类型和子类型常用语法如下:

帧类型/子类型 过滤语法
Management frame wlan.fc.type eq 0
Control frame wlan.fc.type eq 1
Data frame wlan.fc.type eq 2
Association request wlan.fc.type_subtype eq 0x00
Association response wlan.fc.type_subtype eq 0x01
Reassociation request wlan.fc.type_subtype eq 0x02
Reassociation response wlan.fc.type_subtype eq 0x03
Probe request wlan.fc.type_subtype eq 0x04
Probe response wlan.fc.type_subtype eq 0x05
Beacon wlan.fc.type_subtype eq 0x08
Disassociate wlan.fc.type_subtype eq 0x0A
Authentication wlan.fc.type_subtype eq 0x0B
Deauthentication wlan.fc.type_subtype eq 0x0C
Action frame wlan.fc.type_subtype eq 0x0D
Block ACK requests wlan.fc.type_subtype eq 0x18
Block ACK wlan.fc.type_subtype eq 0x19
Power save poll wlan.fc.type_subtype eq 0x1A
request to send wlan.fc.type_subtype eq 0x1B
clear to send wlan.fc.type_subtype eq 0x1C
ACK wlan.fc.type_subtype eq 0x1D
Contention free period end wlan.fc.type_subtype eq 0x1E
NULL data wlan.fc.type_subtype eq 0x24
QoS data wlan.fc.type_subtype eq 0x28
NULL QoS data wlan.fc.type_subtype eq 0x2C

分析WIFI参数

先查看WIFI广播包,过滤规则:wlan.fc.type == 0

wifi01
如上图,广播包有四层。WIFI的参数在后面三层。

SSID

WIFI 名字,如下图:
ssid

BSSID

AP的MAC地址,如下图:

bssid

Power

网卡所在位置,接受到的WIFI信号能量大小,如下图:d0 为16进制解码后为 48,即:-48db

Power

channel

AP的信道,如下图:01 也是16进制,解码后为 1 即:信道为 1
channel

enc

加密方式,AES(CCM),代表了WAP2 如下图:特征码:00 0f ac
enc

WPS

如果路由器开启WPS则 如下图:特质码:00 0f ac 02
wps

Scapy 抓包分析 WIFI参数

嗅探程序:

1
2
3
4
5
6
7
8
9
import sys
from scapy.all import *
def deal(pkt):
if pkt.haslayer(Dot11):
if pkt.type==0 and pkt.subtype==8:
if pkt[Dot11Elt].info == "D***ck":
pkt.show()
sys.exit(1)
sniff(iface="wlan3",prn=deal)

输出结果:
scapy1
scapy2
scapy3
scapy4
scapy5

其中 addr3BSSID , ssidSSID标签的info值 ,channelDSset标签的info值, power的值与notdecode 倒数第二位相关,值为:ord(pkt.notdecode[-2]-256), 加密方式与ID=RSNinfoinfo值相关 info[1:5]=00 00 0f ac 表示WAP2,info[5]=04 表示CCMP,info[5]=02 表示 TKIP.

页阅读量:  ・  站访问量:  ・  站访客数: