Umap2:开源USB host安全评估工具

Umap2是一款由NCC Group和Cisco SAS小组开发的、基于python的USB host安全评估工具。
它拥有第一版所支持的所有功能:
umap2emulate:USB设备枚举
umap2scan:用于设备支持的USBhost扫描
umap2detect:USBhost操作系统检测(尚未实现)
umap2fuzz:USB host fuzzing
另外,该版本中添加了额外的功能:
USBhost fuzzing使用kitty作为fuzzing引擎
Umap2中不仅包含可执行的脚本,而且作为程序包进行安装,也可用于库
注意:Umap2目前仍然是一款处于alpha阶段的工具。API、可执行文件名都有可能会更改。
安装
Umap2是一个比较早期的版本,因此还不能通过pypi安装。目前是使用pip进行安装:
$ pipinstall git+https://github.com/nccgroup/umap2.git#egg=umap2
附属功能
Umap2的附属功能列在setup.py文件中,并且会与Umap2一起安装。但是对于某些设备需要添加支持:
大容量存储
需要在运行目录中添加名为stick.img的磁盘镜像。
MTP
1、需要在当前目录中添加名为mtp_fs的文件/文件夹
2、需要python程序包pymtpdevice,下载地址:https://github.com/BinyaminSharet/Mtp
用例
设备枚举
Umap2的基本功能是枚举。用户可以枚举任何一个存在的USB设备(使用umap2list命令查看可用设备):
$ umap2emulate -P fd:/dev/ttyUSB0 -C mass_storage
或枚举自己的设备:
$ umap2emulate -P fd:/dev/ttyUSB0 -C ~/my_mass_storage.py
将来会有一个详细的添加设备的指南,同时,用户可以在umap2/dev/目录下查看umap2设备。
设备支持扫描
Umap2会检测主机支持的USB设备类型。它通过在短周期内模拟不同的设备并发送设备特有的消息来完成扫描:
$ umap2scan -P fd:/dev/ttyUSB0
Fuzzing
Umap2的Fuzzing过程有三个步骤组成,这三步未来可能会写到一个独立的脚本中:
1、用户需要确定目标主机的消息序列和模拟的USB设备:
$ umap2stages -P fd:/dev/ttyUSB0 -C keyboard -s keyboard.stages
2、在独立的shell中启动kitty fuzzer,并提供第一阶段生成的stages:
$ umap2kitty -s keyboard.stages
3、开启fuzz模式的umap2键盘仿真
$ umap2fuzz -P fd:/dev/ttyUSB0 -C keyboard
步骤三执行后,fuzzing会话就开始了。
*原文地址:github
Umap2:开源USB host安全评估工具的更多相关文章
- 【转】Android Service创建USB HOST通信
之前做了一个关于Android USB通信的Case,通过Android的USB总线给Zigbee供电,和板载的Zigbee(基于Zigbee的自组网)进行通信.要使用Android的USB Host ...
- usb host和device的关系-ARM 论坛 - 21ic电子技术论坛
usb host和device的关系 疑问1:我们通常所用的u盘应该是usb device吧?我想这个不用多说,呵呵. ===============恩.============== 疑问2:我们通常 ...
- Android Service创建USB HOST通信
之前做了一个关于Android USB通信的Case,通过Android的USB总线给Zigbee供电,和板载的Zigbee(基于Zigbee的自组网)进行通信.要使用Android的USB Host ...
- 常用的商业级和免费开源Web漏洞扫描工具
Scanv 国内著名的商业级在线漏洞扫描.可以长期关注,经常会有免费活动.SCANV具备自动探测发现无主资产.僵尸资产的功能,并对资产进行全生命周期的管理.主动进行网络主机探测.端口探测扫描,硬件特性 ...
- Android开启OTG功能/USB Host API功能
Android USB 模式简介 设备模式 当计算机或其他USB主机需要连接安卓设备时,此时安卓设备是作为"USB设备"角色的,在计算机上显示为 USB 外设.现在的安卓设备已经被 ...
- Android USB Host与HID通讯
前端时间捣鼓一个HID的硬件, 需要和android通信, 网上搜索了一圈,收获不小. 比较好的文章是: Android USB Host与HID通讯 Android Service创建US ...
- [转]Android开源项目第二篇——工具库篇
本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多 ...
- pylot是一款开源的web性能测试工具
pylot是一款开源的web性能测试工具,http://www.pylot.org/ 参考文档:http://www.pylot.org/gettingstarted.html很容易上手 使用分为以下 ...
- 10 个强大的开源 Web 流量分析工具(转帖)
Web 流量分析工具多不胜数,从 WebTrends 这样专业而昂贵的,到 Google Analytics 这样强大而免费的,从需要在服务器端单独部署的,到可以从前端集成的,不一而足.本文收集并介绍 ...
随机推荐
- 1350. Primary Arithmetic
Children are taught to add multi-digit numbers from right-to-left one digit at a time. Many find th ...
- C#操作Dataset数据集与SQLite数据库
近日有需要写点C#程序,有用到Dataset数据集和SQLite数据库,由于我从来就不擅长记各种编程语言的语法,所以在查阅一堆资料后,留下以下内容备忘: 一.SQLite操作,直接贴代码,很简 ...
- Visual Studio 2015简体中文企业版/专业版下载+有效激活密钥
Visual Studio 2015是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具.代码管控工具.集成开发环境(IDE)等等.所写的目标代码适用于微软支持的所有 ...
- IntelliJ IDEA使用(3)——IDEA连接Git
摘要: Intellij IDEA作为最强大智能的IDE,内部已经集成了Git的功能,所以不用安装插件,连接Git@OSC也非常容易 首先安装git for windows 推荐使用这个:http:/ ...
- C#获取文件时间
在NTFS下,文件的创建及修改时间可以精确到毫秒,以下是测试过程. DirectoryInfo diSource = new DirectoryInfo(@"C:\Users\不告诉你\De ...
- Bootstrap_警示框
一.默认警示框 Bootstrap框架通过“alert“样式来实现警示框效果.在默认情况之下,提供了四种不同的警示框效果: 1.成功警示框:告诉用用户操作成功,在“alert”样式基础上追加“aler ...
- DAO
DAO Data Access Object DAO(Data Access Object)是一个数据访问接口,数据访问:顾名思义就是与数据库打交道. 夹在业务逻辑与数据库资源中间. DAO模式是标准 ...
- iOS开发数据库篇—SQL代码应用示例
iOS开发数据库篇—SQL代码应用示例 一.使用代码的方式批量添加(导入)数据到数据库中 1.执行SQL语句在数据库中添加一条信息 插入一条数据的sql语句: 点击run执行语句之后,刷新数据 2.在 ...
- php : 单例设计演示
单例 : 保证只有一个实例 <?php /* * 单例设计 */ // 单例: 只能"创造"出它的一个对象实例 class Single{ // 第一步: 私有化构造方法 p ...
- 区别ie8和ie9的方法
众所周知 区别ie6~8的方法是: width:10px;//chrome width:10px\9;//ie8+ *width:10px;//ie7 _width:10px;//ie6 区别ie8以 ...