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
Tools/GitHubGitHub/cecio/usbvalve
Embedded-System-SicherheitDynamische Analyse (Sandboxing)ForensikMalware-AnalyseHardware-Sicherheit
GitHubcecio/usbvalve

USBvalve

USB-Aktivität spontan offenlegen

Repository anzeigen
1.3k438vor 23 TagenVon 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, landscape, dark text, transparent background

[!NOTE] USBvalve Version 1.0.0

Eine komplette Neuimplementierung der Anwendung wurde durchgeführt:

  • weg von der Arduino IDE-Umgebung, der Code ist jetzt für das Pi Pico SDK geschrieben
  • die Abhängigkeiten von externen Bibliotheken wurden stark reduziert
  • die USB-Host-Unterstützung für Low-Speed-Geräte ist jetzt robuster (ATTiny85, EvilCrow, etc.)
  • Hardware und Funktionalitäten sind nahezu unverändert, siehe die Hinweise unten für Details

USB-Aktivität on the fly aufdecken

The two models The Watch 1.2

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

Was ist hinter den Kulissen mit meinem armen Dongle passiert? Stiehlt er meine Dateien? Verschlüsselt er sie? Oder installiert er nur Malware? Mit USBvalve können Sie das in Sekunden herausfinden: gebaut auf supergünstiger Standard-Hardware können Sie schnell jede USB-Dateisystemaktivität 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; der Bildschirm zeigt Ihnen, ob auf das gefälschte Dateisystem, das auf dem Gerät aufgebaut wurde, zugegriffen, gelesen oder geschrieben 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 für den BADUSB-Debugger, der auf dem seriellen Port 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 Uhr-Board. Weitere Informationen finden Sie hier. Dies ist auch vollständig kompatibel mit dem Waveshare RP2040-LCD-1.28.

Repository-Struktur

docs: Dokumentation über das Projekt, mit einer Präsentation, in der Sie alle Funktionen einsehen 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 32 oder 64 Zeilen OLEDs, für Pico 1 oder Pico2, Pi Pico Watch, etc.

PCB: Gerber-Datei, wenn Sie die benutzerdefinierte Platine drucken möchten. Sie ist nicht zwingend erforderlich, Sie können Ihre eigene verwenden oder sie auf einem Breadboard aufbauen

src und data: Quellcode, wenn Sie die Firmware selbst ändern und bauen möchten

utils: einige Dienstprogramme, die Sie zum Erstellen eines benutzerdefinierten Dateisystems 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 befinden sich 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 bauen möchten, benötigen Sie:

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

Hinweise zu BOOTSEL und Version >= 1.0.0

In den Versionen 0.x.x wurde BOOTSEL verwendet, um das Gerät zurückzusetzen oder die Anzahl der HID-Ereignisse auszugeben (drücken > 2s). Das Abfragen 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 die gleichen Funktionen zu erhalten
  • Verwenden Sie die Befehle r (Reset) und h (HID-Ereignisse) vom seriellen Monitor

In PCB finden Sie auch eine Version 1.3 der Platine, mit einigen Löchern an den Pads 1 und 3, um die Montage des Tasters zu erleichtern. Aber wie Sie sehen können, können Sie auch Ihre alte Version verwenden.

Wenn Sie die BADUSB-Funktionen nicht verwenden oder wenn Sie eine geringere Erkennungsabdeckung bevorzugen, 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, das den Bauprozess Schritt für Schritt erklärt, und ein weiteres, das zeigt, wie man Firmware hochlädt und das Tool verwendet.

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

Ab Version 0.8.0 der Firmware kann USBvalve HID-Geräte erkennen (verwendet zur Erkennung von BADUSB). Dies erfordert einen zusätzlichen USB-Anschluss, der als Host fungiert. Wenn Sie daran nicht interessiert sind, können Sie die alten Anweisungen im docs-Ordner verwenden und PCB-Version 1.1 nutzen. Andernfalls fahren Sie mit PCB-Version 1.2 fort (wir haben Versionen für USB-A oder USB-B, siehe Ordner).

Mit USBvalve PCB

  • Löten Sie einen USB-Buchsenanschluss im Bereich USBH. Dies ist für Version A, aber es gibt auch eine Version für USB Micro-B, wenn Sie das 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-Druck-Abstandshalter oder ein Stück Klebeband auf den Teilen des OLEDs, die den Raspberry berühren könnten
  • Löten Sie das OLED (mit einem Header) auf den 4-PIN-Bereich

Einige der OLEDs haben die GND- und VCC-PINs vertauscht, daher habe ich die Platine so gebaut, dass sie mit beiden Versionen kompatibel ist:

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

Müssen Sie einen Lötklecks auf diese beiden Pads auf der Rückseite der Platine setzen:

Andernfalls sollten Sie das Gegenteil tun und das Lot auf die anderen PADs setzen:

Ohne USBvalve PCB

Pico Pi

Wenn Sie ein Breadboard oder nur eine Verkabelung verwenden, müssen Sie lediglich sicherstellen, dass Sie die richtigen PINs am OLED-Bildschirm und am Host-USB-Anschluss verbinden.

Die Zuordnung ist die folgende:

  • 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 nutzen möchten, können Sie auch einen Header auf die 3 SWD-PINs an der Unterseite des Boards setzen.

Mit USBpipe PCB

[!CAUTION] Diese Platine ist für erfahrene Elektronikbastler VERWENDEN SIE SIE NICHT, WENN SIE NICHT SICHER SIND, DASS SIE DAMIT UMGEHEN KÖNNEN!

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

USBpipe PCB USBpipe

USBpipe ist eine dedizierte Platine für dieses Projekt.

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

Front Back

Firmware flashen

Um die Firmware zu flashen, befolgen Sie diese Schritte:

  • Verbinden Sie den Raspberry Pi Pico mit dem USB-Kabel, indem Sie die BOOTSEL-Taste gedrückt halten (die große weiße Taste auf dem Board)
  • Lassen Sie die Taste los
  • Sie sehen ein neues Laufwerk im System mit dem Namen RPI-RP2 (in Linux-Umgebungen müssen Sie es möglicherweise manuell einbinden)
  • Kopieren Sie die passende Firmware-Datei (mit der Erweiterung uf2) in den Ordner, je nachdem, welches OLED Sie verwendet haben
  • Warten Sie einige Sekunden, bis der eingebundene Ordner verschwindet

Fertig!

Anti-Erkennung

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

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

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/
//
#define USB_VENDORID       0xCAFE
#define USB_PRODUCTID      0x1337
#define USB_DESCRIPTOR     "DataStore"
#define USB_MANUF          "USB Acme"
#define USB_SERIAL         "123456789A"
#define USB_VENDORID_STR   "Acme"            // Up to 8 chars
#define USB_PRODUCTID_STR  "DataStore"       // Up to 16 chars
#define USB_VERSION_STR    "1.0"             // Up to 4 chars

Ihre 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 Neukompilierungsanweisungen:

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 gefälschtes Dateisystem erstellen möchten, sollten Sie einen Blick in den Ordner utils werfen, in dem ich einige Dienstprogramme zum Erstellen eines neuen abgelegt habe.

Dockerfile

Wenn Sie Ihre eigene Firmware bauen möchten, nachdem Sie sie angepasst haben, stelle ich ein Dockerfile bereit, das eine vollständige Build-Umgebung erstellt 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 Sie Ideen oder Verbesserungen im Kopf haben, 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 erreichen.

Community-Versionen

Die Community hat einige Forks erstellt, die Unterstützung für andere Boards oder andere Modifikationen implementieren. Vielen Dank an alle, die zur Entwicklung von USBvalve beigetragen haben. Hier unten 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 hat keinerlei Isolierung oder Schutz. Wenn Sie den Verdacht haben, dass Sie es mit einem dieser Geräte zu tun haben, testen Sie es mit etwas anderem, NICHT mit USBvalve, sonst könnten Sie das Gerät, sich selbst oder Gegenstände in Ihrer Nähe beschädigen.

Tool herunterladen