Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
umap2 — Umap2 is the second revision of NCC Group's python based USB host security assessment tool. | Kitploit
Outils/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.

Voir le dépôt
28282il y a 4 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Umap2

Umap2 est la deuxième révision de l'outil d'évaluation de la sécurité des hôtes USB basé sur Python de NCC Group.

Cette révision comportera toutes les fonctionnalités prises en charge dans la première révision :

  • umap2emulate - Émulation de périphérique USB
  • umap2scan - Analyse de l'hôte USB pour la prise en charge de périphériques
  • umap2detect - Détection du système d'exploitation de l'hôte USB (pas encore implémenté)
  • umap2fuzz - Fuzzing de l'hôte USB

Dans cette révision, quelques fonctionnalités supplémentaires seront ajoutées :

  • Le fuzzing de l'hôte USB utilise kitty comme moteur de fuzzing
  • Umap2 ne contient pas seulement des scripts exécutables, mais est également installé en tant que paquet et peut être utilisé comme bibliothèque

Umap2 est développé par NCC Group et l'équipe Cisco SAS.

Avertissement : umap2 est encore un outil expérimental, au stade alpha. Les API, les noms des exécutables, etc. sont susceptibles de changer dans un avenir proche. À utiliser à vos propres risques.

Support

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

Comme il s'agit d'une version très précoce, Umap2 n'est pas encore disponible sur pypi. Utilisez plutôt pip pour l'installer directement depuis github :

::

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

Python Versions

Umap2 est compatible python2/3 pour la plupart des parties. Cependant, le script de fuzzing (umap2kitty) ne fonctionne qu'avec python2.

"Soft" Dependencies

Les dépendances d'Umap2 sont listées dans setup.py et seront installées avec umap2. Cependant, il y a deux ou trois choses que vous pourriez vouloir faire pour ajouter la prise en charge de certains périphériques :

Mass Storage

root@kitploit:~

1. Nécessite une image disque appelée **stick.img** dans le répertoire de travail

MTP
~~~

1. Nécessite un dossier/fichier appelé **mtp_fs** dans le répertoire courant.
2. Nécessite le paquet python pymtpdevice. Ce paquet n'est pas sur pypi
   pour le moment, mais peut être téléchargé et installé depuis ici :
   https://github.com/BinyaminSharet/Mtp

Hardware
--------

- `Facedancer <http://goodfet.sourceforge.net/hardware/facedancer21/>`_
  est le matériel recommandé pour Umap2.
  Umap2 a été développé sur cette base, et c'est avec lui que vous obtiendrez le plus de support.
- `Raspdancer <http://wiki.yobi.be/wiki/Raspdancer>` est pris en charge sur RPi
- **GadgetFS** est partiellement pris en charge.
  Cette prise en charge est très expérimentale (encore plus que le reste d'Umap2)
  et limitée.
  
  - BeagleboneBlack à partir du noyau Linux 4.4.9 avec un pilote gadgetfs patché
  - RaspberryPi Zero W à partir du noyau Linux 4.12.0-rc3+ qui ne nécessite
    aucun patch
  - Puisque 4.12.0-rc3+ ne nécessite aucun patch, il se peut qu'il y ait d'autres périphériques
    qui puissent être pris en charge. Si vous connaissez un tel périphérique ou si vous avez effectué des modifications
    pour le faire fonctionner sur d'autres périphériques, n'hésitez pas à nous en faire part.

Si vous êtes intéressé, lisez **gadget/README.rst** pour plus d'informations.

Usage
-----

Device Emulation

La fonctionnalité de base d'Umap2 est l'émulation d'un périphérique USB. Vous pouvez émuler l'un des périphériques existants (utilisez umap2list pour voir les périphériques disponibles) :

::

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

ou émuler votre propre périphérique :

::

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

Un guide détaillé pour ajouter votre périphérique sera bientôt disponible. En attendant, vous pouvez jeter un œil aux périphériques umap2 dans umap2/dev/

Device Support Scanning

root@kitploit:~

Umap2 peut tenter de détecter quels types de périphériques USB
sont pris en charge par l'hôte.
Pour ce faire, il émule chaque périphérique implémenté dans Umap2
pendant une courte période,
puis vérifie si un message spécifique au périphérique a été envoyé.

::

    $ umap2scan -P fd:/dev/ttyUSB0

Vendor Specific Device Support Scanning

En plus de l'analyse de la prise en charge de diverses classes de périphériques, Umap2 peut analyser l'hôte pour détecter la prise en charge de périphériques spécifiques au fabricant.

L'analyse spécifique au fabricant aide à identifier les pilotes spécifiques au fabricant disponibles sur l'hôte.

Cela peut être fait en utilisant la base de données VID-PID actuelle d'Umap2 (encore en cours de développement), ou un autre fichier au même format :

::

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

Ou en analysant une plage vid-pid spécifique — dans cet exemple — analyse de chaque combinaison de VID de 0x1001 à 0x1004 et de PID de 0x0000 à 0xffff :

::

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

Tous les patchs/ajouts au fichier vid_pid_db.py sont les bienvenus !

Fuzzing

root@kitploit:~

Un guide détaillé pour le fuzzing avec Umap2 peut être trouvé dans 
`docs/fuzzing.rst <https://github.com/nccgroup/umap2/blob/master/docs/fuzzing.rst>`_

Le fuzzing avec Umap2 se compose de trois étapes,
qui pourraient être unifiées en un seul script à l'avenir.

1. Découvrez l'ordre des messages
   pour l'hôte que vous voulez fuzzer et le
   périphérique USB que vous émulez :

   ::

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

2. Démarrez le fuzzer kitty dans un shell séparé,
   et fournissez-lui les étapes générées à l'étape 1.

   ::

        $ umap2kitty -s keyboard.stages

3. Démarrez l'émulation du clavier umap2 en mode fuzz

   ::

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

Après l'étape 3, la session de fuzzing commencera.

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

Bien que umap2 puisse être utilisé pour émuler et découvrir des périphériques MTP
(voir la section « Soft dependencies » de ce README),
il ne fuzze pas la couche MTP pour le moment.
Afin de fuzzer la couche MTP,
vous pouvez utiliser le fuzzer intégré à la bibliothèque MTP.
Nous prévoyons de prendre en charge le fuzzing MTP directement depuis umap2 dans les prochaines versions.

Host OS Detection

TBD

Toubleshooting

Si vous rencontrez des problèmes avec Umap2, essayez la section de dépannage <https://github.com/nccgroup/umap2/blob/master/docs/troubleshooting.rst>_

Raspdancer

Vous avez besoin de SPI-Py https://github.com/lthiery/SPI-Py et des bibliothèques Python GPIO. Utilisez phy rd

Télécharger l’outil