Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
umap2 — Umap2 is the second revision of NCC Group's python based USB host security assessment tool. | Kitploit
工具/GitHubGitHub/nccgroup/umap2
Embedded Systems SecurityDynamic Analysis (Sandboxing)Vulnerability AnalysisFuzzingPenetration TestingHardware SecurityHardware & IoT Security
GitHubnccgroup/umap2

umap2

Umap2 is the second revision of NCC Group's python based USB host security assessment tool.

查看仓库
282824年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Umap2

Umap2 是 NCC Group 的基于 Python 的 USB 主机安全评估工具的第二个修订版本。

此修订版将包含第一修订版 所支持的全部功能:

  • umap2emulate - USB 设备仿真
  • umap2scan - USB 主机设备支持扫描
  • umap2detect - USB 主机操作系统检测(尚未实现)
  • umap2fuzz - USB 主机模糊测试

此修订版还将增加一些 额外功能:

  • USB 主机模糊测试使用 kitty 作为模糊测试引擎
  • Umap2 不仅包含可执行脚本, 而且还作为软件包安装, 并且可以作为库使用

Umap2 由 NCC Group 和 Cisco SAS 团队开发。

警告:umap2 仍然是一个实验性、 alpha 阶段的工具。 API、可执行文件名等内容在不久的将来 很可能会发生变化。 请自行承担使用风险。

支持

  • IRC:#umap2 在 Freenode 上 <https://webchat.freenode.net/?channels=umap2>_ 安装

由于这是非常早期的版本, Umap2 尚未在 pypi 上提供, 请改用 pip 直接从 github 安装:

::

root@kitploit:~
$ pip install git+https://github.com/nccgroup/umap2.git#egg=umap2

Python 版本

Umap2 在大多数部分兼容 python2/3。 不过,模糊测试脚本(umap2kitty)仅在 python2 上运行。

“软”依赖

Umap2 的依赖项列在 setup.py 中,并会随 umap2 一起安装, 但是,您可能还需要做一些事情来增加对某些设备的支持:

大容量存储

root@kitploit:~

1. 需要在运行目录中有一个名为 **stick.img** 的磁盘镜像

MTP
~~~

1. 需要在当前目录中有一个名为 **mtp_fs** 的文件夹/文件。
2. 需要 Python 软件包 pymtpdevice。该软件包目前不在 pypi 上,
   但可以从这里下载并安装:
   https://github.com/BinyaminSharet/Mtp

硬件
--------

- `Facedancer <http://goodfet.sourceforge.net/hardware/facedancer21/>`_
  是 Umap2 推荐的硬件。
  Umap2 基于它开发,使用它可以获得最大程度的支持。
- `Raspdancer <http://wiki.yobi.be/wiki/Raspdancer>` 在 RPi 上受支持
- **GadgetFS** 获得部分支持。
  该支持非常实验性(甚至比 Umap2 的其他部分更具实验性)
  且有限。
  
  - BeagleboneBlack,从 Linux 内核 4.4.9 开始,需使用打过补丁的 gadgetfs
    驱动
  - RaspberryPi Zero W,从 Linux 内核 4.12.0-rc3+ 开始,无需补丁
  - 由于 4.12.0-rc3+ 无需补丁,可能还有其他设备可以支持;
    如果您知道此类设备,或已进行修改使其在其他设备上运行,
    请告知我们。

如果你感兴趣,请阅读 **gadget/README.rst** 了解更多信息。

用法
-----

设备仿真

Umap2 的基本功能是仿真 USB 设备。 您可以仿真现有设备之一 (使用 umap2list 查看可用设备):

::

root@kitploit:~
$ umap2emulate -P fd:/dev/ttyUSB0 -C mass_storage

或者仿真您自己的设备:

::

root@kitploit:~
$ umap2emulate -P fd:/dev/ttyUSB0 -C ~/my_mass_storage.py

有关添加您自己的设备的详细指南将很快添加, 同时,您可以查看 umap2 设备, 位于 umap2/dev/ 下

设备支持扫描

root@kitploit:~

Umap2 可以尝试检测主机支持哪些类型的 USB 设备。
其做法是:在短时间内逐一仿真 Umap2 中实现的每种设备,
并检查是否发送了针对特定设备的消息。

::

    $ umap2scan -P fd:/dev/ttyUSB0

厂商特定设备支持扫描

除了扫描各种设备类别的支持情况外, Umap2 还可以扫描主机对厂商特定设备的支持情况。

厂商特定扫描有助于识别主机上可用的厂商特定驱动程序。

可以使用当前 Umap2 的 VID-PID 数据库(仍在完善中), 或使用相同格式的另一个文件来完成:

::

root@kitploit:~
$ umap2vsscan -P fd:/dev/ttyUSB0 -d $UMAP2_DIR/data/vid_pid_db.py

或者通过扫描特定的 VID-PID 范围—— 在本示例中—— 依次扫描 VID 从 0x1001 到 0x1004 与 PID 从 0x0000 到 0xffff 的每种组合:

::

root@kitploit:~
$ umap2vsscan -P fd:/dev/ttyUSB0 -s 1001-1004:0000-ffff

非常欢迎对 vid_pid_db.py 文件进行任何补丁/添加!

模糊测试

root@kitploit:~

使用 Umap2 进行模糊测试的详细指南可以在
`docs/fuzzing.rst <https://github.com/nccgroup/umap2/blob/master/docs/fuzzing.rst>`_ 中找到

使用 Umap2 进行模糊测试由三个步骤组成,
将来可能会合并为一个脚本。

1. 找出您要模糊测试的主机和您所仿真的
   USB 设备之间的消息顺序:

   ::

        $ umap2stages -P fd:/dev/ttyUSB0 -C keyboard -s keyboard.stages

2. 在单独的 shell 中启动 kitty 模糊器,
   并为其提供步骤 1 中生成的消息阶段。

   ::

        $ umap2kitty -s keyboard.stages

3. 以模糊模式启动 umap2 键盘仿真

   ::

        $ umap2fuzz -P fd:/dev/ttyUSB0 -C keyboard

执行完步骤 3 后,模糊测试会话将开始。

关于 MTP 模糊测试的说明
++++++++++++++++++++++

虽然 umap2 可用于仿真和发现 MTP 设备
(参见本 README 的“软依赖”一节),
但当前它不会对 MTP 层进行模糊测试。
要对 MTP 层进行模糊测试,
可以使用 MTP 库中内置的模糊器。
我们计划在未来的版本中直接支持通过 umap2 进行 MTP 模糊测试。

主机操作系统检测

待定

故障排除

如果您在使用 Umap2 时遇到问题,请尝试 故障排除部分 <https://github.com/nccgroup/umap2/blob/master/docs/troubleshooting.rst>_

Raspdancer

您需要 SPI-Py https://github.com/lthiery/SPI-Py 和 GPIO Python 库。 使用 phy rd

下载工具