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
usbrip — Verfolgung der Historie von USB-Ereignissen unter GNU/Linux | Kitploit
Tools/GitHubGitHub/snovvcrash/usbrip
ForensikDigitale ForensikBedrohungsanalyseIncident ResponseLog-AnalyseArchived
GitHubsnovvcrash/usbrip

usbrip

Verfolgung der Historie von USB-Ereignissen unter GNU/Linux

Repository anzeigen
1.2k113vor 3 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
Webseite

logo.png


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

usbrip (abgeleitet von „USB Ripper“, nicht „USB R.I.P.“) ist ein einfaches Forensik-Tool mit einer Befehlszeilenschnittstelle, mit dem Sie USB-Geräte-Artefakte (d. h. den USB-Ereignisverlauf) auf Linux-Maschinen verfolgen können.

Inhaltsverzeichnis:

  • Beschreibung
  • Schnellstart
  • Vorführung
  • Struktur der Systemprotokolle
  • Abhängigkeiten
    • deb
    • pip
  • Manuelle Installation
    • Git Clone
    • install.sh
      • Pfade
      • Cron
      • uninstall.sh
  • Verwendung
    • Aufrufsyntax
    • Hilfe
  • Beispiele
  • Danksagungen & Referenzen
  • Stargazers-Diagramm
  • Post Scriptum

Beschreibung

usbrip ist ein kleines Software-Werkzeug, das Linux-Protokolldaten analysiert: journalctl-Ausgabe oder Inhalte von /var/log/syslog* (bzw. /var/log/messages*). Basierend auf den gesammelten Daten kann usbrip Tabellen mit USB-Ereignisverläufen erstellen, die folgende Spalten enthalten:

  • Verbunden (Datum & Uhrzeit)
  • Host
  • VID (Hersteller-ID)
  • PID (Produkt-ID)
  • Produkt
  • Hersteller
  • Seriennummer
  • Anschluss
  • Getrennt (Datum & Uhrzeit)

Darüber hinaus kann es auch:

  • Gesammelte Daten als JSON-Dump für die spätere Verwendung exportieren.
  • Eine Liste autorisierter (vertrauenswürdiger) USB-Geräte als JSON-Datei erstellen (nennen Sie sie auth.json).
  • Nach „Verstoßereignissen“ suchen, basierend auf auth.json: USB-Geräte entdecken, die im Verlauf vorkommen, aber nicht in der auth.json-Datei erscheinen.
  • **bei Installation mit dem Flag -s* Geschützte Speicher (7-Zip-Archive) erstellen, um USB-Ereignisse automatisch zu sichern und mit Hilfe des Cron-Schedulers zu sammeln.
  • Zusätzliche Details zu einem bestimmten USB-Gerät anhand seiner VID und/oder PID suchen.

Schnellstart

Weg 1. Installation mit pip:

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

Weg 2. Installation der aktuellsten Version mit install.sh (empfohlen, zusätzliche Funktionen verfügbar):

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

Vorführung

showcase.png

Docker (*NUR DEMO!*)

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

Struktur der Systemprotokolle

usbrip unterstützt zwei Arten von Zeitstempeln zum Parsen von Systemprotokolldateien:

  1. Nicht modifiziert – Standard-Syslog-Struktur für GNU/Linux ("%b %d %H:%M:%S", z.B. "Jan 1 00:00:00"). Diese Art von Zeitstempel liefert keine Information über das Jahr.
  2. Modifiziert (empfohlen) – bessere Syslog-Struktur, die hochpräzise Zeitstempel inklusive Jahren bietet ("%Y-%m-%dT%H:%M:%S.%f%z", z.B. "1970-01-01T00:00:00.000000-00:00").

Wenn journalctl installiert ist, brauchen Sie sich keine Sorgen zu machen, da es Zeitstempel automatisch umwandeln kann. Andernfalls kann die gewünschte Syslog-Struktur erreicht werden, indem das Format RSYSLOG_FileFormat in der rsyslog-Konfiguration festgelegt wird.

  1. Kommentieren Sie die folgende Zeile in /etc/rsyslog.conf aus:
root@kitploit:~
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
  1. Fügen Sie eine benutzerdefinierte .conf-Datei für usbrip hinzu:
root@kitploit:~
~$ echo '$ActionFileDefaultTemplate RSYSLOG_FileFormat' | sudo tee /etc/rsyslog.d/usbrip.conf
  1. **optional* Löschen Sie vorhandene Protokolldateien:
root@kitploit:~
~$ sudo rm -f /var/log/syslog* /var/log/messages*
  1. Starten Sie den Dienst neu:
root@kitploit:~
~$ sudo systemctl restart rsyslog

Zunächst prüft usbrip, ob eine Möglichkeit besteht, Systemereignisse mit journalctl als der portabelsten Option auszugeben. Wenn nicht, sucht es nach und parst die Systemprotokolldateien /var/log/syslog* oder /var/log/messages*.

Abhängigkeiten

deb

  • Python3.6-Interpreter (oder neuer)
  • python3-venv
  • p7zip-full (wird vom storage-Modul verwendet)

pip

  • terminaltables
  • termcolor
  • tqdm

Manuelle Installation

Git Clone

Der Einfachheit halber nehmen wir an, dass alle Befehle, bei denen das Präfix ~/usbrip$ erscheint, im Verzeichnis ~/usbrip ausgeführt werden, das durch das Klonen des Git-Repositorys entsteht:

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

install.sh

Neben der Installation mit pip kann usbrip auch mit dem benutzerdefinierten Skript installers/install.sh installiert werden.

Bei Verwendung von install.sh werden einige zusätzliche Funktionen verfügbar:

  • Die virtuelle Umgebung wird automatisch erstellt.
  • Sie können das storage-Modul verwenden – einen Cron-Job einrichten, um USB-Ereignisse nach einem Zeitplan zu sichern (ein Beispiel für einen Cron-Job finden Sie in usbrip/cron/usbrip.cron).

⚠️ Warnung: Wenn Sie die Cron-Planung verwenden, sollten Sie die Crontab mit sudo crontab -e konfigurieren, um die Ausführung des storage update-Untermoduls als root zu erzwingen. Die Speicher-Passwörter werden in /var/opt/usbrip/usbrip.ini aufbewahrt und sind standardmäßig nur für root zugänglich.

Um usbrip mit install.sh zu installieren, verwenden Sie:

root@kitploit:~
~/usbrip$ sudo -H installers/install.sh [-l/--local] [-s/--storages]
~/usbrip$ cd
~$ usbrip -h
  • Wenn der Schalter -l aktiviert ist, werden Python-Abhängigkeiten aus lokalen .tar-Paketen (Verzeichnis 3rdPartyTools) anstelle von PyPI gelöst.
  • Wenn der Schalter -s aktiviert ist, wird nicht nur das usbrip-Projekt installiert, sondern es werden auch die Liste der vertrauenswürdigen USB-Geräte, die Verlaufs- und die Verstoß-Speicher erstellt.

Nach Abschluss der Installation können Sie das Verzeichnis ~/usbrip löschen.

Pfade

Bei Installation mit install.sh verwendet usbrip die folgenden Pfade:

  • /opt/usbrip/ – Hauptverzeichnis des Projekts.
  • /var/opt/usbrip/log/ – usbrip Cron-Protokolle.
  • /var/opt/usbrip/storage/ – USB-Ereignisspeicher (history.7z und violations.7z, während des Installationsprozesses erstellt).
  • /var/opt/usbrip/trusted/ – Listen vertrauenswürdiger USB-Geräte (auth.json, während des Installationsprozesses erstellt).
  • /var/opt/usbrip/usbrip.ini – usbrip-Konfigurationsdatei (enthält Passwörter für 7-Zip-Speicher).
  • /usr/local/bin/usbrip – Symlink zum Skript /opt/usbrip/venv/bin/usbrip.

Cron

Cron-Jobs können wie folgt eingerichtet werden:

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

Das Skript installers/uninstall.sh entfernt usbrip und alle Installationsartefakte von Ihrem System.

Um usbrip zu deinstallieren, verwenden Sie:

root@kitploit:~
~/usbrip$ sudo installers/uninstall.sh [-a/--all]
  • Wenn der Schalter -a aktiviert ist, werden nicht nur das usbrip-Projektverzeichnis gelöscht, sondern auch alle Speicher und usbrip-Protokolle.

Vergessen Sie nicht, den Cron-Job zu entfernen, falls Sie einen eingerichtet haben.

Verwendung

Aufrufsyntax

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

~$ usbrip banner
usbrip-Banner anzeigen.

# ---------- EVENTS ----------

~$ usbrip events history [-t | -l] [-e] [-n <ANZAHL_EREIGNISSE>] [-d <DATUM> [<DATUM> ...]] [--host <HOST> [<HOST> ...]] [--vid <VID> [<VID> ...]] [--pid <PID> [<PID> ...]] [--prod <PROD> [<PROD> ...]] [--manufact <HERSTELLER> [<HERSTELLER> ...]] [--serial <SERIENNR> [<SERIENNR> ...]] [--port <PORT> [<PORT> ...]] [-c <SPALTE> [<SPALTE> ...]] [-f <DATEI> [<DATEI> ...]] [-q] [--debug]
USB-Ereignisverlauf anzeigen.

~$ usbrip events open <DUMP.JSON> [-t | -l] [-e] [-n <ANZAHL_EREIGNISSE>] [-d <DATUM> [<DATUM> ...]] [--host <HOST> [<HOST> ...]] [--vid <VID> [<VID> ...]] [--pid <PID> [<PID> ...]] [--prod <PROD> [<PROD> ...]] [--manufact <HERSTELLER> [<HERSTELLER> ...]] [--serial <SERIENNR> [<SERIENNR> ...]] [--port <PORT> [<PORT> ...]] [-c <SPALTE> [<SPALTE> ...]] [-q] [--debug]
USB-Ereignis-Dump öffnen.

~$ sudo usbrip events genauth <AUSGABE_AUTH.JSON> [-a <ATTRIBUT> [<ATTRIBUT> ...]] [-e] [-n <ANZAHL_EREIGNISSE>] [-d <DATUM> [<DATUM> ...]] [--host <HOST> [<HOST> ...]] [--vid <VID> [<VID> ...]] [--pid <PID> [<PID> ...]] [--prod <PROD> [<PROD> ...]] [--manufact <HERSTELLER> [<HERSTELLER> ...]] [--serial <SERIENNR> [<SERIENNR> ...]] [--port <PORT> [<PORT> ...]] [-f <DATEI> [<DATEI> ...]] [-q] [--debug]
Eine Liste vertrauenswürdiger (autorisierter) USB-Geräte erstellen.

~$ sudo usbrip events violations <EINGABE_AUTH.JSON> [-a <ATTRIBUT> [<ATTRIBUT> ...]] [-t | -l] [-e] [-n <ANZAHL_EREIGNISSE>] [-d <DATUM> [<DATUM> ...]] [--host <HOST> [<HOST> ...]] [--vid <VID> [<VID> ...]] [--pid <PID> [<PID> ...]] [--prod <PROD> [<PROD> ...]] [--manufact <HERSTELLER> [<HERSTELLER> ...]] [--serial <SERIENNR> [<SERIENNR> ...]] [--port <PORT> [<PORT> ...]] [-c <SPALTE> [<SPALTE> ...]] [-f <DATEI> [<DATEI> ...]] [-q] [--debug]
USB-Verstoßereignisse basierend auf der Liste vertrauenswürdiger Geräte anzeigen.

# ---------- STORAGE ----------

~$ sudo usbrip storage list <SPEICHER_TYP> [-q] [--debug]
Inhalt des ausgewählten Speichers auflisten. SPEICHER_TYP ist entweder "history" oder "violations".

~$ sudo usbrip storage open <SPEICHER_TYP> [-t | -l] [-e] [-n <ANZAHL_EREIGNISSE>] [-d <DATUM> [<DATUM> ...]] [--host <HOST> [<HOST> ...]] [--vid <VID> [<VID> ...]] [--pid <PID> [<PID> ...]] [--prod <PROD> [<PROD> ...]] [--manufact <HERSTELLER> [<HERSTELLER> ...]] [--serial <SERIENNR> [<SERIENNR> ...]] [--port <PORT> [<PORT> ...]] [-c <SPALTE> [<SPALTE> ...]] [-q] [--debug]
Ausgewählten Speicher öffnen. Verhält sich ähnlich wie das Untermodul EVENTS OPEN.

~$ sudo usbrip storage update <SPEICHER_TYP> [EINGABE_AUTH.JSON] [-a <ATTRIBUT> [<ATTRIBUT> ...]] [-e] [-n <ANZAHL_EREIGNISSE>] [-d <DATUM> [<DATUM> ...]] [--host <HOST> [<HOST> ...]] [--vid <VID> [<VID> ...]] [--pid <PID> [<PID> ...]] [--prod <PROD> [<PROD> ...]] [--manufact <HERSTELLER> [<HERSTELLER> ...]] [--serial <SERIENNR> [<SERIENNR> ...]] [--port <PORT> [<PORT> ...]] [--lvl <KOMPRIMIERUNGSSTUFE>] [-q] [--debug]
Speicher aktualisieren – USB-Ereignisse zum bestehenden Speicher hinzufügen. KOMPRIMIERUNGSSTUFE ist eine Zahl in [0..9].

~$ sudo usbrip storage create <SPEICHER_TYP> [EINGABE_AUTH.JSON] [-a <ATTRIBUT> [<ATTRIBUT> ...]] [-e] [-n <ANZAHL_EREIGNISSE>] [-d <DATUM> [<DATUM> ...]] [--host <HOST> [<HOST> ...]] [--vid <VID> [<VID> ...]] [--pid <PID> [<PID> ...]] [--prod <PROD> [<PROD> ...]] [--manufact <HERSTELLER> [<HERSTELLER> ...]] [--serial <SERIENNR> [<SERIENNR> ...]] [--port <PORT> [<PORT> ...]] [--lvl <KOMPRIMIERUNGSSTUFE>] [-q] [--debug]
Speicher erstellen – 7-Zip-Archiv erstellen und USB-Ereignisse gemäß den ausgewählten Optionen hinzufügen.

~$ sudo usbrip storage passwd <SPEICHER_TYP> [--lvl <KOMPRIMIERUNGSSTUFE>] [-q] [--debug]
Passwort des bestehenden Speichers ändern.

# ---------- IDs ----------

~$ usbrip ids search [--vid <VID>] [--pid <PID>] [--offline] [-q] [--debug]
Zusätzliche Details zu einem bestimmten USB-Gerät anhand seiner <VID> und/oder <PID> aus der USB-ID-Datenbank abrufen.

~$ usbrip ids download [-q] [--debug]
Die USB-ID-Datenbank aktualisieren (herunterladen).

Hilfe

Um eine Liste der Modulnamen zu erhalten, verwenden Sie:

root@kitploit:~
~$ usbrip -h

Um eine Liste der Untermodulnamen für ein bestimmtes Modul zu erhalten, verwenden Sie:

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

Um eine Liste aller Schalter für ein bestimmtes Untermodul zu erhalten, verwenden Sie:

root@kitploit:~
~$ usbrip <MODUL> <UNTERMODUL> -h

Beispiele

  • Zeige den Ereignisverlauf aller USB-Geräte an, unterdrücke Bannerausgabe, Informationsmeldungen und Benutzerinteraktion (-q, --quiet), dargestellt als Liste (-l, --list) mit den letzten 100 Einträgen (-n ANZAHL, --number ANZAHL):

    root@kitploit:~
    ~$ usbrip events history -ql -n 100
    
  • Zeige den Ereignisverlauf der externen USB-Geräte (-e, --external, die tatsächlich getrennt wurden) an, dargestellt als Tabelle (-t, --table) mit den Spalten Verbunden, VID, PID, Getrennt und Seriennummer (-c SPALTE [SPALTE ...], --column SPALTE [SPALTE ...]), gefiltert nach Datum (, ) und PID (), wobei die Protokolle aus externen Dateien stammen (, ):

Danksagungen & Referenzen

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

13cubed.jpg

Stargazers-Diagramm

stargazers

Tool herunterladen
-d DATUM [DATUM ...]
--date DATUM [DATUM ...]
--pid <PID> [<PID> ...]
-f DATEI [DATEI ...]
--file DATEI [DATEI ...]
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

👽 Hinweis: Es gibt etwas zu beachten, wenn Sie mit Filtern arbeiten. Es stehen 4 Arten der Filterung zur Verfügung: nur externe USB-Ereignisse (Geräte, die leicht herausgezogen werden können, -e), nach Datum (-d), nach Feldern (--host, --vid, --pid, --product, --manufact, --serial, --port) und nach Anzahl der Einträge, die Sie als Ausgabe erhalten (-n). Wenn Sie verschiedene Filter gleichzeitig anwenden, erhalten Sie das folgende Verhalten: Zuerst werden die Filter extern und nach Datum angewendet, dann sucht usbrip nach den angegebenen Feldwerten in der Schnittmenge der letzten beiden Filter, und am Ende wird die Ausgabe auf die Anzahl gekürzt, die Sie mit der Option -n festgelegt haben. Betrachten Sie es also als Schnittmenge für die Filterung extern und nach Datum und als Vereinigung für die Filterung nach Feldern. Hoffentlich ergibt das Sinn.

  • Erstelle den Ereignisverlauf aller USB-Geräte und leite die Ausgabe zur weiteren Analyse in eine Datei um. Wenn der Ausgabestrom KEIN Terminal-Stdout ist (| oder > z. B.), gibt es keine ANSI-Escape-Zeichen (Farbe) in der Ausgabe. Sie können es also auf diese Weise verwenden. Beachten Sie auch, dass usbrip einige UNICODE-Symbole verwendet. Daher ist es sinnvoll, die resultierende Datei in die UTF-8-Kodierung zu konvertieren (z. B. mit enconv) sowie die Zeilenumbrüche aus Portabilitätsgründen in den Windows-Stil zu ändern (z. B. mit awk):

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

    👽 Hinweis: Sie können die Escape-Zeichen jederzeit selbst entfernen, auch wenn Sie die Ausgabe bereits auf stdout erhalten haben. Kopieren Sie dazu die Ausgabedaten in usbrip.out und wenden Sie eine weitere awk-Anweisung an:

    root@kitploit:~
    ~$ awk '{ sub("$", "\r"); gsub("\\x1B\\[[0-?]*[ -/]*[@-~]", ""); print }' usbrip.out && enconv -x UTF8 usbrip.out
    
  • Erstelle eine Liste vertrauenswürdiger USB-Geräte als JSON-Datei (trusted/auth.json) mit den Attributen VID und PID, die die ersten drei Geräte enthält, die am 30. November 1984 verbunden waren:

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

    ⚠️ Warnung: Es gibt Fälle, in denen verschiedene USB-Sticks identische Seriennummern haben können. Dies kann auf einen Herstellungsfehler zurückzuführen sein, oder schwarze Hacker konnten den Speicherchip des Laufwerks neu beschreiben, der sich als nicht einmalig programmierbar herausstellte und so weiter... Jedenfalls: „Kein System ist sicher“. usbrip behandelt solche Fälle bisher nicht intelligent, d. h. es behandelt ein Paar von Geräten mit identischen Seriennummern (falls vorhanden) in Bezug auf die Liste vertrauenswürdiger Geräte und das genauth-Modul als dasselbe Gerät.

  • Suche im Ereignisverlauf der externen USB-Geräte nach Verstößen basierend auf der Liste vertrauenswürdiger USB-Geräte (trusted/auth.json) nach PID-Attribut, beschränke die resultierenden Ereignisse auf solche, die Bob-PC als Hostnamen, EvilUSBManufacturer als Hersteller und 0123456789 als Seriennummer haben, und stelle die Ausgabe als Tabelle mit den Spalten Verbunden, VID und PID dar:

    root@kitploit:~
    ~$ sudo usbrip events violations trusted/auth.json -a pid -et --host Bob-PC --manufact EvilUSBManufacturer --serial 0123456789 -c conn vid pid
    
  • Suche nach Details zu einem bestimmten USB-Gerät anhand seiner VID (--vid VID) und PID (--pid PID):

    root@kitploit:~
    ~$ usbrip ids search --vid 0781 --pid 5580
    
  • Lade die neueste Version der usb.ids Datenbank herunter:

    root@kitploit:~
    ~$ usbrip ids download