Checkm8-angreb på Apple-enheder A5-A11 på iOS 12 – iOS 16

Den 27. september 2019 udgav axi0mX checkm8 (læs "checkmate"), en permanent, upatchbar bootrom-exploit til hundredvis af millioner af iOS-enheder. I 2022 kører exploiten stadig på moderne iOS 15 og iOS 16 jailbreaks til A9-A11 SoC Apple-enheder.
Hvad er Checkm8?
Checkm8 er en bootrom-exploit med et CVE-ID på CVE-2019-8900, der bruges til at køre usigneret kode på iOS, iPadOS, tvOS og watchOS med processorer mellem A5 og A11. Den bruges primært til at jailbreake Apple-enheder, og exploiten er kernen i den populære checkra1n-jailbreak.
Jailbreaks baseret på checkm8 er semi-tethered jailbreaks, da udnyttelsen fungerer ved at udnytte en use-after-free-funktion i USB DFU-stakken. Den bruges af ipwndfu, Fugu14, checkra1n, Palera1n, Blizzard Jailbreak, ayakurume og et par andre værktøjer til at udnytte iOS 12 – iOS 17.
Med checkm8 exploit er det kun muligt at udføre koden, når du tilslutter din iPhone eller iPad til computeren i DFU-tilstand via et USB-kabel. checkra1n giver dig mulighed for at jailbreake iOS 12 op til iOS 14 med understøttelse af tweaks og blev aldrig opdateret med understøttelse af iOS 15.

Checkm8 bootrom exploit er også i stand til at udføre kode i iOS 15. Nebula, udvikleren bag Palera1n Jailbreak, udgav den første iOS 15 jailbreak baseret på checkm8 med understøttelse af tweak injection på iOS 15.0 – 15.3.1. Den fungerer også op til iOS 15.7 på A9-A11-enheder uden tweaks.
Hvordan fungerer det? I programmeringssproget C skal funktionen malloc returnere NULL, hvis den ikke kan allokere hukommelse af den ønskede størrelse. Kalderen skal kontrollere, om den returnerede pointer er NULL, og håndtere fejlen. I S5L8920 bootrom er denne funktion ikke implementeret korrekt. Når den ikke kan allokere hukommelse, returnerer den i stedet for NULL en pointer til hukommelsesadresse 0x8.
Checkm8 udnytter denne sårbarhed og gør det muligt at udføre kode på iOS, iPadOS, tvOS og watchOS. Denne fejl findes på alle Apple A5-A11-enheder og kan ikke rettes. Derfor er iOS 16 sårbar og kan jailbreakes på understøttede enheder.
Bemærk: De fleste generationer af iPhones og iPads er sårbare og kan udnyttes ved hjælp af checkm8: fra iPhone 4S (A5-chip) til iPhone 8 og iPhone X (A11-chip).
Nye enheder som iPhone 14, iPhone 14 Pro, iPhone 13 Mini, iPhone 13, iPhone 13 Pro, iPhone 13 Pro Max, iPhone 12, iPhone 12 Pro, iPhone 12 Mini, iPhone 12 Pro Max, iPhone 11 Pro, iPhone 11, iPhone 11 Pro Max, iPhone XR, iPhone XS Max og iPhone XS er checkm8-sikre.
axi0mX, udvikleren bag checkm8 exploit, udgav kildekoden under GPL-3.0-licensen, hvilket gør det muligt at implementere den med tredjepartsværktøjer. Derudover er checkm8 exploit en del af hans ipwndfu open source jailbreak- værktøj til iOS-enheder, skrevet i Python og Assembly.
Derudover implementeres checkm8 exploit for A5-A11 også af SSH Ramdisk Scriptet til at oprette og starte en SSH ramdisk på checkm8-enheder. Dette værktøj kan bruges til at installere permanente IPA-filer på standard iOS. TrollStore IPA Installer blev sideloadet på denne måde.
checkm8 kildekode
checkm8 exploit blev skrevet i Assembly. Nedenfor kan du se checkm8 exploit-kildekoden for alle arm64-enheder, der inkluderer alle variationer af iPhone 5S, iPhone 5S, iPhone SE, iPhone 7, iPhone 8 og iPhone X. checkm8-kildekoden blev udgivet via ipwndfu jailbreak.
.text .pool .set PAYLOAD_OFFSET, 0xBAD00006 .set PAYLOAD_SIZE, 0xBAD00007 .set PAYLOAD_DEST, 0xBAD00005 .set PAYLOAD_PTR, 0xBAD00008 .set gUSBSerialNumber, 0xBAD00002 .set gUSBSRNMStringDescriptor, 0xBAD00004 .set gUSBDescriptors, 0xBAD00001 .set usb_create_string_descriptor, 0xBAD00003 .global _main _main: MOV X19, #0 // HACK: do not free this usb request STP X29, X30, [SP,#-0x10]! MOV X29, SP LDR X0, =gUSBDescriptors LDP X0, X1, [X0] ADR X2, USB_DESCRIPTOR LDP X3, X4, [X2] STP X3, X4, [X0] STP X3, X4, [X1] LDP X3, X4, [X2,#0x10] STP X3, X4, [X0,#0x10] STP X3, X4, [X1,#0x10] LDR X0, =gUSBSerialNumber find_zero_loop: ADD X0, X0, #1 LDRB W1, [X0] CBNZ W1, find_zero_loop ADR X1, PWND_STRING LDP X2, X3, [X1] STP X2, X3, [X0] LDR X0, =gUSBSerialNumber LDR X1, =usb_create_string_descriptor BLR X1 LDR X1, =gUSBSRNMStringDescriptor STRB W0, [X1] LDR X0, =PAYLOAD_DEST ADR X1, _main LDR X2, =PAYLOAD_OFFSET ADD X1, X1, X2 MOV X2, #0 LDR X3, =PAYLOAD_SIZE LDR X4, =PAYLOAD_PTR ADD X5, X0, #0x18 STR X5, [X4] copy_loop: LDP X3, X4, [X1] STP X3, X4, [X0] LDP X3, X4, [X1,#0x10] STP X3, X4, [X0,#0x10] LDP X3, X4, [X1,#0x20] STP X3, X4, [X0,#0x20] LDP X3, X4, [X1,#0x30] STP X3, X4, [X0,#0x30] DC CIVAC, X0 DMB SY ADD X0, X0, #0x40 ADD X1, X1, #0x40 ADD X2, X2, #0x40 CMP X2, X3 B.CC copy_loop SYS #0, c7, c5, #0 DSB SY ISB LDP X29, X30, [SP],#0x10 RET USB_DESCRIPTOR: .word 0x190209, 0x80050101, 0x409fa, 0x1fe0000, 0x21070000, 0xa01, 0x8, 0x0 PWND_STRING: .asciz " PWND:[checkm8]"
Checkm8 Jailbreaks
Siden udgivelsesdagen er checkm8 exploit blevet brugt af mange værktøjer til at jailbreake iOS. Nogle af dem er udgivet og klar til brug, andre er kun under udvikling. Kun Palera1n til iOS 15 giver dig mulighed for at installere tweaks, andre værktøjer er ikke udgivet endnu eller er kun nyttige for udviklere.
- palera1n til iOS 15.0 – iOS 17.
- Palera1n Windows til iOS 15.0 – iOS 17.
- WinRa1n til iOS 12 – iOS 17.
- checkra1n til iOS 12 – iOS 14.8.1.
- iRa1n til iOS 12 – iOS 14.8.1.
- Fugu14 til iOS 14 – iOS 14.8.1.
- ipwndfu til iPhone 3GS.
- kok3shi15 til iOS 15.
- kok3shi16 til iOS 16 – iOS 16.2.
- Blizzard Jailbreak til iOS 15 og iOS 16.
- Ayakurume til iOS 16.
- checkn1x til iOS 12 – iOS 14.8.1.
- Odysseyn1x til iOS 12 – iOS 14.8.1.
- Project36 til iOS 15.
- checkra1n til Windows – iOS 12 op iOS 14
checkm8 iCloud Bypass-værktøjer
checkm8-exploit er også en stor del af udviklingen af alle iCloud Bypass-værktøjer, der giver brugerne mulighed for at fjerne aktiveringsskærmen og få adgang til enhedens startskærm på iOS 12 – iOS 16. De fleste værktøjer kræver jailbreak med palera1n eller checkra1n og fungerer ikke med et SIM-kort. Wi-Fi fungerer dog, så du kan sideloade apps og få adgang til App Store.
- FrostByte til iOS 15 – iOS 16.5.
- iSkip til iOS 15 – iOS 16.
- Blackw0rm til iOS 12 – iOS 14.
- GodsHand til iOS 13 – iOS 16.
- Euphoria Activator12 til iOS 12 – iOS 14.
- Goldra1n til iOS 15 – iOS 16.
- GreenSn0w til iOS 12 – iOS 12.5.6.
- BlackRa1n til iOS 15.
- DarkRa1n til iOS 15 – iOS 16.
- iPass til iOS 15 – iOS 16.
Comments
J 2 måneder siden
Hi Kuba,
My device is passcode locked (my girlfriend forgot the code). I need to reset it and I have limited internet data. I downloaded a beta IPSW but idevicerestore can only use it if I have your bootrom exploit in place. I am on Linux. Is it possible to bootrom exploit the locked phone? It's iPhone 13.Thank you!
qbap 1 måned siden
You can't. There is no working solution for the iPhone 13. Apple patched all exploits.