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
usbrip — Tracciamento della cronologia degli eventi USB su GNU/Linux | Kitploit
Strumenti/GitHubGitHub/snovvcrash/usbrip
Informatica ForenseDigital ForensicsThreat IntelligenceRisposta agli IncidentiAnalisi dei LogArchived
GitHubsnovvcrash/usbrip

usbrip

Tracciamento della cronologia degli eventi USB su GNU/Linux

Vedi Repository
1.2k1133 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
Sito web

logo.png


version.svg python.svg license.svg blackarch.svg built-with-love.svg

usbrip (erede da "USB Ripper", non "USB R.I.P.") è un semplice strumento forense con interfaccia a riga di comando che consente di tenere traccia degli artefatti dei dispositivi USB (cioè la cronologia degli eventi USB) su macchine Linux.

Indice dei contenuti:

  • Descrizione
  • Avvio rapido
  • Dimostrazione
  • Struttura dei log di sistema
  • Dipendenze
    • deb
    • pip
  • Installazione manuale
    • Git Clone
    • install.sh
      • Percorsi
      • Cron
      • uninstall.sh
  • Utilizzo
    • Sinossi
    • Aiuto
  • Esempi
  • Crediti e Riferimenti
  • Grafico Stelline
  • Post Scriptum

Descrizione

usbrip è un piccolo programma che analizza i dati dei log Linux: output di journalctl o contenuti dei file /var/log/syslog* (o /var/log/messages*). Basandosi sui dati raccolti, usbrip può costruire tabelle della cronologia degli eventi USB con le seguenti colonne:

  • Connesso (data e ora)
  • Host
  • VID (vendor ID)
  • PID (product ID)
  • Prodotto
  • Produttore
  • Numero di serie
  • Porta
  • Disconnesso (data e ora)

Inoltre, può anche:

  • Esportare i dati raccolti come dump JSON per un uso successivo.
  • Generare un elenco di dispositivi USB autorizzati (fidati) come file JSON (chiamato auth.json).
  • Cercare "eventi di violazione" basandosi su auth.json: scoprire dispositivi USB che compaiono nella cronologia e NON compaiono nel file auth.json.
  • *se installato con il flag -s* Creare archivi protetti (archivi 7-Zip) per eseguire automaticamente il backup e accumulare eventi USB con l'aiuto dello scheduler cron.
  • Cercare dettagli aggiuntivi su un dispositivo USB specifico in base al suo VID e/o PID.

Avvio rapido

Modo 1. Installare con pip:

root@kitploit:~
~$ sudo -H python3 -m pip install -U usbrip
~$ usbrip -h

Modo 2. Installare la versione bleeding-edge con install.sh (consigliato, funzionalità extra disponibili):

root@kitploit:~
~$ sudo apt install python3-venv p7zip-full -y
~$ git clone https://github.com/snovvcrash/usbrip && cd usbrip
~/usbrip$ sudo -H installers/install.sh
~/usbrip$ cd
~$ usbrip -h

Dimostrazione

showcase.png

Docker (*SOLO DEMO!*)

root@kitploit:~
~$ docker run --rm -it snovvcrash/usbrip

Struttura dei log di sistema

usbrip supporta due tipi di timestamp per l'analisi all'interno dei file di log di sistema:

  1. Non modificato – struttura syslog standard per GNU/Linux ("%b %d %H:%M:%S", es. "Jan 1 00:00:00"). Questo tipo di timestamp non fornisce l'informazione sull'anno.
  2. Modificato (consigliato) – struttura syslog migliore che fornisce timestamp ad alta precisione inclusi gli anni ("%Y-%m-%dT%H:%M:%S.%f%z", es. "1970-01-01T00:00:00.000000-00:00").

Se hai journalctl installato, non c'è nulla di cui preoccuparsi in quanto può convertire i timestamp al volo. Altrimenti, la struttura syslog desiderata può essere ottenuta impostando il formato RSYSLOG_FileFormat nella configurazione di rsyslog.

  1. Commenta la seguente riga in /etc/rsyslog.conf:
root@kitploit:~
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
  1. Aggiungi un file .conf personalizzato per usbrip:
root@kitploit:~
~$ echo '$ActionFileDefaultTemplate RSYSLOG_FileFormat' | sudo tee /etc/rsyslog.d/usbrip.conf
  1. *opzionale* Elimina i file di log esistenti:
root@kitploit:~
~$ sudo rm -f /var/log/syslog* /var/log/messages*
  1. Riavvia il servizio:
root@kitploit:~
~$ sudo systemctl restart rsyslog

In primo luogo, usbrip controllerà se c'è la possibilità di dump degli eventi di sistema usando journalctl come opzione più portabile. In caso contrario, cercherà e analizzerà i file di log di sistema /var/log/syslog* o /var/log/messages*.

Dipendenze

deb

  • Interprete python3.6 (o più recente)
  • python3-venv
  • p7zip-full (usato dal modulo storage)

pip

  • terminaltables
  • termcolor
  • tqdm

Installazione manuale

Git Clone

Per semplicità, supponiamo che tutti i comandi in cui appare il prefisso ~/usbrip$ vengano eseguiti nella directory ~/usbrip creata come risultato di un git clone:

root@kitploit:~
~$ git clone https://github.com/snovvcrash/usbrip
~$ cd usbrip
~/usbrip$ pwd

install.sh

Oltre all'installazione con pip, usbrip può anche essere installato con lo script personalizzato installers/install.sh.

Quando si utilizza install.sh, alcune funzionalità extra diventano disponibili:

  • L'ambiente virtuale viene creato automaticamente.
  • Puoi usare il modulo storage – impostare un job cron per eseguire il backup degli eventi USB su base programmata (un esempio di job cron si trova in usbrip/cron/usbrip.cron).

⚠️ Attenzione: se utilizzi la pianificazione cron, devi configurare il crontab con sudo crontab -e per forzare l'esecuzione del sottomodulo storage update come root. Le password degli archivi sono conservate in /var/opt/usbrip/usbrip.ini e accessibili solo da root per impostazione predefinita.

Per installare usbrip con install.sh usa:

root@kitploit:~
~/usbrip$ sudo -H installers/install.sh [-l/--local] [-s/--storages]
~/usbrip$ cd
~$ usbrip -h
  • Quando l'opzione -l è abilitata, le dipendenze Python vengono risolte da pacchetti .tar locali (directory 3rdPartyTools) invece che da PyPI.
  • Quando l'opzione -s è abilitata, non solo viene installato il progetto usbrip ma vengono anche creati l'elenco dei dispositivi USB fidati, gli archivi della cronologia e delle violazioni.

Al termine dell'installazione, puoi eliminare la directory ~/usbrip.

Percorsi

Quando installato con install.sh, usbrip utilizza i seguenti percorsi:

  • /opt/usbrip/ – directory principale del progetto.
  • /var/opt/usbrip/log/ – log cron di usbrip.
  • /var/opt/usbrip/storage/ – archivi degli eventi USB (history.7z e violations.7z, creati durante il processo di installazione).
  • /var/opt/usbrip/trusted/ – elenchi di dispositivi USB fidati (auth.json, creati durante il processo di installazione).
  • /var/opt/usbrip/usbrip.ini – file di configurazione di usbrip (contiene le password per gli archivi 7-Zip).
  • /usr/local/bin/usbrip – collegamento simbolico allo script /opt/usbrip/venv/bin/usbrip.

Cron

I job cron possono essere impostati come segue:

root@kitploit:~
~/usbrip$ sudo crontab -l > tmpcron && echo "" >> tmpcron
~/usbrip$ cat usbrip/cron/usbrip.cron | tee -a tmpcron
~/usbrip$ sudo crontab tmpcron
~/usbrip$ rm tmpcron

uninstall.sh

Lo script installers/uninstall.sh rimuove usbrip e tutti gli artefatti dell'installazione dal sistema.

Per disinstallare usbrip usa:

root@kitploit:~
~/usbrip$ sudo installers/uninstall.sh [-a/--all]
  • Quando l'opzione -a è abilitata, non solo viene eliminata la directory del progetto usbrip ma vengono anche cancellati tutti gli archivi e i log di usbrip.

Non dimenticare di rimuovere il job cron se ne hai impostato uno.

Utilizzo

Sinossi

root@kitploit:~
# ---------- BANNER ----------

~$ usbrip banner
Ottieni il banner di usbrip.

# ---------- EVENTI ----------

~$ usbrip events history [-t | -l] [-e] [-n <NUMERO_EVENTI>] [-d <DATA> [<DATA> ...]] [--host <HOST> [<HOST> ...]] [--vid <VID> [<VID> ...]] [--pid <PID> [<PID> ...]] [--prod <PROD> [<PROD> ...]] [--manufact <MANUFATTURA> [<MANUFATTURA> ...]] [--serial <SERIALE> [<SERIALE> ...]] [--port <PORTA> [<PORTA> ...]] [-c <COLONNA> [<COLONNA> ...]] [-f <FILE> [<FILE> ...]] [-q] [--debug]
Ottieni la cronologia degli eventi USB.

~$ usbrip events open <DUMP.JSON> [-t | -l] [-e] [-n <NUMERO_EVENTI>] [-d <DATA> [<DATA> ...]] [--host <HOST> [<HOST> ...]] [--vid <VID> [<VID> ...]] [--pid <PID> [<PID> ...]] [--prod <PROD> [<PROD> ...]] [--manufact <MANUFATTURA> [<MANUFATTURA> ...]] [--serial <SERIALE> [<SERIALE> ...]] [--port <PORTA> [<PORTA> ...]] [-c <COLONNA> [<COLONNA> ...]] [-q] [--debug]
Apri un dump di eventi USB.

~$ sudo usbrip events genauth <OUT_AUTH.JSON> [-a <ATTRIBUTO> [<ATTRIBUTO> ...]] [-e] [-n <NUMERO_EVENTI>] [-d <DATA> [<DATA> ...]] [--host <HOST> [<HOST> ...]] [--vid <VID> [<VID> ...]] [--pid <PID> [<PID> ...]] [--prod <PROD> [<PROD> ...]] [--manufact <MANUFATTURA> [<MANUFATTURA> ...]] [--serial <SERIALE> [<SERIALE> ...]] [--port <PORTA> [<PORTA> ...]] [-f <FILE> [<FILE> ...]] [-q] [--debug]
Genera un elenco di dispositivi USB fidati (autorizzati).

~$ sudo usbrip events violations <IN_AUTH.JSON> [-a <ATTRIBUTO> [<ATTRIBUTO> ...]] [-t | -l] [-e] [-n <NUMERO_EVENTI>] [-d <DATA> [<DATA> ...]] [--host <HOST> [<HOST> ...]] [--vid <VID> [<VID> ...]] [--pid <PID> [<PID> ...]] [--prod <PROD> [<PROD> ...]] [--manufact <MANUFATTURA> [<MANUFATTURA> ...]] [--serial <SERIALE> [<SERIALE> ...]] [--port <PORTA> [<PORTA> ...]] [-c <COLONNA> [<COLONNA> ...]] [-f <FILE> [<FILE> ...]] [-q] [--debug]
Ottieni eventi di violazione USB basati sull'elenco dei dispositivi fidati.

# ---------- ARCHIVIO ----------

~$ sudo usbrip storage list <TIPO_ARCHIVIO> [-q] [--debug]
Elenca il contenuto dell'archivio selezionato. TIPO_ARCHIVIO è "history" o "violations".

~$ sudo usbrip storage open <TIPO_ARCHIVIO> [-t | -l] [-e] [-n <NUMERO_EVENTI>] [-d <DATA> [<DATA> ...]] [--host <HOST> [<HOST> ...]] [--vid <VID> [<VID> ...]] [--pid <PID> [<PID> ...]] [--prod <PROD> [<PROD> ...]] [--manufact <MANUFATTURA> [<MANUFATTURA> ...]] [--serial <SERIALE> [<SERIALE> ...]] [--port <PORTA> [<PORTA> ...]] [-c <COLONNA> [<COLONNA> ...]] [-q] [--debug]
Apri l'archivio selezionato. Si comporta in modo simile al sottomodulo EVENTS OPEN.

~$ sudo usbrip storage update <TIPO_ARCHIVIO> [IN_AUTH.JSON] [-a <ATTRIBUTO> [<ATTRIBUTO> ...]] [-e] [-n <NUMERO_EVENTI>] [-d <DATA> [<DATA> ...]] [--host <HOST> [<HOST> ...]] [--vid <VID> [<VID> ...]] [--pid <PID> [<PID> ...]] [--prod <PROD> [<PROD> ...]] [--manufact <MANUFATTURA> [<MANUFATTURA> ...]] [--serial <SERIALE> [<SERIALE> ...]] [--port <PORTA> [<PORTA> ...]] [--lvl <LIVELLO_COMPRESSIONE>] [-q] [--debug]
Aggiorna l'archivio – aggiungi eventi USB all'archivio esistente. LIVELLO_COMPRESSIONE è un numero in [0..9].

~$ sudo usbrip storage create <TIPO_ARCHIVIO> [IN_AUTH.JSON] [-a <ATTRIBUTO> [<ATTRIBUTO> ...]] [-e] [-n <NUMERO_EVENTI>] [-d <DATA> [<DATA> ...]] [--host <HOST> [<HOST> ...]] [--vid <VID> [<VID> ...]] [--pid <PID> [<PID> ...]] [--prod <PROD> [<PROD> ...]] [--manufact <MANUFATTURA> [<MANUFATTURA> ...]] [--serial <SERIALE> [<SERIALE> ...]] [--port <PORTA> [<PORTA> ...]] [--lvl <LIVELLO_COMPRESSIONE>] [-q] [--debug]
Crea un archivio – crea un archivio 7-Zip e aggiungi eventi USB in base alle opzioni selezionate.

~$ sudo usbrip storage passwd <TIPO_ARCHIVIO> [--lvl <LIVELLO_COMPRESSIONE>] [-q] [--debug]
Cambia la password dell'archivio esistente.

# ---------- ID ----------

~$ usbrip ids search [--vid <VID>] [--pid <PID>] [--offline] [-q] [--debug]
Ottieni dettagli aggiuntivi su un dispositivo USB specifico dal suo <VID> e/o <PID> dal database degli ID USB.

~$ usbrip ids download [-q] [--debug]
Aggiorna (scarica) il database degli ID USB.

Aiuto

Per ottenere un elenco dei nomi dei moduli usa:

root@kitploit:~
~$ usbrip -h

Per ottenere un elenco dei nomi dei sottomoduli per un modulo specifico usa:

root@kitploit:~
~$ usbrip <MODULO> -h

Per ottenere un elenco di tutte le opzioni per un sottomodulo specifico usa:

root@kitploit:~
~$ usbrip <MODULO> <SOTTOMODULO> -h

Esempi

  • Mostra la cronologia degli eventi di tutti i dispositivi USB, sopprimendo l'output del banner, i messaggi informativi e l'interazione con l'utente (-q, --quiet), rappresentata come elenco (-l, --list) con le ultime 100 voci (-n NUMERO, --number NUMERO):

    root@kitploit:~
    ~$ usbrip events history -ql -n 100
    
  • Mostra la cronologia degli eventi dei dispositivi USB esterni (-e, --external, che sono stati effettivamente disconnessi) rappresentata come tabella (-t, --table) contenente le colonne Connesso, VID, PID, Disconnesso e Numero di serie (-c COLONNA [COLONNA ...], --column COLONNA [COLONNA ...]) filtrata per data (, ) e PID () con log presi da file esterni (, ):

Crediti e Riferimenti

  • usbrip / Инструменты Kali Linux
  • Как узнать, какие USB устройства подключались к Linux / HackWare.ru
  • usbrip: USB-форензика для Линуксов, или Как Алиса стала Евой / Форум информационной безопасности Codeby.net

13cubed.jpg

Grafico Stelline

stargazers

Scarica lo strumento
-d DATA [DATA ...]
--date DATA [DATA ...]
--pid <PID> [<PID> ...]
-f FILE [FILE ...]
--file FILE [FILE ...]
root@kitploit:~
~$ usbrip events history -et -c conn vid pid disconn serial -d '1995-09-15' '2018-07-01' --pid 1337 -f /var/log/syslog.1 /var/log/syslog.2.gz

👽 Nota: c'è una cosa da ricordare quando si lavora con i filtri. Ci sono 4 tipi di filtraggio disponibili: solo eventi USB esterni (dispositivi che possono essere estratti facilmente, -e), per data (-d), per campi (--host, --vid, --pid, --product, --manufact, --serial, --port) e per numero di voci che si ottengono come output (-n). Applicando filtri diversi contemporaneamente, si otterrà il seguente comportamento: prima vengono applicati i filtri esterno e per data, poi usbrip cercherà i valori dei campi specificati nell'intersezione degli ultimi due filtri, e infine troncherà l'output al numero definito con l'opzione -n. Quindi consideralo come una intersezione per il filtraggio esterno e per data e una unione per il filtraggio per campi. Spero abbia senso.

  • Costruisci la cronologia degli eventi di tutti i dispositivi USB e reindirizza l'output a un file per ulteriori analisi. Quando il flusso di output NON è un terminale stdout (| o > per esempio) non ci saranno caratteri di escape ANSI (colore) nell'output, quindi sentiti libero di usarlo in questo modo. Inoltre, nota che usbrip utilizza alcuni simboli UNICODE, quindi sarebbe opportuno convertire il file risultante in codifica UTF-8 (con enconv per esempio) e cambiare i caratteri di newline in stile Windows per portabilità (con awk per esempio):

    root@kitploit:~
    ~$ usbrip events history -t | awk '{ sub("$", "\r"); print }' > usbrip.out && enconv -x UTF8 usbrip.out
    

    👽 Nota: puoi sempre eliminare da solo i caratteri di escape anche se hai già ottenuto l'output su stdout. Per farlo, basta copiare i dati di output in usbrip.out e applicare un'altra istruzione awk:

    root@kitploit:~
    ~$ awk '{ sub("$", "\r"); gsub("\\x1B\\[[0-?]*[ -/]*[@-~]", ""); print }' usbrip.out && enconv -x UTF8 usbrip.out
    
  • Genera un elenco di dispositivi USB fidati come file JSON (trusted/auth.json) con attributi VID e PID contenenti i primi tre dispositivi connessi il 30 novembre 1984:

    root@kitploit:~
    ~$ sudo usbrip events genauth trusted/auth.json -a vid pid -n 3 -d '1984-11-30'
    

    ⚠️ Attenzione: ci sono casi in cui chiavette USB diverse potrebbero avere numeri di serie identici. Ciò potrebbe accadere a causa di un errore di fabbricazione o semplicemente alcuni hacker hanno riscritto il chip di memoria dell'unità che si è rivelato non programmabile una tantum e così via... In ogni caso, "nessun sistema è sicuro". usbrip non gestisce ancora tali casi in modo intelligente, vale a dire tratterà una coppia di dispositivi con SN identici (se esiste) come lo stesso dispositivo per quanto riguarda l'elenco dei dispositivi fidati e il modulo genauth.

  • Cerca nella cronologia degli eventi dei dispositivi USB esterni le violazioni basate sull'elenco dei dispositivi USB fidati (trusted/auth.json) per attributo PID, limita gli eventi risultanti a quelli che hanno Bob-PC come hostname, EvilUSBManufacturer come produttore, 0123456789 come numero di serie e rappresenta l'output come tabella con le colonne Connesso, VID e PID:

    root@kitploit:~
    ~$ sudo usbrip events violations trusted/auth.json -a pid -et --host Bob-PC --manufact EvilUSBManufacturer --serial 0123456789 -c conn vid pid
    
  • Cerca dettagli su un dispositivo USB specifico in base al suo VID (--vid VID) e PID (--pid PID):

    root@kitploit:~
    ~$ usbrip ids search --vid 0781 --pid 5580
    
  • Scarica l'ultima versione del database usb.ids:

    root@kitploit:~
    ~$ usbrip ids download