LV02-01-天猫精灵IOT-02-WiFi-03-WiFi帧抓包
本文主要是WiFi——WiFi帧抓包相关笔记,若笔记中有错误或者不合适的地方,欢迎批评指正😃。
点击查看使用工具及版本
Windows版本 | windows11 |
Ubuntu版本 | Ubuntu22.04的64位版本 |
VMware® Workstation 16 Pro | 16.2.3 build-19376536 |
终端软件 | MobaXterm(Professional Edition v23.0 Build 5042 (license)) |
点击查看本文参考资料
分类 | 网址 | 说明 |
官方网站 | 阿里云 | 阿里云官网主页 |
阿里生活物联平台 | 生活物联网平台(飞燕平台)主页 | |
AliGenie | 天猫精灵开放平台AliGenie主页 | |
阿里物联网平台 | 阿里物联网平台主页 | |
Bluetooth 技术网站 | 蓝牙协议规范什么的可以来这里找 | |
Telink | Telink | Chips for a Smarter IoT (telink-semi.com) Telink中文官网 | |
开发手册 | AliOS Things开发指南 | AliOS Things开发指南,这里是最新版本,可以直接从官网找到 |
AliOS Things开发指南 | AliOS Things应用开发指南,这里应该是3.3版本的完整开发文档 | |
AliOS Things开发指南(3.0) | AliOS Things应用开发指南,这里应该是3.0版本的完整开发文档 | |
生活物联网平台开发文档 | 生活物联网平台(飞燕平台)开发文档 《设备端开发指南》 | |
Wi-Fi IoT品类定义与功能开发 | 天猫精灵IoT开放平台——Wi-Fi IoT品类定义与功能开发 | |
硬件平台 | mk3080 WiFi开发板 | WiFi开发板使用指南-阿里云开发者社区 |
esp8266开发板 | 一个教程:ESP8266-NodeMCU开发板详解-太极创客 (taichi-maker.com) | |
TLSR8258 Datasheet | Datasheet for Telink BLE + IEEE802.15.4 MultiStandard Wireless SoC TLSR8258 | |
参考资料 | AliOS Things 3.0 应用开发指南 | 这个只是一篇参考文章,里面是一些环境搭建相关的,可以参考 |
IP知识百科 - 华为 (huawei.com) | IP的一些相关知识点 |
点击查看相关文件下载
分类 | 网址 | 说明 |
蓝牙规范相关文档 | Core Specification 5.2 | 核心规格 5.2,该规范定义了创建可互操作的Bluetooth 设备所需的技术。 《Core_v5.2.pdf》 |
Mesh Model(v1.1) | 本Bluetooth 规范定义了模型(以及它们所需的状态和消息),这些模型用于在mesh 网络中的节点上执行基本功能,超出了Bluetooth Mesh 配置文件 规范中定义的基础模型。 本规范包括定义跨设备类型标准功能的通用模型,以及支持关键mesh 场景的模型,如照明控制、传感器、时间和场景。 《MshMDL_v1.1.pdf》 | |
Mesh Profile(v1.0.1) | 该Bluetooth 规范定义了基本要求,以实现可互操作的mesh 网络解决方案,用于Bluetooth 低能量无线技术。 《MshPRFv1.0.1.pdf》 | |
Mesh Device Properties | 本规范包含Bluetooth Mesh 配置文件 和Bluetooth Mesh 模型规范所要求的设备属性的定义。 但是跟之前的有些区别,我主要看的之前的版本:《MMeshDeviceProperties_v1.2.pdf》 | |
GATT Specification Supplement | GATT Specification Supplement | Bluetooth® Technology Website。 好像可以在线看:《GATT Specification Supplement》 | |
Assigned Numbers | GATT的一些类型定义可以在这里找。 | |
AliOS Things | alios-things/AliOS-Things | Gitee上的AliOSThings SDK源码仓库 |
alibaba/AliOS-Things | GitHub上的AliOSThings SDK源码仓库 | |
天猫精灵蓝牙Mesh协议栈 | alibaba-archive/genie-bt-mesh-stack | GitHub上的天猫精灵蓝牙Mesh协议栈源码仓库。 之前是在alibaba/genie-bt-mesh-stack这个仓库。 写笔记的时候最新提交为faf523618a6a2560090fc423222b9db80984bb7a |
蓝牙Mesh设备开发指南 | 阿里云生活服务平台开发手册——蓝牙设备开发一节中的内容 |
这一节我们使用Omnipeek工具来对WiFi接入过程进行抓包。
一、Omnipeek
1. 软件简介
OmniPeek被誉为世界上功能最强大的网络协议分析器,原属于世界领先的数据包捕获和分析Savvius公司的产品,(以前称为WildPackets)在数据包捕获,深度数据包检测和网络诊断解决方案领域领先25年,现已被Liveaction收购。Liveaction之前主要针对网络数据流级别的分析,收购Savvius之后,两者整合形成互补实现了从流到数据包的全面的分析平台。
OmniPeek在世界上享有很高的知名度,备受网络分析工程师的喜爱。OmniPeek能对数据包进行深入的解析,分析上千种协议,从多个维度全方位的分析网络流量,提供数十种可直观的图表报告,提供专家级网络事件的分析和诊断。可以实现不依赖与研发设备进行抓包,抓包原理是omnipeek的网卡处于混杂模式,不断的监听空口包,然后进行采集。
说了那么多,我们可以用它来干嘛?只要我们电脑上有一个支持这个软件抓包的网卡(没有的话,那就没办法使用了),我们就可以使用这个软件抓取相关的包,例如我们的手机连接了路由器,我们就可以抓取手机和路由器之间的WiFi数据包,包括WiFi连接过程中的包,这一点是wireshark无法做到的。其实我们是可以抓取连接到路由器的所有设备的包的,只要我们知道设备的物理地址,都可以进行过滤,从而获取相关的数据包。
2. 下载安装
这个软件官网在这里:Network Protocol Analyzer | Omnipeek - LiveAction,它好像是收费的,但是肯定有办法的,这里的安装及相关过程就不再细说了,网上很多。安装完毕后,我安装后进行了汉化,打开界面如下:
3. 支持哪些网卡?
这个软件抓包的话对网卡是有要求的,我们使用的网卡能不能用这个软件进行抓包分析,我们可以在这里查询:
CSDN博客:最新OmniPeek无线驱动详细列表与下载说明/支持捉空口包的网卡_omnipeek支持的网卡-CSDN博客
之前是可以在这里查:mypeek.wildpackets.com,但是这里好像不怎么容易打开。
二、抓包过程
1. 查询网卡是否支持抓包
我们打开软件后:【菜单栏Capture】→【Start Capture】会有以下弹窗:
我们选择这个Adapter,然后就会显示我们现在的电脑上有哪些适配器啦,在下方会显示适配器的一些信息,很遗憾,我的电脑的无线网卡适配器并不能进行抓包。那后面我就直接从课程视频截图吧。
2. 选择信道
前面确保我们的网卡支持抓包的话,我们在相同的界面选择【802.11】→【select channel】来选择要抓包的信道:
路由器是工作在一个信道,但是我们有13个信道,选择的信道不对的话,是抓不到包的,那怎么办?我们一开始的时候是不知道路由器在哪个信道工作的,我们可以选择下面的【scan】,然后勾选所有的信道:
然后我们就可以在左侧的【Wireless】→【Channels】中看到我们所勾选的所有信道的信息:
3. 确定信道
前面我们第一次抓包的时候不确定路由器是在哪个信道,所以选择了所有信道进行扫描,我们点击【Wireless】→【Channels】面板右上角的【start capture】按钮,软件就会开始逐个信道进行扫描:
然后就会有这样一个箭头从上到下逐个移动,扫描每一个信道:
信道上有信号,就会有数据,没有信号的信道所有的列都会是0:
我们切换到【Wireless】→【signal】面板,就会发现信道中的信号信息:
我们再切换到【Wireless】→【WLAN】面板,在这里我们会看到各个SSID下的数据包(这里课程中使用的WiFi为CU_zyFG):
我们点开看一下这个CU_zyFG:
从这里我们就可以确定,我们使用的这个WiFi的路由器工作在信道10,所以后面抓取数据的时候就可以只抓10信道的数据啦。要是不确定的话,还可以看一下路由器物理地址,以此确认,怎么看路由器物理地址?我们打开windows的CMD命令行,输入ipconfig
命令可以查看电脑的IP地址:
发现电脑的IP地址为192.168.1.8,那么路由器的IP地址一般就为192.168.1.1,然后我们在命令行中输入arp -a
,可以看到192.168.1.1这个IP的物理地址为90-86-9b-ab-52-4b,与上面图中的路由器物理地址一致,就可以确认这个就是我们所要抓的WiFi的数据啦。
4. 抓取固定信道的数据
上面我们确认了信道为10,所以我们可以修改【802.11】→【select channel】,配置为信道10:
然后重新抓包就可以只抓信道10的包,我们打开【Capture】→【Packets】面板,就可以看到抓到的报文数据包啦:
但是会发现数据报文非常多,因为还会有其他的电脑或者设备连接在此WiFi中,并且也使用10信道。
5. 清除抓取的数据
上面我们抓的数据怎么清除重抓?我们可以全选(好像不全选也行)这个数据包,然后菜单栏上【Edit】→【clear all packets】
6. 过滤指定物理地址的报文
上面我们看到抓到的数据包非常多,不知道哪个是我们的电脑和路由器之间的数据包,我们可以在抓包前配置一个过滤器,只抓我们自己的电脑连接WiFi过程中的数据包:【Capture】→【Filters】→【Insert】
然后重新抓取即可,还需要确认一下这里勾选使用了这个过滤器:
然后我们再抓包,就会发现抓取的都是路由器90-86-9b-ab-52-4b相关的包:
但是这个包还是很多,我们想要抓路由器和我们的电脑的包,我们看一下自己电脑的物理地址,我们使用ipconfig -all
命令在命令行查看:
我们可以编辑刚才的过滤器,添加我们电脑的物理地址:
然后再抓包就会看到只抓我们的电脑和路由器之间的包啦。我们可以先断开WiFi连接,然后开启抓包,然后再点击WiFi进行连接,之后就可以抓到相关的包啦:
可以看到,这一次就只抓了路由器90-86-9b-ab-52-4b和我们的电脑之间的包啦。我们单击这个报文,就可以看到详细的报文信息:
7. 抓指定的WiFi帧
我们可以通过过滤器,来只抓WiFi的数据帧,控制帧,管理帧等:【Capture】→【Filters】→【Insert】→【勾选Protocol】→【选择要抓取的协议类型】