Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/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.

Ver Repositorio
28282hace 4 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Umap2

Umap2 es la segunda revisión de la herramienta de evaluación de seguridad de hosts USB basada en Python de NCC Group.

Esta revisión tendrá todas las funciones que se admitían en la primera revisión:

  • umap2emulate - emulación de dispositivos USB
  • umap2scan - escaneo de hosts USB para compatibilidad con dispositivos
  • umap2detect - detección del sistema operativo del host USB (aún no implementado)
  • umap2fuzz - fuzzing de hosts USB

En esta revisión habrá algunas características adicionales:

  • El fuzzing de hosts USB utiliza kitty como motor de fuzzing
  • Umap2 no solo contiene scripts ejecutables, sino que también se instala como paquete y puede usarse como biblioteca

Umap2 es desarrollado por NCC Group y el equipo Cisco SAS.

Advertencia: umap2 sigue siendo una herramienta experimental, en fase alfa. Es probable que las APIs, los nombres de los ejecutables, etc. cambien en un futuro cercano. Úsela bajo su propio riesgo.

Soporte

  • IRC: #umap2 en Freenode <https://webchat.freenode.net/?channels=umap2>_ Instalación

Dado que esta es una versión muy temprana, Umap2 aún no está disponible en pypi, en su lugar, usa pip para instalarlo directamente desde github:

::

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

Versiones de Python

Umap2 es compatible con python2/3 en su mayor parte. Sin embargo, el script de fuzzing (umap2kitty) solo se ejecuta en python2.

Dependencias "blandas"

Las dependencias de Umap2 están listadas en setup.py y se instalarán con umap2, sin embargo, hay un par de cosas que quizás quieras hacer para añadir soporte para algunos dispositivos:

Almacenamiento masivo

root@kitploit:~

1. Requiere una imagen de disco llamada **stick.img** en el directorio actual.

MTP
~~~

1. Requiere una carpeta/archivo llamado **mtp_fs** en el directorio actual.
2. Requiere el paquete de Python pymtpdevice. Este paquete no está en pypi
   por el momento, pero se puede descargar e instalar desde aquí:
   https://github.com/BinyaminSharet/Mtp

Hardware
--------

- `Facedancer <http://goodfet.sourceforge.net/hardware/facedancer21/>`_
  es el hardware recomendado para Umap2.
  Umap2 fue desarrollado basándose en él, y con él obtendrás el mayor soporte.
- `Raspdancer <http://wiki.yobi.be/wiki/Raspdancer>` es compatible con RPi
- **GadgetFS** es parcialmente compatible.
  Este soporte es muy experimental (incluso más que el resto de Umap2)
  y limitado.
  
  - BeagleboneBlack a partir del kernel de Linux 4.4.9 con un controlador gadgetfs
    parcheado
  - RaspberryPi Zero W a partir del kernel de Linux 4.12.0-rc3+ que no requiere
    parches
  - Dado que 4.12.0-rc3+ no requiere parches, es posible que haya otros dispositivos
    que puedan ser compatibles; si conoces alguno o has realizado cambios para hacer
    que funcione en otros dispositivos, por favor, envíanos un mensaje.

Si estás interesado, lee el **gadget/README.rst** para obtener más información.

Uso
-----

Emulación de dispositivos

La funcionalidad básica de Umap2 es emular un dispositivo USB. Puedes emular uno de los dispositivos existentes (usa umap2list para ver los dispositivos disponibles):

::

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

o emular tu propio dispositivo:

::

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

Pronto se añadirá una guía detallada para agregar tu dispositivo, mientras tanto, puedes echar un vistazo a los dispositivos de umap2 en umap2/dev/

Escaneo de compatibilidad con dispositivos

root@kitploit:~

Umap2 puede intentar detectar qué tipos de dispositivos USB
son compatibles con el host.
Esto se hace emulando cada dispositivo implementado en Umap2
durante un breve período de tiempo,
y comprobando si se envió un mensaje específico del dispositivo.

::

    $ umap2scan -P fd:/dev/ttyUSB0

Escaneo de compatibilidad con dispositivos específicos del fabricante

Además de escanear la compatibilidad de varias clases de dispositivos, Umap2 puede escanear el host en busca de compatibilidad con dispositivos específicos del fabricante.

El escaneo específico del fabricante ayuda a identificar los controladores específicos del fabricante que están disponibles en el host.

Esto se puede hacer usando la base de datos VID-PID actual de Umap2 (aún en desarrollo), u otro archivo con el mismo formato:

::

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

O escaneando un rango específico de vid-pid - en este ejemplo - se escanea cada combinación de VID de 0x1001 a 0x1004 y PID de 0x0000 a 0xffff:

::

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

¡Cualquier parche o adición al archivo vid_pid_db.py es bienvenido!

Fuzzing

root@kitploit:~

Se puede encontrar una guía detallada sobre fuzzing con Umap2 en 
`docs/fuzzing.rst <https://github.com/nccgroup/umap2/blob/master/docs/fuzzing.rst>`_

El fuzzing con Umap2 se compone de tres pasos,
que podrían unificarse en un solo script en el futuro.

1. Determina cuál es el orden de los mensajes
   para el host que quieres fuzzear y el
   dispositivo USB que emulas:

   ::

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

2. Inicia el fuzzer kitty en un shell separado,
   y provéelo con las etapas generadas en el paso 1.

   ::

        $ umap2kitty -s keyboard.stages

3. Inicia la emulación de teclado de umap2 en modo fuzz

   ::

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

Una vez realizado el paso 3, comenzará la sesión de fuzzing.

Nota sobre fuzzing MTP
++++++++++++++++++++++

Si bien umap2 puede usarse para emular y descubrir dispositivos MTP
(consulta la sección "Dependencias blandas" de este README),
no aplica fuzzing a la capa MTP en este momento.
Para fuzzear la capa MTP,
puedes usar el fuzzer integrado en la biblioteca MTP.
Planeamos admitir fuzzing MTP directamente desde umap2 en futuras versiones.

Detección del sistema operativo del host

TBD

Solución de problemas

Si tienes problemas con Umap2, prueba la sección de solución de problemas <https://github.com/nccgroup/umap2/blob/master/docs/troubleshooting.rst>_

Raspdancer

Necesitas SPI-Py https://github.com/lthiery/SPI-Py y las bibliotecas GPIO de Python. Usa phy rd

Descargar herramienta