Es sieht aus wie ein harmloser USB-Stick, ist es aber nicht! In Wirklichkeit handelt es sich um einen BadUSB, der schädliche Befehle ausführen kann. In diesem Blog tauchen wir in die Welt der BadUSB ein. Wie gefährlich sind solche BadUSB wirklich? Wie kann man sich schützen? Und wie kann man sich selbst einen BadUSB mit einem Raspberry Pico W basteln?
Wie funktioniert ein BadUSB?
Die Idee eines BadUSB ist überraschend simpel. Steckt man einen USB-Stick in einen Computer, wird dieser als USB Mass Storage Device erkannt. Der BadUSB wird dagegen als HID (Human Interface Device) identifiziert. HID sind Geräte, welche ein Mensch benutzt, um mit einem Computer zu interagieren (Tastatur/Maus). Computer vertrauen standardmässig Menschen. Das bedeutet, der Computer vertraut einer angeschlossenen Tastatur. Das ist wahnsinnig gefährlich. Der Computer denkt, dass der Input des BadUSB von einem Menschen stammt und vertraut ihm daher.
Der Computer vertraut dem BadUSB und hält ihn für einen Menschen.
Ein weiterer Grund weshalb ein BadUSB erschreckend effektiv ist, ist die Tatsache, dass der BadUSB viel schneller tippt als ein Mensch. Durchschnittlich tippt ein Mensch 40-80 Wörter pro Minute, der BadUSB schafft dagegen 1000 Wörter pro Minute.
Bevor man realisiert was überhaupt passiert, hat der BadUSB seine schmutzige Arbeit bereits erledigt. Der betroffene Computer kann infiziert und/oder Daten gestohlen werden.
Wie kann man sich gegen einen BadUSB schützen?
- Finger weg von unbekannten USB-Sticks
- Computer beim Verlassen immer sperren
- Best Practices «Principle of Least Privileges»
- Passwort Authentifizierung für Admin-Zugriff
- Spezialisierte Software, welche nur eine Verbindung
mit bekannten USB-Geräten auf einer Whitelist zulässt
Finger weg von unbekannten USB-Sticks
Am einfachsten ist es nie unbekannte USB-Sticks in den eigenen Computer einzustecken. Ebenso sollte man den Computer immer sperren, sobald man den Arbeitsplatz verlässt. Wissensverbreitung über die Gefahr von BadUSB kann zum richtigen Verhalten beitragen!
Aber Menschen sind bekanntlich neugierig. Was kann eine Firma mit neugierigen Mitarbeitenden tun?
Best Practices «Principle Of Least Privilege (PoLP)»
Idealerweise hat jede Firma eigene Cybersicherheits-Richtlinien. Das Prinzip der geringsten Privilegien (PoLP) besagt, dass Benutzer nur Zugang zu spezifischen Daten und Ressourcen erhalten sollen, welche für die Erfüllung ihrer Aufgaben erforderlich sind. Ein gewöhnlicher Benutzer sollte keine Admin-Berechtigungen haben. Daher kann eine Passwort-Authentifizierung für Admin Zugriff eingerichtet werden.
BadUSB mit einem Raspberry Pico W basteln
Schritt-für-Schritt Anleitung
-
-
-
- Repository klonen:
git clone https://github.com/dbisu/pico-ducky.git
. - CircuitPython für Raspberry Pi Pico/Raspberry Pi Pico W herunterladen (CircuitPython v.8.2.9 wurde verwendet).
- Raspberry Pico via USB-Anschluss mit Kabel an Computer anschliessen und dabei den Boot-Knopf gedrückt halten. Das Raspberry Pico wird als Wechseldatenträger mit dem Namen
RPI-RP2
auf dem Computer angezeigt. - Die heruntergeladene .uf2 CircuitPython Datei auf das Pico (RPI-RP2) kopieren. Das Pico startet neu und die Anzeige verschwindet. Nach einigen Sekunden verbindet sich der Wechseldatenträger wieder und zeigt sich nun als CIRCUITPY.
- Herunterladen von adafruit-circuitpython-bundle-8.x-mpy-YYYYMMDD.zip und entpacken.
adafruit-circuitpython-bundle-8.x-mpy-20231224.zip
wurde verwendet. - Dateien in den lib-Ordner auf dem Raspberry kopieren:
- Dateien in den Root-Ordner auf dem Raspberry kopieren:
- Nur Pico W: Im Root-Ordner vom Raspberry ein secrets.py erstellen. Diese Datei enthält den AP-Namen und das Passwort, die vom Pico W erstellt werden sollen.
secrets = { 'ssid' : "BadAPName", 'password' : "badpassword" }
. - Ducky Skripts findet man hier.
payload.dd ist für die Funktionalität des BadUSB verantwortlich.
pico-ducky unterstützt nur DuckyScript 1.0, nicht 3.0.
payload.dd Datei in den Root-Order vom Raspberry kopieren.
- Repository klonen:
-
-
Vorsicht!
Sobald payload.dd kopiert wird, startet das Pico neu und führt nach 0.5s das Skript aus. Deshalb das Pico sofort vom Computer trennen, sonst wird der eigene Computer Opfer vom frisch erzeugten BadUSB.