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
USBvalve — Expose USB activity on the fly | Kitploit
Tools/GitHubGitHub/cecio/usbvalve
Embedded Systems SecurityDynamic Analysis (Sandboxing)ForensicsMalware AnalysisHardware Security
GitHubcecio/usbvalve

USBvalve

Expose USB activity on the fly

Repository anzeigen
1.3k43vor 4 MonatenVon 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

Logo, Querformat, dunkler Text, transparenter Hintergrund

[!NOTE] USBvalve Version 1.0.0

Die Anwendung wurde vollständig neu geschrieben:

  • Der Code wurde von der Arduino-IDE-Umgebung auf das Pi Pico SDK umgestellt
  • Die Abhängigkeiten von externen Bibliotheken wurden erheblich reduziert
  • Der USB-Host-Support für Low-Speed-Geräte ist jetzt robuster (ATTiny85, EvilCrow, usw.)
  • Hardware und Funktionalitäten sind nahezu unverändert, siehe die Hinweise unten für Details

USB-Aktivität im laufenden Betrieb aufdecken

Die beiden Modelle Die Watch 1.2

Ich bin sicher, dass auch Sie – wie ich – schon einmal gebeten wurden, Ihren USB-Stick in ein unbekanntes Gerät zu stecken ... und dann der Zweifel:

Was ist hinter den Kulissen mit meinem armen Stick passiert? Werden meine Dateien gestohlen? Werden sie verschlüsselt? Oder wird nur eine Malware installiert? Mit USBvalve können Sie das in Sekundenschnelle herausfinden: Basierend auf supergünstiger Standard-Hardware können Sie jede USB-Dateisystemaktivität schnell testen und verstehen, was vor sich geht, bevor es zu spät ist!

Mit USBvalve erhalten Sie sofortiges Feedback darüber, was mit dem Laufwerk passiert; das Display zeigt Ihnen, ob auf das auf dem Gerät aufgebaute fake-Dateisystem zugegriffen, daraus gelesen oder hineingeschrieben wird:

Selftest Readme

Und ab Version 0.8.0 können Sie es auch als USB-Host verwenden, um BADUSB-Geräte zu erkennen:

HID

Dies ist ein Beispiel des BADUSB-Debuggers, der über die serielle Schnittstelle verfügbar ist:

Wenn Sie Videos bevorzugen, können Sie sich auch meine Insomni'hack-Präsentation ansehen.

USBvalve Watch

Ab Version 0.15.0 wird eine neue Pi Pico Watch-Version unterstützt. Um die neue Version zu kompilieren, müssen Sie die Zeile #define PIWATCH am Anfang des Codes auskommentieren. Die Hardware ist ein RP2040-basiertes 1,28-Zoll-TFT-Display- und Watch-Board. Weitere Informationen finden Sie hier. Dies ist außerdem vollständig kompatibel mit dem Waveshare RP2040-LCD-1.28.

Repository-Struktur

docs: Dokumentation über das Projekt, mit einer Präsentation, in der Sie sich alle Funktionen ansehen können

firmware: vorgefertigte Firmwares für den Raspberry Pi Pico. Sie können diese einfach verwenden und auf das Board flashen. Wir haben mehrere verschiedene Versionen, für OLEDs mit 32 oder 64 Zeilen, für Pico 1 oder Pico2, für Pi Pico Watch, usw.

PCB: Gerber-Dateien, falls Sie die individuelle Leiterplatte drucken möchten. Das ist nicht zwingend erforderlich; Sie können eine eigene verwenden oder sie auf einem Breadboard aufbauen

src und data: Quellcode, falls Sie die Firmware selbst modifizieren und bauen möchten

utils: einige Hilfsprogramme, die Sie zum Erstellen eines eigenen Dateisystems (FS) verwenden können

pictures: Bilder und Ressourcen, die in diesem Dokument verwendet werden

STL: STL-Dateien für das Gehäuse. In den Ordnern 1.1 und 1.2 befinden sich vollständige Gehäuse (Dank an WhistleMaster). In den Ordnern 1.2_64 und 1.2_64_simple gibt es Gehäuse für den 128x64-Bildschirm (Dank an rtmq0227). Wenn Sie etwas Leichteres zum Schutz des LCDs möchten, können Sie USBvalve_sliding_cover.stl verwenden.

USBvalve bauen

Teileliste

Wenn Sie Ihr eigenes Gerät bauen möchten, benötigen Sie:

  • einen Raspberry Pi Pico 1 oder 2 (oder ein anderes Board auf RP2040-Basis)
  • einen I2C-OLED-Bildschirm 128x64 oder 128x32 (SSD1306)
  • (optional) eine USBvalve-Leiterplatte oder ein Breadboard
  • (optional) einen 3D-gedruckten Abstandshalter, um den Bildschirm vom Board zu isolieren (https://www.thingiverse.com/thing:4748043); Sie können stattdessen aber auch ein Stück Isolierband verwenden

Hinweise zu BOOTSEL und Version >= 1.0.0

In den 0.x.x-Versionen wurde BOOTSEL verwendet, um das Gerät zurückzusetzen oder die Anzahl der HID-Ereignisse auszugeben (Taste > 2s drücken).

Das Polling von BOOTSEL verursachte einige Probleme bei der BADUSB-Erkennung, daher wurde dies ab Version 1.0.0 entfernt und durch die folgenden zwei Optionen ersetzt:

  • Löten Sie einen Taster zwischen GP0 und GND (Pads 1 und 3, siehe Bild unten für ein Beispiel), um dieselben Funktionen zu erhalten
  • Verwenden Sie die Befehle r (Reset) und h (HID-Ereignisse) über den seriellen Monitor

In PCB finden Sie auch eine Version 1.3 der Leiterplatte, mit Löchern auf den Pads 1 und 3, um die Montage des Tasters zu erleichtern. Wie Sie sehen, können Sie aber auch Ihre alte Version verwenden.

Wenn Sie die BADUSB-Funktionen nicht verwenden oder es vorziehen, eine geringere Erkennungsabdeckung in Kauf zu nehmen, aber die BOOTSEL-Nutzung beibehalten möchten, stelle ich auch eine Firmware bereit, die mit aktiviertem bootsel erstellt wurde (siehe Ordner und Releases).

Bauanleitung

Dank an Tz1rf haben wir auch zwei großartige Videos: eines erklärt den Bau-Prozess Schritt für Schritt, ein anderes zeigt, wie man Firmware hochlädt und das Tool verwendet.

Fast die gesamte Arbeit wird direkt auf dem Board von der Software erledigt; Sie müssen also nur die Verbindung zum OLED für die Ausgabe herstellen.

Ab Firmware-Version 0.8.0 kann USBvalve HID-Geräte erkennen (zur Erkennung von BADUSB). Dafür ist ein zusätzlicher USB-Port erforderlich, der als Host fungiert. Wenn Sie daran nicht interessiert sind, können Sie die alte Anleitung im docs-Ordner verwenden und die PCB-Version 1.1 nutzen. Andernfalls fahren Sie mit der PCB-Version 1.2 fort (wir haben Versionen für USB-A oder USB-B, siehe Ordner).

Mit USBvalve-Leiterplatte

  • Löten Sie eine USB-Buchse im Bereich USBH. Dies gilt für Version A, es gibt aber auch eine Version für USB Micro-B, falls Sie diese bevorzugen
  • Platzieren Sie den Raspberry Pi Pico auf dem Siebdruck auf der Vorderseite
  • Sie müssen nicht alle PINs löten. Nur die folgenden:
    • D4 und D5 (linke Seite)
    • D14 und D15 (linke Seite)
    • GND (rechte Seite, dritter Pin von oben)
    • GND (rechte Seite, dritter Pin von unten)
    • 3v3_OUT (rechte Seite)
    • VBUS (rechte Seite)
    • die 3 DEBUG-Pins unten: SWCLK, GND und SWDIO
  • Platzieren Sie den 3D-gedruckten Abstandshalter oder ein Stück Klebeband auf den Teilen des OLEDs, die den Raspberry berühren könnten
  • Löten Sie das OLED (mit einer Stiftleiste) auf den 4-PIN-Bereich

Bei einigen OLEDs sind die GND- und VCC-PINs vertauscht. Ich habe die Leiterplatte daher so gebaut, dass sie mit beiden Versionen kompatibel ist:

Wenn Ihr OLED zum Beispiel GND auf PIN1 und VCC auf PIN2 hat, wie hier:

Sie müssen einen Lotpunkt auf diesen beiden Pads auf der Rückseite der Leiterplatte platzieren:

Andernfalls müssen Sie das Gegenteil tun und den Lot auf die anderen PADs aufbringen:

Ohne USBvalve-Leiterplatte

Pico Pi

Wenn Sie ein Breadboard oder nur Kabelverbindungen verwenden, müssen Sie nur sicherstellen, dass die richtigen PINs am OLED-Bildschirm und am USB-Host-Port angeschlossen sind.

Die Zuordnung ist wie folgt:

  • PIN6 des Pi --> OLED SDA
  • PIN7 des Pi --> OLED SCL
  • PIN19 des Pi --> D+ des USB-Hosts
  • PIN20 des Pi --> D- des USB-Hosts
  • PIN23 (GND) des Pi --> GND des USB-Hosts
  • PIN38 (GND) des Pi --> OLED GND
  • PIN36 (3V3OUT) des Pi --> OLED VCC
  • PIN40 (VBUS) des Pi --> VCC des USB-Hosts

Wenn Sie die DEBUG-Funktionen verwenden möchten, können Sie auch eine Stiftleiste auf den 3 SWD-PINs am unteren Rand des Boards platzieren.

Mit USBpipe-Leiterplatte

[!CAUTION] Diese Leiterplatte ist für erfahrene Elektronik-Bastler gedacht NICHT BENUTZEN, WENN SIE NICHT SICHER SIND, DASS SIE DAMIT UMGEHEN KÖNNEN!

[!NOTE] R7 und R8 sind eigentlich mit nichts verbunden. Sie wurden zu Debugging-Zwecken der Schaltung hinzugefügt. Daher erscheinen sie nicht in der Stückliste (BOM)

USBpipe PCB USBpipe

USBpipe ist eine eigens für dieses Projekt entwickelte Leiterplatte.

Sie finden alles, was Sie benötigen, im Ordner ./PCB/USBpipe/.

Vorderseite Rückseite

Firmware flashen

Um die Firmware zu flashen, gehen Sie wie folgt vor:

  • Verbinden Sie den Raspberry Pi Pico mit dem USB-Kabel, während Sie die BOOTSEL-Taste gedrückt halten (der große weiße Taster auf dem Board)
  • Lassen Sie die Taste los
  • Sie sehen ein neues Laufwerk auf dem System mit dem Namen RPI-RP2 (unter Linux müssen Sie es möglicherweise manuell mounten)
  • Kopieren Sie die passende Firmware-Datei (mit der Erweiterung uf2) in den Ordner, abhängig davon, welches OLED Sie verwendet haben
  • Warten Sie einige Sekunden, bis der gemountete Ordner verschwindet

Fertig!

Anti-Erkennung

Ich weiß nicht, ob das jemals der Fall sein wird, aber Sie möchten die Firmware möglicherweise anpassen, um eine Erkennung durch USBvalve-bewusste Malware zu vermeiden :-)

Ich habe die meisten Variablen, die Sie möglicherweise ändern möchten, in diesem Abschnitt von usb_config.h zusammengefasst (siehe Dockerfile unten zum Neubauen)

root@kitploit:~
// USB anti-detection settings
//
// Set USB IDs strings and numbers, to avoid possible detections.
// Remember that you can cusotmize FAKE_DISK_BLOCK_NUM as well
// for the same reason. Also DISK_LABEL in ramdisk.h can be changed.
//
// You can see here for inspiration: https://the-sz.com/products/usbid/
//
// Example:
//             0x0951 0x16D5    VENDORID_STR: Kingston   PRODUCTID_STR: DataTraveler
//
#define USB_VENDORID       0x0951
#define USB_PRODUCTID      0x16D5
#define USB_DESCRIPTOR     "DataTraveler"
#define USB_MANUF          "Kingston"
#define USB_SERIAL         "123456789A"
#define USB_VENDORID_STR   "Kingston"        // Up to 8 chars
#define USB_PRODUCTID_STR  "DataTraveler"    // Up to 16 chars
#define USB_VERSION_STR    "1.0"             // Up to 4 chars

Ihre eigene Firmware bauen

Natürlich können Sie auch Ihre eigene Firmware bauen. Zum Bauen benötigen Sie das Raspberry Pi Pico SDK und dieses Repository.

Grundlegende Anweisungen zum Neu-Kompilieren:

root@kitploit:~
export PICO_SDK_PATH=</path/to/pico-sdk>

git clone --recursive https://github.com/cecio/USBvalve.git
cd USBvalve
mkdir build && cd build
cmake -DPICO_BOARD=pico ..   # or pico2 for standard build
make -j$(nproc)
# Output: build/src/USBvalve.uf2

Wenn Sie ein neues Fake-Dateisystem erstellen möchten, sollten Sie einen Blick in den Ordner utils werfen, in dem ich einige Hilfsprogramme zum Erstellen eines neuen abgelegt habe.

Dockerfile

Wenn Sie Ihre eigene Firmware bauen möchten, stelle ich Ihnen, nachdem Sie sie angepasst haben, ein Dockerfile bereit, das eine vollständige Build-Umgebung aufbaut und die Firmware kompiliert.

Geben Sie die folgenden Befehle im Hauptordner USBvalve ein, um zu bauen:

root@kitploit:~
# To Build:
#       docker build -t usbvalve-sdk -f Dockerfile.sdk .
#
# To Run (default: pico, SSD1306 OLED 128x32):
#       docker run --rm -v $PWD:/mnt usbvalve-sdk
#
# Options (via environment variables):
#       BOARD=pico|pico2          Board target (default: pico)
#       OLED_HEIGHT=32|64         OLED display height (default: 32)
#       PIWATCH=1                 Use GC9A01 round TFT instead of SSD1306
#       USE_BOOTSEL=1             Enable BOOTSEL button (disrupts Low Speed USB)
#
# Examples:
#       docker run --rm -e BOARD=pico2 -v $PWD:/mnt usbvalve-sdk
#       docker run --rm -e PIWATCH=1 -v $PWD:/mnt usbvalve-sdk
#       docker run --rm -e BOARD=pico2 -e OLED_HEIGHT=64 -v $PWD:/mnt usbvalve-sdk

Die Firmware wird mit der Erweiterung uf2 im Ordner USBvalve_out abgelegt.

Mitwirken

Wenn Ihnen Ideen oder Verbesserungen vorschweben, ermutige ich Sie, ein Issue zu eröffnen, damit wir das Projekt gemeinsam verbessern können! Danke!

Support

Wenn Sie Fragen haben oder Unterstützung benötigen, können Sie hier ein Issue eröffnen oder mich auf Twitter/X @red5heep kontaktieren.

Community-Versionen

Die Community hat einige Forks erstellt, die Unterstützung für andere Boards oder andere Modifikationen implementieren. Danke an alle, die zur Entwicklung von USBvalve beigetragen haben. Hier unten ist eine inoffizielle/unvollständige/nicht unterstützte Liste:

  • USBvalve-tbfa-Mod

SICHERHEITSWARNUNG

[!WARNING] Ich habe viele Fragen zu USBvalve und USB-Killer-Geräten erhalten. USBvalve ist nicht dafür gebaut, diese Geräte zu testen; es verfügt über keinerlei Isolierung oder Schutz. Wenn Sie also den Verdacht haben, dass Sie es mit einem dieser Geräte zu tun haben, testen Sie es mit etwas anderem, NICHT mit USBvalve, da Sie sonst das Gerät, sich selbst oder Gegenstände in Ihrer Nähe beschädigen könnten.

Tool herunterladen