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 这样强大而免费的,从需要在服务器端单独部署的,到可以从前端集成的,不一而足.本文收集并介绍 ...
随机推荐
- 【转】Struts1.x系列教程(5):HTML标签库
转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/0 ...
- Spring中的事物管理,用 @Transactional 注解声明式地管理事务
事物: 事务管理是企业级应用程序开发中必不可少的技术, 用来确保数据的 完整性和 一致性. 事务就是一系列的动作, 它们被当做一个单独的工作单元. 这些动作要么全部完成, 要么全部不起作用 事务的四 ...
- if 语句运用
运用if语句完成对年.月.日的判断. Console.WriteLine("其输入年份:"); int a = int.Parse(Console.ReadLine()); Con ...
- Tiles & SiteMesh
Tiles & SiteMesh 这两天在给公司的新项目搭框架,在配tiles框架的时候发现一个小问题: 比如开发团队一共5人,每人10个页面,如果按照简单的tiles框架配置方法,每个 ...
- 使用vs2013打开vs2015项目
1.用记事本打开.sln,如图修改 2.用记事本打开.vcxproj文件,搜索:v140,修改为v120(有四个)
- oracle组查询
概念: 所谓组查询即将数据按照某列或者某些列相同的值进行分组,然后对该组的数据进行组函数运用,针对每一组返回一个结果. note: 1.组函数可以出现的位置: select子句和having 子句 2 ...
- SQL循环索引
),dates datetime) insert @tbl(order_id,dates) select 'A','2014-1-1' union select 'A','2014-2-1' unio ...
- hdu4987A simple probability problem.(凸包)
链接 多校的最后一场,当时没看懂题意,看题目还以为是概率问题就没深看. 官方题解 对于他说的第一种,考虑长为L的线段 概率为2L/(pi*d), 可以理解,下面的就不知道在说啥了.. 按我初始的想法想 ...
- openssl证书相关
http://blog.csdn.net/modianwutong/article/details/43059435 http://www.cnblogs.com/E7868A/archive/201 ...
- mysql简介
1.什么是数据库 ? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数 ...