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 这样强大而免费的,从需要在服务器端单独部署的,到可以从前端集成的,不一而足.本文收集并介绍 ...
随机推荐
- [课程设计]Scrum 1.4 多鱼点餐系统开发进度(点餐页面框架布置)
Scrum 1.4 多鱼点餐系统开发进度 (点餐页面框架布置) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系 ...
- web前段 弹出小例子
<html> <head> <meta charset="utf-8"> <meta name="viewport" ...
- [poj3378] Crazy Thairs (DP + 树状数组维护 + 高精度)
树状数组维护DP + 高精度 Description These days, Sempr is crazed on one problem named Crazy Thair. Given N (1 ...
- Java的final关键字
使用final关键字做标识有“最终的”含义 final可以修饰类.方法.属性和变量: 修饰类,则该类不允许被继承(即不能有子类) 修饰方法,则该方法不允许被覆盖(重写) 修饰属性,则该属性不会进行隐形 ...
- jQuery通过判断 checkbox 元素的 checked 属性,判断 checkbox是否被选中
jQuery设置复选框的属性<input type="checkbox"/> $("input").attr("checked" ...
- Unity中有两种Animation Clip
http://blog.csdn.net/zzxiang1985/article/details/51291861 在Unity中,我们有两种方法创建Animation Clip. 一种(后面简称方法 ...
- 【bzoj1798】维护序列
线段树维护两个标记. *0的操作在实质上没有任何影响. #include <cstdio> #include <cctype> #define rep(i,a,b) for ( ...
- Linux 指令
cat cdchmod chowncp cut 名称:cat使用权限:所有使用者使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName说明:把档案串连 ...
- selenium 安装与 chromedriver安装
直接使用pip安装 pip slenium 用 Chrome 浏览器来测试 from selenium import webdriver browser = webdriver.Chrome() ...
- 无障碍网页设计(WCAG2.0)
无障碍化是指无论健全人还是残疾人,年轻人还是老年人都可以平等地获取互联网上的信息和服务.无障碍化网站建设不单可以增加网站的受益群体,更是一个有情怀.有担当的互联网企业的责任,也是一个互联网从业人员应该 ...