一、简介
- 目的
本次系统审计旨在通过解析 USB 设备通信数据包,提取并分析键盘、鼠标等输入设备的操作数据,验证 USB 数据传输的完整性与可追溯性,最终获取目标审计标识(flag),为 USB 设备数据安全审计提供实操参考。
- 意义
随着 USB 设备的广泛应用,其数据传输的安全性与可审计性愈发重要。本审计通过还原 USB 输入设备的操作轨迹,验证了从数据包捕获到数据解析的全流程审计可行性,可为设备操作溯源、数据安全排查等场景提供技术支撑,助力提升终端设备数据安全防护能力。
二、审计范围和目标
- 范围
****数据范围:****USB 设备通信产生的数据包文件(含 usb.capdata 数据),涵盖 SCSI Write 命令包(仅含 "写入指令",无实际数据,是数据传输的 "预告")、URB BULK out 包(承载主机到 USB 设备的批量数据(如文件数据))及 URB INTERRUPT in 包(承载 USB 设备到主机的实时小数据(如键盘 / 鼠标操作))等相关数据。
****操作范围:****数据包提取、二进制文件拼接、十六进制解析、PCAP 格式转换、USB 键值分析等全流程审计操作。
- 目的
(1)完成 USB 通信数据包的提取与解析,还原设备操作数据;
(2)通过数据分析获取准确的审计标识(flag);
(3)总结 USB 设备数据审计的关键流程与技术要点。
三、审计的方法
1.****数据包提取法:****使用 tshark 工具从原始数据中提取 USB 设备通信的 usb.capdata 字段,筛选关键通信数据;
2.****二进制文件操作法:****通过命令行工具拼接多个二进制文件,整合分散的设备数据;
3.****十六进制解析法:****利用 WinHex 工具查看二进制文件的十六进制编码,识别数据格式与隐藏提示;
4.****格式转换法:****通过 Python 脚本将十六进制文本转换为标准 PCAP 文件,便于专业工具分析;
5.****键值分析法:****对 PCAP 文件中提取的 8 字节 USB 键值数据进行分类解析,关联设备操作逻辑。
四、审计的流程
步骤一:查看 SCSI Write 命令包,确认实际数据存储于后续的 URB BULK out 包中;

步骤二:将所有out包里的Leftover Capture Data数据导出分组字节流

步骤三:通过命令将导出来的数据的bin文件,进行拼接

步骤四: 使用 WinHex 工具打开拼接后的 all.bin 文件,识别到 pcap 格式标识(d4c3b2a1)及 USB 数据解析提示

步骤五: 利用 tshark 工具提取数据包中的 usb.capdata 字段,获取原始十六进制数据

通过查看内容,发现了d4c3b2a1的开头格式,这是pcap的格式,将这个开头后的内容提取出来
步骤六:使用python脚本 将含 d4c3b2a1 开头的十六进制文本转换为 output.pcap 文件

打开转换成功的pcap文件

步骤七:再次通过 tshark 提取 USB 键值数据,重点分析 8 字节键值对应的设备操作;

步骤八: 结合键值编码规则与设备操作逻辑,解析得到审计 flag

五、审计结果
- 数据完整性验证
拼接后的二进制文件(all.bin)大小为 84,992 字节,通过 WinHex 验证无数据丢失,PCAP 格式转换成功,output.pcap 文件可正常解析出 37 字节的 USB 通信帧。
- 关键数据解析结果
- 识别出 USB 设备通信的标准格式标识(d4c3b2a1),确认数据来源为合法 USB 设备通信;
- 从 8 字节 USB 键值数据中解析出键盘按键操作(如 shift 键触发标识 0x02)、鼠标动作等设备交互记录;
- 最终通过键值数据关联分析,获取审计标识:【flag{u5b_key}】。
- 审计结论
本次审计流程完整、方法有效,成功还原了 USB 设备的通信数据与操作轨迹,验证了从数据提取到 flag 获取的全链路可行性,审计结果真实可靠。
六、审计建议
- 强化 USB 设备接入管控,建议在终端设备中启用 USB 数据审计功能,记录设备通信的关键数据包;
- 建立标准化的 USB 数据审计流程,规范二进制文件拼接、格式转换等操作的参数设置,避免数据损坏;
- 优化审计工具组合,建议搭配 tshark、WinHex、Wireshark 及自定义 Python 脚本,提升数据解析效率;
- 加强键值数据字典建设,积累不同 USB 设备的键值编码规则,为后续快速解析提供参考;
- 定期开展 USB 设备审计实操演练,提升审计人员对数据格式识别、异常数据排查的能力。