Das Gefährdungspotenzial der Digispark-USB-Platine
Klein, aber gemein
Frank Neugebauer
Eine daumennagelgroße USB-Entwicklerplatine und ein paar Zeilen Code ermöglichen die Übernahme eines Rechners. Der Artikel demonstriert dies am Beispiel von Linux, macOS und Windows.
Wenn bei Ihnen in der Firma immer wieder Dokumente in die falschen Hände gelangen, obwohl es keine auffälligen Zugriffe von außen gab, die VPN-Verbindung seit Wochen nicht genutzt wurde und die Daten im Firewall-Log nichts ergeben – dann ist ein Blick auf die USB-Steckplätze der Rechner angezeigt. Denn in einem von ihnen könnte ein Digispark stecken.
Ein Digispark ist ein fertig bestücktes, Arduino-kompatibles Entwickler-Board in der Größe einer 1-Euro-Münze, ausgestattet mit Atmels achtbeinigem Mikrocontroller Attiny 85 und einem USB-Programmieranschluss. Der verfügbare Speicherplatz auf der Platine beträgt 6 Kilobyte. Einmal an einen Server, Arbeitsplatzcomputer oder auch an ein mobiles IT-Gerät über die USB-Schnittstelle angeschlossen, wird die Platine dank des HID-Standards als Tastatur erkannt und von allen gängigen Betriebssystemen akzeptiert, vergleichbar also einem USB Rubber Ducky. Die nun aufgerufenen Skripte geben sich als tippender Benutzer aus, das IT-System behandelt sie wie Tastatureingaben.
Die nachfolgenden Beispiele zeigen, wie sich diese kleinen Platinen von Penetrationstestern vielfältig einsetzen lassen – und natürlich auch von Angreifern.
Digispark-Skripte erstellen und speichern
Um auf dem Digispark Skripte anlegen und speichern zu können, benötigt man die zugehörige Entwicklungsumgebung. Die Digispark-IDE gibt es inklusive der Treiber kostenlos bei digistump.com. Am einfachsten funktioniert die Installation unter Windows, eine entsprechende Anleitung ist unter anderem auf der Webseite des Autors zu finden.
Die Skriptsprache für die Digispark-Platine ist recht überschaubar. Im Wesentlichen geht es darum, bestimmte Tastenkombinationen zu simulieren, Text und Kommandos der genutzten Betriebssysteme einzugeben und Verzögerungen in der Ausführung von Befehlen zu erwirken. Eine Auswahl der möglichen Kommandos kann der Tabelle entnommen werden. Es bleibt nur der Kreativität des Nutzers überlassen, welche Tastenkombinationen und Betriebssystemkommandos er einsetzen möchte, um sein Ziel zu erreichen.
Man kann ein Skript in der IDE vorab auf Syntaxfehler testen und dann das fertige Programm auf den Digispark übertragen. Probleme kann es wegen nicht passender Tastaturlayouts geben, dazu später mehr.
Windows-Passwörter auslesen
Den Zugriff auf die Windows-Passwörter verwaltet der LSASS-Prozess (Local Security Authority Subsystem Service). Dazu werden in der Regel lokale Administratorenrechte benötigt, die seit Vista auch normale User temporär bekommen können, etwa zum Installieren von Programmen.
Das Skript setzt voraus, dass der Nutzer administrative Rechte erwerben kann und das Notebook mit dem Internet verbunden ist. Findet der Angreifer den Computer mit einem unversperrten Bildschirm vor, kann das Skript auf der Digispark-Platine das Passwort in wenigen Sekunden aus dem Arbeitsspeicher auslesen und an eine beliebige Adresse im Internet übertragen.
Dazu kommt eine angepasste PowerShell-Version des von Benjamin Delpy entwickelten Mimikatz-Tools zum Einsatz. Das Skript lädt sie von der Webseite des Angreifers herunter und führt sie auf dem lokalen PC mit administrativen Rechten aus. Listing 1 zeigt das fertige Digispark-Skript.
Die mit „//“ auskommentierten Zeilen zeigen die printnl-Befehle, wie sie für eine US-Tastatur lauten müssten. Die an eine deutsche Tastatur angepassten Kommandos sind jeweils in den folgenden Zeilen aufgelistet.
Unixoide Systeme ausspionieren
Im zweiten Szenario nutzt der Angreifer AppleScript. sendmail.scpt (Listing 2) überträgt Dateien aus einem festzulegenden Verzeichnis per E-Mail an den Angreifer. Auch dieses Skript setzt voraus, dass das Macbook über eine Verbindung zum Internet verfügt und der Nutzer seinen Bildschirm nicht gesperrt hat.
Das Skript ist individuell anpassbar und wird vom Angreifer auf einer Webseite zum Download zur Verfügung gestellt, zum Herunterladen dient ein auf der Digispark-Platine gespeichertes kürzeres Skript (Listing 3). Das nutzt die Spotlight-Suche in macOS, um sendmail.scpt zu laden und auf dem Macbook auszuführen.
Auch Linux ist gegen einen Digispark-Angriff nicht gefeit, das entsprechende Shell-Skript zeigt Listing 4. Der Angreifer hat mit dem Metasploit-Framework und dem folgenden Befehl eine ausführbare Datei (shell.elf) erstellt: