
Drahtloser Maus/Tastatur-Angriff mit Replay/Transmit PoC
Dieser Code erweitert die Mousejack-Tools https://github.com/RFStorm/mousejack.
Replay-/Transmit-Tools wurden zu den ursprünglichen Tools hinzugefügt.
POC-Pakete basierend auf einem Logitech Wireless Combo MK220, bestehend aus einer K220 Funk-Tastatur und einer M150 Funk-Maus, sind im Ordner logs enthalten.
Weitere Details finden Sie hier https://www.ckn.io/blog/2016/07/09/hijacking-wireless-mice-and-keyboards/
Pseudo-Promiscuous-Mode-Geräteerkennungstool, das eine Liste von Kanälen durchläuft und dekodierte Enhanced-Shockburst-Pakete ausgibt.
usage: ./nrf24-scanner.py [-h] [-c N [N ...]] [-v] [-l] [-p PREFIX] [-d DWELL]
optional arguments:
-h, --help show this help message and exit
-c N [N ...], --channels N [N ...] RF channels
-v, --verbose Enable verbose output
-l, --lna Enable the LNA (for CrazyRadio PA dongles)
-p PREFIX, --prefix PREFIX Promiscuous mode address prefix
-d DWELL, --dwell DWELL Dwell time per channel, in milliseconds
Nach Geräten auf den Kanälen 1-5 suchen
./nrf24-scanner.py -c {1..5}
Nach Geräten mit einer Adresse, die mit 0xA9 beginnt, auf allen Kanälen suchen
./nrf24-scanner.py -p A9
Geräteverfolgender Sniffer, der einem bestimmten nRF24-Gerät beim Hoppen folgt und dekodierte Enhanced-Shockburst-Pakete von dem Gerät ausgibt.
Diese Version wurde außerdem so modifiziert, dass die Pakete in eine Logdatei aufgezeichnet werden.
usage: ./nrf24-sniffer.py [-h] [-c N [N ...]] [-v] [-l] -a ADDRESS -o OUTPUT [-t TIMEOUT] [-k ACK_TIMEOUT] [-r RETRIES]
optional arguments:
-h, --help show this help message and exit
-c N [N ...], --channels N [N ...] RF channels
-v, --verbose Enable verbose output
-l, --lna Enable the LNA (for CrazyRadio PA dongles)
-a ADDRESS, --address ADDRESS Address to sniff, following as it changes channels
-o OUTPUT, --output OUTPUT Output file to log the packets
-t TIMEOUT, --timeout TIMEOUT Channel timeout, in milliseconds
-k ACK_TIMEOUT, --ack_timeout ACK_TIMEOUT ACK timeout in microseconds, accepts [250,4000], step 250
-r RETRIES, --retries RETRIES Auto retry limit, accepts [0,15]
Schnüffle Pakete von Adresse 8C:D3:0F:3E:B4 auf allen Kanälen und speichere sie in output.log
./nrf24-sniffer.py -a 8C:D3:0F:3E:B4 -o logs/output.log
Wiedergeben aufgezeichneter Pakete oder Senden generierter Pakete. Es folgt einem bestimmten nRF24-Gerät beim Hoppen und sendet Pakete aus einer Logdatei.
usage: ./nrf24-replay.py [-h] [-c N [N ...]] [-v] [-l] -a ADDRESS -i INPUT_FILE [-t TIMEOUT] [-k ACK_TIMEOUT] [-r RETRIES]
optional arguments:
-h, --help show this help message and exit
-c N [N ...], --channels N [N ...] RF channels
-v, --verbose Enable verbose output
-l, --lna Enable the LNA (for CrazyRadio PA dongles)
-a ADDRESS, --address ADDRESS Address to sniff, following as it changes channels
-o INPUT_FILE, --input INPUT_FILE Input file that has the packets to sned
-t TIMEOUT, --timeout TIMEOUT Channel timeout, in milliseconds
-k ACK_TIMEOUT, --ack_timeout ACK_TIMEOUT ACK timeout in microseconds, accepts [250,4000], step 250
-r RETRIES, --retries RETRIES Auto retry limit, accepts [0,15]
Sende Pakete aus der Datei keystroke.log an Adresse 8C:D3:0F:3E:B4 auf dem hopping Kanal
./nrf24-replay.py -a 8C:D3:0F:3E:B4 -i logs/keystroke.log
Sternnetzwerk-Mapper, der versucht, die aktiven Adressen in einem Sternnetzwerk zu entdecken, indem er das letzte Byte der angegebenen Adresse ändert und jede der 256 möglichen Adressen auf jedem Kanal in der Kanalliste anpingt.
usage: ./nrf24-network-mapper.py [-h] [-c N [N ...]] [-v] [-l] -a ADDRESS [-p PASSES] [-k ACK_TIMEOUT] [-r RETRIES]
optional arguments:
-h, --help show this help message and exit
-c N [N ...], --channels N [N ...] RF channels
-v, --verbose Enable verbose output
-l, --lna Enable the LNA (for CrazyRadio PA dongles)
-a ADDRESS, --address ADDRESS Known address
-p PASSES, --passes PASSES Number of passes (default 2)
-k ACK_TIMEOUT, --ack_timeout ACK_TIMEOUT ACK timeout in microseconds, accepts [250,4000], step 250
-r RETRIES, --retries RETRIES Auto retry limit, accepts [0,15]
Kartiere das Sternnetzwerk, zu dem die Adresse 61:49:66:82:03 gehört
./nrf24-network-mapper.py -a 61:49:66:82:03
Die nRF24LU1+-Chips enthalten einen Testmechanismus zur Übertragung eines Dauerstrichs, dessen Frequenz überprüft werden kann, wenn Sie Zugang zu einem SDR haben. Es besteht die Möglichkeit, dass Frequenzversätze zwischen Geräten zu unerwartetem Verhalten führen. Beispielsweise hatte eines der getesteten SparkFun-Breakout-Boards einen Frequenzversatz von ~300 kHz, was dazu führte, dass es Pakete auf zwei benachbarten Kanälen empfing.
Dieses Skript veranlasst den Transceiver, auf dem ersten übergebenen Kanal einen Ton zu senden.
usage: ./nrf24-continuous-tone-test.py [-h] [-c N [N ...]] [-v] [-l]
optional arguments:
-h, --help show this help message and exit
-c N [N ...], --channels N [N ...] RF channels
-v, --verbose Enable verbose output
-l, --lna Enable the LNA (for CrazyRadio PA dongles)
Sende einen Dauerstrich bei 2405 MHz
./nrf24-continuous-tone-test.py -c 5
Dieses verwendet ein Wörterbuch, um Tastendrücke auf die entsprechenden Pakete abzubilden. Es liest die Eingabe von stdin und protokolliert die zugeordneten Pakete in logs/keystrokes.log. Es akzeptiert Eingaben, bis Strg+C gedrückt wird.
usage: ./keymapper.py
Der Ordner logs enthält verschiedene vorgespeicherte Pakete für verschiedene Tastaturoperationen.
Shell.log dient zur Ausnutzung eines Windows-Rechners durch Ausführen eines PowerShell-One-Liners, der eine Verbindung zum Angreiferrechner herstellt.
Die Datei keys.log dient als Referenz, in der verschiedene Tastendrücke und -kombinationen auf ihre entsprechenden Pakete abgebildet sind.
Eine Demo zur Ausnutzung eines Windows-Rechners finden Sie hier https://www.youtube.com/watch?v=YLzUeK1IvJs&feature=youtu.be