如何使用 CatSniffer 和 Kismetismet 构建一个专用的 Zigbee 信号嗅探站,并从零开始捕获 802.15.4 数据包
Kismet 是一款用于无线网络发现和入侵检测的工具。与许多专注于主动扫描(发送探测包以查看响应者)的工具不同,Kismet 采用被动监控的理念,充当一个沉默的观察者,在不发送任何数据的情况下“监听”射频(RF)环境。这使其成为一种强大的网络拓扑映射工具,能够在不干扰网络生态系统或触发内部设备警报的前提下进行操作。
除了隐蔽性之外,Kismet真正的优势在于其框架。它不仅仅是一个Wi-Fi工具,而是一个模块化引擎,能够同时从多个来源聚合数据。通过其基于网页的仪表盘,Kismet可以实时可视化设备之间的关系、制造商标识以及信号指标。当我们把这一引擎指向Zigbee的物理层IEEE 802.15.4标准时,便能揭开智能灯泡、传感器和网状网关的面纱,使它们原本隐藏起来的真相得以显现。
CatSniffer作为入口
如果Kismet提供了接口和智能功能,那么CatSniffer则提供了进入2.4GHz及次GHz频谱的物理能力。CatSniffer是一款多功能、开源工具,专为物联网协议分析而设计。尽管它能够处理LoRa和蓝牙低功耗(BLE),但其作为Zigbee嗅探器的实用性尤为突出。
在本教程中,我们重点介绍该设备作为专用嗅探节点的能力。通过利用内置的德州仪器CC1352芯片,CatSniffer可被配置为监听特定的Zigbee信道。它捕获空中传输的原始802.15.4数据包,并通过USB-C接口进行传输。在此配置下,CatSniffer充当Kismet的数据源,将原始无线电信号转换为结构化的数据流,供Kismet框架进行解码和显示。这种集成使我们能够弥合底层硬件信号与高层网络分析之间的鸿沟。
本指南的主要目标是超越理论层面的安全分析,转而进行实际的观察。随着Zigbee设备的广泛应用,它们形成了一个密集且无形的通信网络。由于检测这一层需要专用硬件,标准的安全审计常常忽视了这一点。通过结合Kismet和CatSniffer,我们正在构建一个能够绘制这些网络拓扑、识别未经授权设备并捕获流量的平台,以验证敏感数据是否得到正确加密。
准备环境:安装 Kismet
我们旅程的第一步是安装Kismet。Kismet支持Linux、macOS和Windows(通过Linux虚拟机运行)。本教程基于Ubuntu Linux系统,但你也可以在Kismet的官方文档中找到相应的安装说明。
建议您在继续之前检查系统是否已更新。
安装可能需要几分钟,具体时间取决于网络速度和电脑资源,请在安装过程中耐心等待。
准备硬件:安装嗅探器固件
下一步是准备 CatSniffer 使其能够与 Kismetismet 共同工作,因为这需要刷入特定的固件。多亏了 Catnip,这个过程变得非常简单。
1. 检查猫薄荷是否已更新,或安装该工具。您可以直接从官方仓库下载:CatSniffer Tools。
2. 验证Catnip工具是否能通过发送以下命令检测到CatSniffer:
3. 使用 Catnip 在您的 CatSniffer 上安装 ti_sniffer 固件:
要确认固件已成功刷入,您会看到类似以下内容:
之后,CatSniffer 就可以与 Kismet 一起使用了。
Kismet 和 CatSniffer
Kismet 不依赖 CatSniffer,因此当你运行 Kismet 时,会发现无法检测到 CatSniffer。这是意料之中的情况,正因如此我们才在此。
1. 连接运行Sniffer固件的CatSniffer。
2. 在新终端中运行以下命令:
您必须为设备选择正确的串行端口,为设备命名,并选择通道。在此使用场景中,我们将设备名称设置为“Peqe”,启用通道跳转功能,使数据源(我们的CatSniffer)能够通过ZigBee所使用的通道进行移动,同时将第25个通道设为起始点,以便Kismet开始读取数据。我们还设置了第25个通道,因为我们知道该通道上存在一个活跃的网络。
3. 运行命令后,Kismet 将在后台自动完成所有设置。当控制台终端准备就绪时,顶部会显示一条提示信息,点击该 IP 地址,或在网页浏览器中打开即可。
4. 首次运行 Kismet 时,您需要设置一个用户名和密码,并保存好以备将来使用。
5. 在“汉堡”菜单下 > 数据源中配置数据源设置。该菜单可用于设置 CatSnifferiffer 可监听的信道、信道跳转方式以及设备状态。当已知所监控的网络时,此设置非常有用。
6. Kismet 将开始显示由数据源(即 CatSniffer)捕获的数据包。
现在一切设置完成,我们可以开始分析在Kismet中获取并显示的数据。如果点击其中一个嗅探到的包,Kismet会提示显示该ID所捕获包的详细信息。
既然我们已经了解了所有这些观点和数据,你可能会想:“接下来怎么办?”而正是从这里开始出现各种可能性。以下是一些例子。
我可以用 CatSniffer 和 Kismet 做些什么?
1.物理空间中的设备识别:
通过观察“被看到”和“信号”图表,您可以物理定位建筑物内的设备。如果某个特定传感器的信号较弱,可以使用CatSniffer来确定它正在跳过的Zigbee路由器,从而帮助您诊断标准智能家居应用无法显示的网状连接问题。此外,如果设备信息视图能提供制造商等信息,将使工作更加轻松。
2. 将数据导出到 Wireshark
深度分析通常需要 Wireshark 的强大功能。Kismetismet 将捕获的所有流量保存到一个 .kismet(SQLite)数据库中。你可以使用内置工具 kismetdb_to_pcapcap 将其转换为 Wiresharkark 支持的标准 PCAP-NG 文件。转换文件时,可使用以下命令结构:
在Wireshark中打开文件后,您可以查看实际的Zigbee集群库(ZCL)命令。如果您拥有Zigbee网络的信任中心链接密钥,甚至可以解密通信流量,从而准确了解家庭网络中传输的具体数据,例如“解锁”指令或“检测到移动”警报等信息。
3. 无线漫游与地理空间测绘
Kismet 的一个特点是能够与 GPS 集成。只需将一个简单的 USB GPS 模块连接到笔记本电脑上,Kismet 就能为每个捕获的 Zigbee 数据包添加精确的经纬度坐标。
这将你的CatSniffer转变为一个Zigbee无线网络探测设备。当你在环境中移动时,Kismet会构建出物联网设备的地理数据库。之后你可以将这些数据导出为KML文件,并在Google Earth上可视化本地的物联网环境,就像我们之前用Minino做的那样。这对于进行城市安全审计的安全研究人员尤其有用,可以帮助他们了解有多少“智慧城市”或工业传感器暴露在街道上。
4. 设置无线入侵检测(WIDS)
您可以将 Kismet 配置为您的 Zigbee 网络的安全守护者。通过使用警报系统,您可以设置针对特定事件的通知,例如:
新设备发现:当未知的Zigbee设备尝试接入网络时,立即收到提醒。
信号异常:通过监测“噪声”地板来检测潜在的干扰或阻塞。
设备丢失:当关键安全传感器(如窗户触点)停止与网状网络通信时,将收到通知。
您可以在官方文档中找到有关警报的更多信息。
现在,你已经弥合了昂贵的专有工业嗅探器与“易得”的开源硬件之间的鸿沟。CatSniffer 不仅能“显示”数据包,更能让你掌握理解我们周围无形基础设施的关键。无论你是正在调试新型传感器的开发人员,还是正在审计建筑安全的研究者,这套基于 Kismet 的系统都能提供所需的可见性,帮助你从猜测转向真实数据。
本文编译自hackster.io





