加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 服务器 > 安全 > 正文

USB Fuzzing基础知识 从漏洞挖掘到漏洞报告

发布时间:2022-08-04 10:20:05 所属栏目:安全 来源:互联网
导读:最近,我开始使用基于Facedancer的一种工具来挖掘USB主机堆栈中的漏洞。本文首先介绍我的Fuzzing测试方法,然后给出完整更新的Windows 8.1 x64中的漏洞的实际示例。本文的目的不是重新定义USB Fuzzing测试,也不是对我的Fuzzing测试架构进行完整描述,而是要
  最近,我开始使用基于Facedancer的一种工具来挖掘USB主机堆栈中的漏洞。本文首先介绍我的Fuzzing测试方法,然后给出完整更新的Windows 8.1 x64中的漏洞的实际示例。本文的目的不是重新定义USB Fuzzing测试,也不是对我的Fuzzing测试架构进行完整描述,而是要叙述从Fuzzing测试到漏洞报告的完整步骤。
 
  我的Fuzzing结构基于Facedancer和Umap工具,并向其中添加了一些功能:
 
  · 在PCAP中为仿真设备捕获流量;
  · 从已记录的PCAP重放流量;
  · 基于Radamsa的数据包变异。
 
  下载完USBSTOR.sys的符号后,我将其加载到IDA Pro中,幸运的是,这些符号很容易理解,我很快找到了有趣的函数: USBSTOR_SelectConfiguration()
 
  第一个基本块显示了对usbd.sys导出的调用: USBD_CreateConfigurationRequestEx(),该输出返回指向URB_FUNCTION_SELECT_CONFIGURATION结构的指针 。根据MSDN [6],此“例程分配并格式化URB以选择USB设备的配置”。URB是客户端驱动程序用来描述其要发送到设备的请求的结构[7]。
 
  第二个基本块调用USBSTOR_SyncSendUsbRequest(),并将先前创建的URB作为第一个参数。调用此函数后,请求将通过USB堆栈发送,然后从主机控制器物理发送到设备。如果我中断USBSTOR_SyncSendUsbRequest()调用,则会观察到不是此调用导致系统崩溃。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读