无线安全基础

日常使用标准

协议 发布日期 支持频段 最高速率
802.11b 1999 2.4G 11M
802.11a 1999 5G 54M
802.11g 2004 2.4G 54M
802.11n 2009 2.4G/5G 600M
  • 2.4GHz与5GHz都属于无线电(频率在3Hz-300Hz范围内的电磁波)的频段范围
  • 另外工作在2.4GHz频段中的设备还有:微波炉,无绳电话,蓝牙设备
  • 这里的2.4GHz与5GHz都指这个频率附近的频段
  • 在我国2.4GHz频段的可用信道为13个,而5GHz频段的可用信道为五个

image

参考:你需要了解的WiFi小知识:WiFi信道

WLAN常用术语

image

通俗理解

  • AP: 无线热点,如无线路由器
  • STA: 无线终端,如手机,电脑等
  • BSSID: 无线热点的MAC地址
  • ESSID: 无线网络的名称,即平日所说的SSID

精确理解

WLAN从入门到精通系列

第6期——WLAN常用概念

无线抓包

我们正常用wireshark抓取本机无线网卡的流量,并无法看到802.11协议的包头,只能看到正常以太网的包头,这是因为在我们上网时,电脑的网卡工作在Managed的模式,这时无线网络的工作方式对用户来说是透明的,用户看到的就是数据包就是有线以太网的数据包。如果想要看到802.11的包头,需要将网卡更换到Monitor(侦听)模式,这时网卡不仅不会过滤掉802.11协议的包头,而且不过滤任何可以收到的数据包(目标主机不是本机的数据包)。

但侦听模式需要网卡本身的支持,操作系统安装了网卡的相应驱动,并且有控制无线网卡的命令工具,才可以完成整个抓包的操作。所以这里我们操作系统选择kali,网卡选择外置的TPlink-WN722N

注:无线网卡的默认接口名称是wlan+数字,按无线网卡的接入顺序,数字从0开始依次递增。当更改网卡为监听模式时,接口统一规范命名为wlan+数字+mon

无线网卡工具

linux中常用管理网卡的工具是ifconfig,而针对于无线网卡有专用的管理工具:iwconfig,iwlist,iw等,这些工具在kali中默认安装

  • iwconfig 查看网卡状态信息
  • iwlist 查看网卡支持的详细工作参数,如信道,频段,加密方式等
  • iw 设置无线网卡模式,利用网卡扫描,设置网卡接口,查看详细参数等

其中iw与iwlist功能有重合,工具利用示例如下:

查看无线网卡详情

iwlist wlan0 frequency 查看网卡支持的工作信道

root@kali:~# iwlist wlan0 frequency
wlan0     13 channels in total; available frequencies :
          Channel 01 : 2.412 GHz
          Channel 02 : 2.417 GHz
          Channel 03 : 2.422 GHz
          Channel 04 : 2.427 GHz
          Channel 05 : 2.432 GHz
          Channel 06 : 2.437 GHz
          Channel 07 : 2.442 GHz
          Channel 08 : 2.447 GHz
          Channel 09 : 2.452 GHz
          Channel 10 : 2.457 GHz
          Channel 11 : 2.462 GHz
          Channel 12 : 2.467 GHz
          Channel 13 : 2.472 GHz

iw list 查看网卡的工作的各种参数,包括了上面打印的信道参数

root@kali:~# iw list
Wiphy phy7
	max # scan SSIDs: 4
	max scan IEs length: 2257 bytes
	max # sched scan SSIDs: 0
	max # match sets: 0
	max # scan plans: 1
	max scan plan interval: -1
	max scan plan iterations: 0
	Retry short limit: 7
	Retry long limit: 4
	Coverage class: 0 (up to 0m)
	Device supports RSN-IBSS.
	Device supports T-DLS.
	Supported Ciphers:
		* WEP40 (00-0f-ac:1)
		* WEP104 (00-0f-ac:5)
		* TKIP (00-0f-ac:2)
		* CCMP-128 (00-0f-ac:4)
		* CCMP-256 (00-0f-ac:10)
		* GCMP-128 (00-0f-ac:8)
		* GCMP-256 (00-0f-ac:9)
		* CMAC (00-0f-ac:6)
		* CMAC-256 (00-0f-ac:13)
		* GMAC-128 (00-0f-ac:11)
		* GMAC-256 (00-0f-ac:12)
	Available Antennas: TX 0x1 RX 0x1
	Configured Antennas: TX 0x1 RX 0x1
	Supported interface modes:
		 * IBSS
		 * managed
		 * AP
		 * AP/VLAN
		 * monitor
		 * mesh point
		 * P2P-client
		 * P2P-GO
		 * outside context of a BSS
	Band 1:
		Capabilities: 0x116e
			HT20/HT40
			SM Power Save disabled
			RX HT20 SGI
			RX HT40 SGI
			RX STBC 1-stream
			Max AMSDU length: 3839 bytes
			DSSS/CCK HT40
		Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
		Minimum RX AMPDU time spacing: 8 usec (0x06)
		HT TX/RX MCS rate indexes supported: 0-7
		Bitrates (non-HT):
			* 1.0 Mbps
			* 2.0 Mbps (short preamble supported)
			* 5.5 Mbps (short preamble supported)
			* 11.0 Mbps (short preamble supported)
			* 6.0 Mbps
			* 9.0 Mbps
			* 12.0 Mbps
			* 18.0 Mbps
			* 24.0 Mbps
			* 36.0 Mbps
			* 48.0 Mbps
			* 54.0 Mbps
		Frequencies:
			* 2412 MHz [1] (20.0 dBm)
			* 2417 MHz [2] (20.0 dBm)
			* 2422 MHz [3] (20.0 dBm)
			* 2427 MHz [4] (20.0 dBm)
			* 2432 MHz [5] (20.0 dBm)
			* 2437 MHz [6] (20.0 dBm)
			* 2442 MHz [7] (20.0 dBm)
			* 2447 MHz [8] (20.0 dBm)
			* 2452 MHz [9] (20.0 dBm)
			* 2457 MHz [10] (20.0 dBm)
			* 2462 MHz [11] (20.0 dBm)
			* 2467 MHz [12] (20.0 dBm)
			* 2472 MHz [13] (20.0 dBm)
			* 2484 MHz [14] (disabled)
...
...
...

扫描附近网络

以下两种方式均可获得附近热点的详细信息

root@kali:~# iwlist wlan0 scanning
root@kali:~# iw dev wlan0 scan

启用侦听模式

在启用监听模式之前,我们先用iwconfig查看网卡状态信息:

root@kali:~# iwconfig
eth0      no wireless extensions.

lo        no wireless extensions.

wlan0     IEEE 802.11  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off

可见Mode字段为Managed,以下我们有两种方法将网卡置入侦听模式:

方法一

通过iw,添加侦听接口:

root@kali:~# iw dev wlan0 interface add wlan0mon type monitor
root@kali:~# ifconfig wlan0mon up

删除侦听接口:

root@kali:~# iw dev wlan0mon interface del

通过这种方式添加接口,原来的wlan0接口仍保留

方法二

这种方法是使用aircrack-ng套件中的airmon-ng工具来完成网卡监听模式的开启,添加侦听接口:

root@kali:~# airmon-ng start wlan0

删除侦听接口:

root@kali:~# airmon-ng stop wlan0mon

通过这种方式添加接口,原来的wlan0接口不被保留

wireshark抓包

通过上面两张方法开启网卡的侦听模式,然后重新用iwconfig查看网卡状态:

root@kali:~# iwconfig
eth0      no wireless extensions.

wlan0mon  IEEE 802.11  Mode:Monitor  Frequency:2.457 GHz  Tx-Power=20 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          
lo        no wireless extensions.

可见新的网卡接口wlan0mon已经开启,所以可以利用wireshark等工具抓包,抓包时选择wlan0mon这个网卡接口,即可看到完整的802.11协议数据包的结构。

无线数据包结构

为了更好的理解无线网络工作的原理,有必要了解802.11协议的帧格式。

示例

在kali中的wireshark通过网卡开启的监听端口捕获的一些数据中,以一个AP广播的beacon帧为例:

image

wireshark解析出四个部分:

  • RadioTap Header
  • 802.11 radio imformation
  • 802.11 Beacon Frame (802.11 Header)
  • 802.11 WLAN Management frame (802.11 Body)

部分解析:

  • 第一部分RadioTap Header的内容是AP的一些参数,比如工作信道,接受时的信号强度等信息。显然接受时的信号强度是由本机网卡测得的,所以这段数据并不是由AP发送的,而是本机网卡接受到数据包时自己加上的信息。
  • 第二部分802.11 radio imformation基本是对第一段的概括,数据包中并无实际的数据与之对应
  • 第三部分这里解析除了帧类型为beacon,其实这段就是802.11数据包的数据链路层的MAC子层的头部
  • 第四部分解析为管理帧部分,但其实这段数据是MAC子层的数据部分
  • 整个无线数据包最后还有四个字节的CRC校验,wireshare把这段数据解析到了Beacon Frame部分

所以通过这种方式捕获的无线数据包可以看成如下组成:

RadioTap MAC Header Frame Body FCS
变长 最大30byte 变长 0-2324byte 变长 4byte

在无线信号在传播过程中,实际是还有物理层的头部(PLCP header),具体参考:有关802.11的Beacon帧

MAC Header

image

其中MAC Header中的Frame Control中的type和subtype标记了802.11的不同类型的帧,Frame Body中包含了各种不同类型帧的数据部分。个人认为802.11数据包看起来费劲的原因主要是类型过多,且包头长度不固定。不过在无线渗透的过程,并不需要理解全部的数据包。802.11主要有三种类型的帧:控制帧、管理帧、数据帧

image

以下介绍常见帧的功能以及包含的信息等,具体帧的结构请参考:802.11 协议格式

管理帧(Type:0)

用于协商AP与STA之间的关系

Association Frame (subtype:0/1)

  • Association Request
  • Association Response

身份验证成功后,STA执行关联操作后方可加入网络

Probe Frame (subtype:4/5)

  • Probe Request STA发出的探测帧,用于曾经连接过的AP是否在附近
  • Probe Response AP与收到的probe请求帧信息相同时则响应

Beacon (subtype:8)

  • AP发送的广播帧,通告无线网络的存在
  • 内容包括SSID,支持速率,安全机制等信息
  • 大概一秒发十个,速度可调
  • 可关闭,即隐藏SSID广播

Authentication (subtype:11)

这个帧用来做鉴权认证,并且格式较为简单,大致如下:

MAC Header Algorithm seq status code challenge text FCS
24byte 2byte 2byte 2byte 变长 4byte
  • Algorithm:0-开放身份验证,1-共享秘钥身份验证
  • seq:可取1-65535,认证过程由多个帧组成,每个帧的seq唯一
  • challenge text:只有WEP共享秘钥有此字段,传递随机数
  • status code: 0-成功,1-失败

常见流程:

  • 采取OPEN认证时,一般会有两个Authentication数据包,Algorithm为0,无challenge text字段
  • 采取WEP认证时,一般会有四个Authentication数据包,Algorithm为1,第二个包包含有challenge text字段
  • 采取WPA/WPA2认证时,不通过管理帧中的Authentication帧来完成认证,这时通过数据帧中的EAPOL帧来完成认证

Deauthentication(subtype:12)

  • 这个帧一般由AP发送给STA,用来断开认证关系,但实际上也可由STA发送给AP
  • Frame Body为两个字节的Reason code
  • 此帧在WEP、WPA/WPA2的安全机制下均不进行加密处理,故可以任意伪造,从而完成拒绝服务的攻击

控制帧(Type:1)

通知设备开始,停止传输,或连接失败等情况的短消息

Ps-Poll (subtype:10)

STA省电模式下取数据的控制帧

RTS/CTS (subtype:11/12)

即请求发送/清除发送,用于半双工时的收发切换

ACK (subtype:13)

  • 接收端正确收到向发送方返回ACK
  • 单播帧立刻确认,广播组播不需要ACK
  • 实现可由硬件完成

数据帧(Type:2)

主要用于传输数据

Data (subtype:1)

用于传输数据

Null Data (subtype:4)

用于STA声明自己进入省电模式

无线加密

因为无线网络是基于无线电波的,导致数据都可以被监听嗅探,所以加密是必须的手段。主要有保护无线的方法:WEP和WPA ,这里WEP和WPA都不是加密算法名称,而是一套保护无线网络的方法。

WEP

WEP为802.11标准的一部分,发布后不就被发现漏洞

  • 使用预设共享秘钥,通过挑战应答机制来完成认证过程
  • 对保护的数据使用RC4加密算法,起始向量为24位
  • RC4位对称加密算法,实现简单速度快

参考:无线局域网安全(一)———WEP加密

WPA

802.11i组为提高无线安全,卡发的两个新的链路层加密协议:

  • Temporal Key Integrity Protocol(TKIP)————WPA
  • Counter Mode with CBC-MAC(CCMP)————WPA2

WPA个人:预设共享秘钥

WPA企业:802.1x和Radius/kerberos/Ldap等服务器实现AAA(认证,授权,记账)

参考:

无线局域网安全(二)————TKIP加密

无线局域网安全(三)————CCMP加密

无线局域网安全(四)————身份认证之4路握手

iNode协议逆向研究初步入门by tsy

WPS

WPS是wifi联盟2006年开发的一项技术,通过PIN码来简化无线接入的参数,PIN码是分为前后各四位两段共8位数字,主要包括两种快速接入的方法:PIN(personal identifiy number)and PBC( push button configuration),其中PIN又有以下两种

  • STA直接访问AP,输入AP的PIN码即可(AP PIN)
  • STA生成PIN码,通过AP的管理界面输入生成的PIN码即可链接(STA PIN)
  • AP和STA各按一个按钮就能接入无线

第一种方式需要知道AP的PIN码
第二种方式需要有已经接入热点并能访问AP控制界面的管理员手动输入PIN码才可接入
第三种方式需要按下AP上的按键,与AP可以物理接触即可完成热点的接入

这三种方式均是接入AP的方式,当通过WPS的验证后,AP会将秘钥发送给STA设备,然后在通过WEP或者WPA的方式连接到AP。即可以认为WPS是建立在WEP或WPA保护机制之上的一个获取秘钥的方式,热点本身还是要采用以上两种的保护方式。

//   ___________________
//  |                   |
//  |        WPS        |
//  |___________________|
//  |       |           |
//  |  WEP  |  WPA/WPA2 |
//  |_______|___________|

参考:WPS以及它的两种方式PIN与PBC的理解