基于Wireshark+Acrylic WiFi Sniffer的WiFi空口抓包环境
date
Jan 18, 2021
slug
2021-01-18-wireshark-acrylic-sniffer
status
Published
tags
WiFi
Wireshark
无线通信
type
Post
AI summary
summary
本文总结了使用Acrylic WiFi Sniffer+Wireshark,以及搭配必要的抓包无线网卡,进行WiFi空口包抓取环境的搭建过程。
前提条件:
- 安装好wireshark和Acrylic WiFi Sniffer软件;
- 一个能够支持Monitor工作模式的无线网卡;
- 提前知道要抓包的AP信道;
- (如果需要对数据链路层以上的数据进行解密的话,需要)提前知道要抓包的AP SSID和密码;
安装Wireshark和Acrylic WiFi Sniffer
- 在www.wireshark.org上下载wireshark的最新版本并安装即可;
- Acrylic WiFi sniffer
- 下载地址:https://www.acrylicwifi.com/en/downloads-free-license-wifi-wireless-network-software-tools/download-acrylic-wi-fi-sniffer/#;
- 免License的Acrylic WiFi Sniffer软件在进行抓包的时候,每次执行抓包只能抓1min的包,并且抓包5min后才能执行第二次抓包。如果要去掉以上限制,就需要购买License:1年期的软件使用授权费用是100美元,永久授权是220美元;
- 安装后打开软件,Acrylic WiFi Sniffer软件就开始扫描连接到电脑上的无线网卡,并检测是否能够Monitor工作模式,并把能够支持Monitor模式的无线网卡列表罗列出来:
![notion image](https://www.notion.so/image/https%3A%2F%2Ffile.notion.so%2Ff%2Ff%2F686cacde-542e-418e-b72f-86d488231512%2F2ffc37ac-ce64-4c8a-b3e5-824fb48bcb98%2FUntitled.png%3Fid%3Db61fe937-677b-459d-abe6-4039ca4f33af%26table%3Dblock%26spaceId%3D686cacde-542e-418e-b72f-86d488231512%26expirationTimestamp%3D1722117600000%26signature%3DdY1GPs9U--P479iZ4C8ggk7tm37dvb8_Z1tp0BE0TQE?table=block&id=b61fe937-677b-459d-abe6-4039ca4f33af&cache=v2)
- 如果以上Compatible WiFi Devices中显示的结果是No WiFi devices found,就需要另外找一个能够支持Monitor工作模式的无线网卡;
Acrylic WiFi Sniffer支持的无线网卡
- Acrylic WiFi Sniffer软件对无线网卡的支持情况在以下链接中查看:https://www.acrylicwifi.com/en/wlan-wifi-wireless-network-software-tools/sniffer-wifi-for-windows/acrylic-wi-fi-sniffer-requirements-and-compatibility/;
- 实际上以上连接中只是罗列出来一部分,例如可以确定磊科的NW392 USB无线网卡可以支持;
抓包前提前扫描AP所在的信道
可以提前在手机上安装AP扫描软件对周围的AP状况进行扫描,例如Android平台的《WiFi分析助手》:
![notion image](https://www.notion.so/image/https%3A%2F%2Ffile.notion.so%2Ff%2Ff%2F686cacde-542e-418e-b72f-86d488231512%2Ffc55f621-52da-465e-ade4-f5c5a850a8c4%2FUntitled.jpeg%3Fid%3D0a0fa8c8-9465-4320-908e-95f6b6fbb73b%26table%3Dblock%26spaceId%3D686cacde-542e-418e-b72f-86d488231512%26expirationTimestamp%3D1722117600000%26signature%3DAQJms1AehjIWSKlDMtTENyXpSkdz_I9Lb5lX5-tyN-U?table=block&id=0a0fa8c8-9465-4320-908e-95f6b6fbb73b&cache=v2)
使用Wireshark进行WiFi空口包的抓包
打开Wireshark后,在Wireshark捕获设备列表中选择Acrylic WiFi Sniffer软件找到的无线网卡:
![notion image](https://www.notion.so/image/https%3A%2F%2Ffile.notion.so%2Ff%2Ff%2F686cacde-542e-418e-b72f-86d488231512%2Feeae6d01-2225-47e8-82a7-2257f4fc70b4%2FUntitled.png%3Fid%3D5bd28dcd-69d3-4708-968b-a852d6b14128%26table%3Dblock%26spaceId%3D686cacde-542e-418e-b72f-86d488231512%26expirationTimestamp%3D1722117600000%26signature%3DXRgcuX9XP1zzScE9nJe0tJlOSMZTxKVvYAoYekkh1xg?table=block&id=5bd28dcd-69d3-4708-968b-a852d6b14128&cache=v2)
点击前面的齿轮按钮选择正确的wifi信道,确认开始后即启动WiFi空口包抓包:
![notion image](https://www.notion.so/image/https%3A%2F%2Ffile.notion.so%2Ff%2Ff%2F686cacde-542e-418e-b72f-86d488231512%2F5bb32aad-f4cd-4e5c-b8c3-c072b01ae596%2FUntitled.png%3Fid%3Dc6b388c7-ccae-42b1-a69b-68b1c72bb6f5%26table%3Dblock%26spaceId%3D686cacde-542e-418e-b72f-86d488231512%26expirationTimestamp%3D1722117600000%26signature%3DLii51K3LO8uaYG3gsvmxWufBh9syVI7PxLhkxt1_-E4?table=block&id=c6b388c7-ccae-42b1-a69b-68b1c72bb6f5&cache=v2)
- 在Channel位置选择使用WiFi信道扫描工具扫描到的AP信道;
WiFi空口包的解密
- 默认情况下,通过以上WiFi空口包抓包环境抓取的数据包的Protocol都是802.11,因此只能看到数据链路层包头部分的內容,之前的部分都以QoS Data的形式进行加密。这样我们在进行抓包分析的时候就没法知道其上层协议、端口等信息的具体內容。
- 这是因为在空中传输的WiFi packet都是经过加密的,密钥在AP与STA进行Association操作的时候进行协商,此后的通信过程中,会使用协商的密钥对数据链路层以上的数据进行加密,只有这个packet的接收方才有正确的密钥来进行解密。
- 如果要实现对WiFi空口包抓包数据的解密操作,即能够看到802.11数据链路层以上的协议、数据、端口等內容,需要:
- 提前知道抓包AP的SSID和Key,并在wireshark中设置:Edit -> Preferences -> Protocols -> IEEE802.11 -> Edit,设置选择wps-pwd,key填:KEY:SSID;例如SSID是R8000,Key是88888888:
![notion image](https://www.notion.so/image/https%3A%2F%2Ffile.notion.so%2Ff%2Ff%2F686cacde-542e-418e-b72f-86d488231512%2Ff3f498c6-4277-4851-802b-7d124bd13c35%2FUntitled.png%3Fid%3D9d05609f-e3b7-414d-b186-c9b7d5f06178%26table%3Dblock%26spaceId%3D686cacde-542e-418e-b72f-86d488231512%26expirationTimestamp%3D1722117600000%26signature%3DIVlYxkbkMVzoA-ybKK1P9L4iPL7TO5fcXRfPjKkViJ4?table=block&id=9d05609f-e3b7-414d-b186-c9b7d5f06178&cache=v2)
- 能够抓取到一次完整的STA到AP的Association过程,这样才能够获取到这次STA与AP连接过程协商的加密密钥:
![notion image](https://www.notion.so/image/https%3A%2F%2Ffile.notion.so%2Ff%2Ff%2F686cacde-542e-418e-b72f-86d488231512%2Fa6154da3-083f-408d-8ccd-18d1f4281558%2FUntitled.png%3Fid%3D0a72a81e-fd85-4ba4-80ab-b0e4801f0913%26table%3Dblock%26spaceId%3D686cacde-542e-418e-b72f-86d488231512%26expirationTimestamp%3D1722117600000%26signature%3DC8zVx9Cn70t4L67vyTNmMo7TwZhBa0d4-7Tqz_WlIM4?table=block&id=0a72a81e-fd85-4ba4-80ab-b0e4801f0913&cache=v2)
- 最重要的就是能够拿到以上完整密钥协商过程的四个key,只有四个key都监听到的情况下,后续这个STA与AP之间的通信包才能得到正确的解密。
- 从以上完整的Association过程的抓包过程来看,如果要能够对后续的通信包正确解密成功,需要在wireshark中抓包到以下序列:
- STA向AP发出Authentication,并接收到应答Acknowledge;
- AP向STA发出Authentication,并接收到应答Acknowledge;
- STA向AP发出Association Request,接收到应答Acknowledge;
- AP向STA发出Association Response,接收到应答Acknowledge;
- AP向STA发出Key Message 1,接收到应答Acknowledge;
- STA向AP发出Key Message 2,接收到应答Acknowledge;
- AP向STA发出Key Message 3,接收到应答Acknowledge;
- STA向AP发出Key Message 4,接收到应答Acknowledge;
- 而实际的抓包测试中,可能会漏掉其中的某个key message,这样就会导致无法解密成功;
- 在遇到无法解密成功的情况下,需要检查一下:
- 是否在802.11包解密设置中填写正确了SSID和Key信息;
- 是否监听到一次完整的Association过程,即能够在抓包数据中看到完整的Key1-Key4的完整过程;
- 如果仍然无法解密成功,尝试修改802.11包解密设置中的Assume Packets have FCS和Ignore the protection bit设置选项;