Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
umap2 — Umap2 è la seconda revisione dello strumento di valutazione della sicurezza degli host USB basato su Python di NCC Group. | Kitploit
Strumenti/GitHubGitHub/nccgroup/umap2
Sicurezza Sistemi EmbeddedAnalisi Dinamica (Sandboxing)Analisi delle VulnerabilitàFuzzingPenetration TestingSicurezza HardwareSicurezza Hardware e IoT
GitHubnccgroup/umap2

umap2

Umap2 è la seconda revisione dello strumento di valutazione della sicurezza degli host USB basato su Python di NCC Group.

Vedi Repository
282824 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Umap2

Umap2 è la seconda revisione dello strumento di valutazione della sicurezza degli host USB basato su Python di NCC Group.

Questa revisione avrà tutte le funzionalità supportate nella prima revisione:

  • umap2emulate - emulazione di dispositivi USB
  • umap2scan - scansione degli host USB per il supporto dei dispositivi
  • umap2detect - rilevamento del sistema operativo dell'host USB (non ancora implementato)
  • umap2fuzz - fuzzing degli host USB

In questa revisione ci saranno alcune funzionalità aggiuntive:

  • Il fuzzing degli host USB usa kitty come motore di fuzzing
  • Umap2 non contiene solo script eseguibili, ma è anche installato come pacchetto e può essere usato come libreria

Umap2 è sviluppato da NCC Group e dal team Cisco SAS.

Attenzione: umap2 è ancora uno strumento sperimentale, in fase alpha. È probabile che le API, i nomi degli eseguibili, ecc. vengano modificati nel prossimo futuro. Usalo a tuo rischio.

Supporto

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

Poiché questa è una versione molto precoce, Umap2 non è ancora disponibile su pypi, usa invece pip per installarlo direttamente da github:

::

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

Versioni di Python

Umap2 è compatibile con python2/3 per la maggior parte. Tuttavia, lo script di fuzzing (umap2kitty) funziona solo su python2.

Dipendenze "Soft"

Le dipendenze di Umap2 sono elencate in setup.py e verranno installate con umap2, comunque, ci sono un paio di cose che potresti voler fare per aggiungere il supporto per alcuni dispositivi:

Mass Storage

root@kitploit:~

1. Richiede un'immagine disco chiamata **stick.img** nella directory di esecuzione

MTP
~~~

1. Richiede una cartella/file chiamato **mtp_fs** nella directory corrente.
2. Richiede il pacchetto Python pymtpdevice. Questo pacchetto non è su pypi
   al momento, ma può essere scaricato e installato da qui:
   https://github.com/BinyaminSharet/Mtp

Hardware
--------

- `Facedancer <http://goodfet.sourceforge.net/hardware/facedancer21/>`_
  è l'hardware consigliato per Umap2.
  Umap2 è stato sviluppato basandosi su di esso, e riceverai il massimo supporto con esso.
- `Raspdancer <http://wiki.yobi.be/wiki/Raspdancer>` è supportato su RPi
- **GadgetFS** è parzialmente supportato.
  Questo supporto è molto sperimentale (ancora più del resto di Umap2)
  e limitato.
  
  - BeagleboneBlack a partire dal kernel Linux 4.4.9 con driver gadgetfs
    patchato
  - RaspberryPi Zero W a partire dal kernel Linux 4.12.0-rc3+ che non richiede
    patch
  - Poiché 4.12.0-rc3+ non richiede patch, potrebbero esserci altri dispositivi
    che possono essere supportati; se conosci un dispositivo del genere o hai apportato modifiche
    per farlo funzionare su altri dispositivi, inviaci una parola.

Se sei interessato, leggi **gadget/README.rst** per maggiori informazioni.

Utilizzo
--------

Emulazione di dispositivi

La funzionalità di base di Umap2 è l'emulazione di un dispositivo USB. Puoi emulare uno dei dispositivi esistenti (usa umap2list per vedere i dispositivi disponibili):

::

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

oppure emulare il tuo dispositivo:

::

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

Una guida dettagliata per aggiungere il tuo dispositivo sarà aggiunta presto, nel frattempo, puoi dare un'occhiata ai dispositivi umap2 in umap2/dev/

Scansione del supporto dei dispositivi

root@kitploit:~

Umap2 può tentare di rilevare quali tipi di dispositivi USB
sono supportati dall'host.
Ciò viene fatto emulando ogni dispositivo implementato in Umap2
per un breve periodo di tempo
e verificando se un messaggio specifico del dispositivo è stato inviato.

::

    $ umap2scan -P fd:/dev/ttyUSB0

Scansione del supporto di dispositivi specifici del vendor

Oltre alla scansione del supporto per varie classi di dispositivi, Umap2 può scansionare l'host per il supporto di dispositivi specifici del vendor.

La scansione specifica del vendor aiuta a identificare i driver specifici del vendor disponibili sull'host.

Questo può essere fatto usando il database VID-PID corrente di Umap2 (ci sto ancora lavorando), o un altro file nello stesso formato:

::

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

Oppure scansionando un intervallo vid-pid specifico - in questo esempio - scansiona ogni combinazione di VID da 0x1001 a 0x1004 e PID da 0x0000 a 0xffff:

::

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

Qualsiasi patch/aggiunta al file vid_pid_db.py è molto gradita!

Fuzzing

root@kitploit:~

Una guida dettagliata per il fuzzing con Umap2 può essere trovata in 
`docs/fuzzing.rst <https://github.com/nccgroup/umap2/blob/master/docs/fuzzing.rst>`_

Il fuzzing con Umap2 è composto da tre passaggi,
che potrebbero essere unificati in un singolo script in futuro.

1. Scopri qual è l'ordine dei messaggi
   per l'host che vuoi sottoporre a fuzzing e il
   dispositivo USB che emuli:

   ::

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

2. Avvia il fuzzer kitty in una shell separata
   e fornisci gli stage generati nel passaggio 1.

   ::

        $ umap2kitty -s keyboard.stages

3. Avvia l'emulazione della tastiera umap2 in modalità fuzz

   ::

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

Dopo il passaggio 3, la sessione di fuzzing avrà inizio.

Nota sul fuzzing MTP
++++++++++++++++++++++

Sebbene umap2 possa essere usato per emulare e scoprire dispositivi MTP
(vedi sezione "Dipendenze soft" di questo README),
non esegue il fuzzing del layer MTP in questo momento.
Per eseguire il fuzzing del layer MTP,
puoi usare il fuzzer integrato nella libreria MTP.
Prevediamo di supportare il fuzzing MTP direttamente da umap2 nelle versioni future.

Rilevamento del sistema operativo host

TBD

Risoluzione dei problemi

Se hai problemi con Umap2, prova la sezione di risoluzione dei problemi <https://github.com/nccgroup/umap2/blob/master/docs/troubleshooting.rst>_

Raspdancer

Ti servono SPI-Py https://github.com/lthiery/SPI-Py e le librerie Python GPIO. Usa phy rd

Scarica lo strumento