第二章 WLAN 和固有的不安全性

2.1 回顾 WLAN 帧

在 WLAN 中,通信以帧的方式进行,一帧会拥有下列头部结构:

Frame Control
字段本身拥有更复杂的结构:

类型字段定义了下列三种 WLAN 帧:
1.管理帧:管理帧负责维护接入点和无线客户端之间的通信。管理帧拥有下列子类型:二、详细步骤

验证
解除验证
关联请求
关联响应
重关联请求
重关联响应
解除关联
信标
探测请求
探测响应

2.控制帧:控制帧负责确保数据在接入点和无线客户端之间合理交换。控制帧拥有下列子类型:

请求发送(RTS)
清除发送(CTS)
确认(ACK)

3.数据帧:数据帧携带在无线网络上发送的真实数据。它没有子类型。

我们现在看一看如何使用 Wireshark 嗅探无线网络上的这些帧。也有其他工具 -- 例如 Airodump-NG,Tcpdump,或者 Tshark -- 你同样可以用于嗅探。我们在这本书中多数情况会使用 Wireshark,但是我们推荐你探索其它工具。第一步是创建监控模式的接口。这会为你的适配器创建接口,使我们可以读取空域中的所有无线帧,无论它们的目标是不是我们。在有线的世界中,这通常叫做混合模式。

实战时间 -- 创建监控模式的接口

遵循下列指南来开始:

1.启动 Kali 并使适配器保持连接。一旦你打开了控制台,输入 iwconfig 并确保网卡被检测到,驱动被正确加载。

┌──(smoke㉿smoke-gs70-2pc-stealth)-[~]
└─$ iwconfig      
lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11  ESSID:"Smoke_LivingRoom_5.8G"  
          Mode:Managed  Frequency:5.24 GHz  Access Point: DC:65:55:EC:34:A7   
          Bit Rate=351 Mb/s   Tx-Power=23 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=54/70  Signal level=-56 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:1  Invalid misc:278   Missed beacon:0

wlan1     IEEE 802.11  ESSID:"Smoke_LivingRoom_5.8G"  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=22 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          
vmnet1    no wireless extensions.

vmnet8    no wireless extensions.

 

 2.使用 ifconfig wlan1 up 命令启动网卡(其中 wlan1 是你的适配器)。通过运行 ifconfig wlan1 验证网卡是否正在运行。你应该在输出的第二行看到单词 UP ,像这样:

┌──(smoke㉿smoke-gs70-2pc-stealth)-[~]
└─$ sudo ifconfig wlan1 up
[sudo] smoke 的密码:
                                                                                                                                                                                                                                            
┌──(smoke㉿smoke-gs70-2pc-stealth)-[~]
└─$ ifconfig wlan1   
wlan1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether b2:28:be:8b:72:2e  txqueuelen 1000  (Ethernet)
        RX packets 331727  bytes 237650078 (226.6 MiB)
        RX errors 0  dropped 11  overruns 0  frame 0
        TX packets 230254  bytes 49213202 (46.9 MiB)
        TX errors 0  dropped 15 overruns 0  carrier 0  collisions 0

3.为了将网卡设为监控模式,我们使用 airmon-ng ,它在 Kali中自带。首先执行 airmon-ng 命令来确认它检测到了可用的网卡。你应该能看到输出中列出的 wlan1 接口:

┌──(smoke㉿smoke-gs70-2pc-stealth)-[~]
└─$ sudo airmon-ng            

PHY     Interface       Driver          Chipset

phy0    wlan0           rtw_8821cu      Realtek Semiconductor Corp. 802.11ac NIC
phy1    wlan1           iwlwifi         Intel Corporation Wireless 7260 (rev bb)

4.现在输入 airmon-ng start wlan1 命令来创建对应 wlan1 设备的监控模式接口。新的监控模式接口名为 mon0 。(你可以再次不带参数使用 airmon-ng 来验证。)

┌──(smoke㉿smoke-gs70-2pc-stealth)-[~]
└─$ sudo airmon-ng start wlan1

Found 2 processes that could cause trouble.
Kill them using 'airmon-ng check kill' before putting
the card in monitor mode, they will interfere by changing channels
and sometimes putting the interface back in managed mode

    PID Name
   1096 NetworkManager
   1371 wpa_supplicant

PHY     Interface       Driver          Chipset

phy0    wlan0           rtw_8821cu      Realtek Semiconductor Corp. 802.11ac NIC
phy1    wlan1           iwlwifi         Intel Corporation Wireless 7260 (rev bb)
                (mac80211 monitor mode vif enabled for [phy1]wlan1 on [phy1]wlan1mon)
                (mac80211 station mode vif disabled for [phy1]wlan1)

┌──(smoke㉿smoke-gs70-2pc-stealth)-[~]
└─$ sudo airmon-ng            

PHY     Interface       Driver          Chipset

phy0    wlan0           rtw_8821cu      Realtek Semiconductor Corp. 802.11ac NIC
phy1    wlan1mon        iwlwifi         Intel Corporation Wireless 7260 (rev bb)

5.同样,运行 ifconfig mon0 会展示叫做 mon0 的新接口。

┌──(smoke㉿smoke-gs70-2pc-stealth)-[~]
└─$ ifconfig wlan1mon
wlan1mon: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        unspec D8-FC-93-0F-85-93-30-6A-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 1342  bytes 428541 (418.4 KiB)
        RX errors 0  dropped 1342  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

可以创建多个监控模式的接口,使用相同的物理网卡。使用airmon-ng工具来看看如何完成。

实战时间 -- 嗅探无线封包

遵循下列指南来开始:
1.启动我们在第一章中配置好的接入点 Wireless Lab 。
2.通过在控制台中键入 Wireshark & 来启动 Wireshark,一旦Wireshark 运行,访问 Capture | Interfaces 。

3.通过点击 Start 按钮从wlan1mon接口选择封包捕获,像截图中那样。Wireshark 会开始捕获,现在你可以在 Wireshark 窗口中看到封包。

4.这些就是你的无线适配器从空域中嗅探到的封包。为了查看任何封包,在上面的窗口中选择它,中间的窗口中会展示整个封包:

点击 IEEE 802.11 Wireless LAN management frame 前面的三角形来展开并查看详细信息。