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 ホストセキュリティ評価ツールの第2版です。

このリビジョンでは、第1版でサポートされていたすべての機能を備えます:

  • umap2emulate - USB デバイスエミュレーション
  • umap2scan - デバイスサポートのための USB ホストスキャン
  • umap2detect - USB ホスト OS 検出 (未実装)
  • umap2fuzz - USB ホストファジング

このリビジョンには、いくつかの追加機能もあります:

  • USB ホストファジングはファジングエンジンとして kitty を使用します
  • Umap2 は実行可能スクリプトを含むだけでなく、 パッケージとしてもインストールされ、 ライブラリとして使用できます

Umap2 は NCC Group と Cisco SAS チームによって開発されています。

警告: umap2 はまだ実験的であり、 アルファ段階のツールです。 API、実行可能ファイル名などは、近い将来変更される可能性があります。 使用は自己責任でお願いします。

Support

  • IRC: #umap2 on Freenode <https://webchat.freenode.net/?channels=umap2>_ Installation

これは非常に初期のバージョンであるため、 Umap2 はまだ pypi からは入手できません。 代わりに、pip を使って github から直接インストールしてください:

::

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

Python Versions

Umap2 はほとんどの部分で python2/3 に対応しています。 ただし、ファジングスクリプト (umap2kitty) は python2 でのみ動作します。

"Soft" Dependencies

Umap2 の依存関係は setup.py にリストされており、umap2 と一緒にインストールされます。 ただし、一部のデバイスのサポートを追加するために行うとよいことがいくつかあります:

Mass Storage

root@kitploit:~

1. 実行中のディレクトリに **stick.img** というディスクイメージが必要です。

MTP
~~~

1. カレントディレクトリに **mtp_fs** というフォルダ/ファイルが必要です。
2. python パッケージ pymtpdevice が必要です。このパッケージは現時点では pypi にありませんが、
   以下からダウンロードしてインストールできます:
   https://github.com/BinyaminSharet/Mtp

Hardware
--------

- `Facedancer <http://goodfet.sourceforge.net/hardware/facedancer21/>`_
  は Umap2 に推奨されるハードウェアです。
  Umap2 はこれをベースに開発されており、最も多くのサポートが得られます。
- `Raspdancer <http://wiki.yobi.be/wiki/Raspdancer>` は RPi でサポートされています
- **GadgetFS** は部分的にサポートされています。
  このサポートは非常に実験的です (Umap2 の他の部分よりもさらに実験的) そして制限付きです。

  - Linux カーネル 4.4.9 以降で、パッチ適用済み gadgetfs
    ドライバを使用した BeagleboneBlack
  - Linux カーネル 4.12.0-rc3+ 以降の RaspberryPi Zero W
    (パッチは不要です)
  - 4.12.0-rc3+ 以降はパッチが不要なため、サポートできる他のデバイスがあるかもしれません。
    そのようなデバイスをご存知の場合、または他のデバイスで動作するように変更を加えた場合は、
    ぜひお知らせください。

興味があれば、**gadget/README.rst** を読んで詳細を確認してください。

Usage
-----

Device Emulation

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/dev/ の下にある umap2 デバイスを参照してください。

Device Support Scanning

root@kitploit:~

Umap2 は、ホストがどのタイプの USB デバイスをサポートしているかを検出できます。
これは、Umap2 に実装されている各デバイスを短時間エミュレートし、
デバイス固有のメッセージが送信されたかどうかを確認することで行います。

::

    $ umap2scan -P fd:/dev/ttyUSB0

Vendor Specific Device Support Scanning

さまざまなデバイスクラスのサポートをスキャンすることに加えて、 Umap2 はベンダー固有デバイスのサポートについてホストをスキャンできます。

ベンダー固有スキャンは、ホスト上で利用可能なベンダー固有ドライバを 特定するのに役立ちます。

これは、現在の Umap2 VID-PID DB (まだ作業中) または 同じ形式の別のファイルを使用して実行できます:

::

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 ファイルへのパッチや追加は大歓迎です!

Fuzzing

root@kitploit:~

Umap2 を使ったファジングの詳細なガイドは、
`docs/fuzzing.rst <https://github.com/nccgroup/umap2/blob/master/docs/fuzzing.rst>`_ にあります。

Umap2 を使ったファジングは3つのステップで構成されており、
将来は1つのスクリプトに統合されるかもしれません。

1. ファズ対象のホストと、エミュレートする
   USB デバイスに対するメッセージの順序を調べます:

   ::

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

2. 別のシェルで kitty ファザーを起動し、
   ステップ1で生成したステージを指定します。

   ::

        $ umap2kitty -s keyboard.stages

3. umap2 keyboard エミュレーションをファズモードで起動します。

   ::

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

ステップ3の実行後、ファジングセッションが開始されます。

Note About MTP fuzzing
++++++++++++++++++++++

umap2 は MTP デバイスのエミュレーションと検出に使用できますが
(この README の "Soft dependencies" セクションを参照)、
現時点では MTP レイヤーのファジングは行いません。
MTP レイヤーをファジングするには、
MTP ライブラリに組み込まれているファザーを使用できます。
将来のリリースで umap2 から直接 MTP ファジングをサポートする予定です。

Host OS Detection

TBD

Toubleshooting

Umap2 に問題がある場合は、 troubleshooting section <https://github.com/nccgroup/umap2/blob/master/docs/troubleshooting.rst>_ を試してください。

Raspdancer

SPI-Py https://github.com/lthiery/SPI-Py と GPIO python ライブラリが必要です。 phy rd を使用してください。

ツールをダウンロード