Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
umap2 — Umap2 is the second revision of NCC Group's python based USB host security assessment tool. | Kitploit
Tools/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.

Repository anzeigen
28282vor 4 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Umap2

Umap2 ist die zweite Überarbeitung des auf Python basierenden USB-Host-Sicherheitsbewertungstools von NCC Group.

Diese Überarbeitung wird alle Funktionen enthalten, die in der ersten Überarbeitung unterstützt wurden:

  • umap2emulate – Emulation von USB-Geräten
  • umap2scan – USB-Host-Scanning auf Geräteunterstützung
  • umap2detect – USB-Host-Betriebssystemerkennung (noch nicht implementiert)
  • umap2fuzz – USB-Host-Fuzzing

In dieser Überarbeitung werden einige zusätzliche Funktionen enthalten sein:

  • USB-Host-Fuzzing verwendet kitty als Fuzzing-Engine
  • Umap2 enthält nicht nur ausführbare Skripte, sondern wird auch als Paket installiert und kann als Bibliothek verwendet werden

Umap2 wird von NCC Group und dem Cisco-SAS-Team entwickelt.

Warnung: umap2 ist immer noch ein experimentelles Werkzeug im Alpha-Stadium. Die APIs, ausführbaren Namen usw. werden sich in naher Zukunft wahrscheinlich ändern. Benutzung auf eigene Gefahr.

Support

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

Da dies eine sehr frühe Version ist, ist Umap2 noch nicht über PyPI verfügbar. Verwenden Sie stattdessen pip, um es direkt von GitHub zu installieren:

::

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

Python-Versionen

Umap2 ist größtenteils mit Python 2/3 kompatibel. Das Fuzzer-Skript (umap2kitty) läuft jedoch nur unter Python 2.

„Weiche“ Abhängigkeiten

Die Abhängigkeiten von Umap2 sind in setup.py aufgelistet und werden zusammen mit Umap2 installiert. Es gibt jedoch ein paar Dinge, die Sie tun möchten, um Unterstützung für einige Geräte hinzuzufügen:

Mass Storage

root@kitploit:~

1. Erfordert ein Festplatten-Image namens **stick.img** im aktuellen Verzeichnis

MTP
~~~

1. Erfordert einen Ordner/eine Datei namens **mtp_fs** im aktuellen Verzeichnis.
2. Erfordert das Python-Paket pymtpdevice. Dieses Paket ist derzeit nicht auf PyPI,
   kann aber von hier heruntergeladen und installiert werden:
   https://github.com/BinyaminSharet/Mtp

Hardware
--------

- `Facedancer <http://goodfet.sourceforge.net/hardware/facedancer21/>`_
  ist die empfohlene Hardware für Umap2.
  Umap2 wurde auf Basis dieser Hardware entwickelt, und Sie erhalten damit den besten Support.
- `Raspdancer <http://wiki.yobi.be/wiki/Raspdancer>` wird auf dem RPi unterstützt
- **GadgetFS** wird teilweise unterstützt.
  Diese Unterstützung ist sehr experimentell (noch mehr als der Rest von Umap2)
  und eingeschränkt.
  
  - BeagleboneBlack ab Linux-Kernel 4.4.9 mit einem gepatchten GadgetFS-Treiber
  - RaspberryPi Zero W ab Linux-Kernel 4.12.0-rc3+, der keine Patches erfordert
  - Da 4.12.0-rc3+ keine Patches erfordert, gibt es möglicherweise andere Geräte,
    die unterstützt werden können. Wenn Sie ein solches Gerät kennen oder Änderungen vorgenommen haben,
    um es auf anderen Geräten zum Laufen zu bringen, lassen Sie es uns bitte wissen.

Wenn Sie interessiert sind, lesen Sie **gadget/README.rst** für weitere Informationen.

Verwendung
-----

Geräteemulation

Die grundlegende Funktionalität von Umap2 ist die Emulation eines USB-Geräts. Sie können eines der vorhandenen Geräte emulieren (verwenden Sie umap2list, um die verfügbaren Geräte zu sehen):

::

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

oder emulieren Sie Ihr eigenes Gerät:

::

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

Eine ausführliche Anleitung zum Hinzufügen Ihres Geräts wird bald hinzugefügt. In der Zwischenzeit können Sie sich die Umap2-Geräte unter umap2/dev/ ansehen.

Scannen der Geräteunterstützung

root@kitploit:~

Umap2 kann versuchen zu erkennen, welche Arten von USB-Geräten
vom Host unterstützt werden.
Dies geschieht, indem jedes in Umap2 implementierte Gerät
für kurze Zeit emuliert und geprüft wird,
ob eine gerätespezifische Nachricht gesendet wurde.

::

    $ umap2scan -P fd:/dev/ttyUSB0

Scannen der Unterstützung herstellerspezifischer Geräte

Zusätzlich zum Scannen der Unterstützung verschiedener Geräteklassen kann Umap2 den Host auf Unterstützung herstellerspezifischer Geräte scannen.

Herstellerspezifisches Scannen hilft, die auf dem Host verfügbaren herstellerspezifischen Treiber zu identifizieren.

Dies kann mithilfe der aktuellen Umap2-VID-PID-Datenbank (noch in Arbeit) oder einer anderen Datei im gleichen Format erfolgen:

::

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

Oder durch Scannen eines bestimmten VID-PID-Bereichs – in diesem Beispiel – für jede Kombination von VID von 0x1001 bis 0x1004 und PID von 0x0000 bis 0xffff:

::

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

Patches/Ergänzungen an der Datei vid_pid_db.py sind sehr willkommen!

Fuzzing

root@kitploit:~

Eine ausführliche Anleitung zum Fuzzing mit Umap2 finden Sie in 
`docs/fuzzing.rst <https://github.com/nccgroup/umap2/blob/master/docs/fuzzing.rst>`_

Das Fuzzing mit Umap2 besteht aus drei Schritten,
die in Zukunft möglicherweise zu einem einzigen Skript zusammengefasst werden.

1. Finden Sie heraus, wie die Reihenfolge der Nachrichten
   für den Host, den Sie fuzzen möchten, und das
   USB-Gerät, das Sie emulieren, aussieht:

   ::

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

2. Starten Sie den Kitty-Fuzzer in einer separaten Shell
   und geben Sie ihm die in Schritt 1 erzeugten Stages.

   ::

        $ umap2kitty -s keyboard.stages

3. Starten Sie die Umap2-Tastaturemulation im Fuzz-Modus

   ::

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

Nachdem Schritt 3 ausgeführt wurde, beginnt die Fuzzing-Sitzung.

Hinweis zum MTP-Fuzzing
++++++++++++++++++++++

Obwohl umap2 verwendet werden kann, um MTP-Geräte zu emulieren und zu erkennen
(siehe Abschnitt „Weiche Abhängigkeiten“ dieser README),
fuzzt es derzeit nicht die MTP-Ebene.
Um die MTP-Ebene zu fuzzen,
können Sie den in der MTP-Bibliothek eingebetteten Fuzzer verwenden.
Wir planen, MTP-Fuzzing in zukünftigen Versionen direkt aus umap2 zu unterstützen.

Host-Betriebssystemerkennung

TBD

Fehlerbehebung

Wenn Sie Probleme mit Umap2 haben, versuchen Sie den Abschnitt zur Fehlerbehebung <https://github.com/nccgroup/umap2/blob/master/docs/troubleshooting.rst>_

Raspdancer

Sie benötigen SPI-Py https://github.com/lthiery/SPI-Py und GPIO-Python-Bibliotheken. Verwenden Sie phy rd

Tool herunterladen