ONE Jailbreak Ad

Checkm8-haavoittuvuuden hyödyntäminen A5–A11 Apple-laitteissa iOS 12:ssa ja iOS 16:ssa

Promotion image of checkm8 article.

axi0mX julkaisi 27. syyskuuta 2019 checkm8:n (lue ”checkmate”), pysyvän ja korjaamattoman bootrom-hyökkäyksen sadoille miljoonille iOS-laitteille. Vuonna 2022 hyökkäys on edelleen käynnissä moderneilla iOS 15- ja iOS 16 -jailbreak-päivityksillä A9–A11 SoC Apple -laitteille.

Mikä on Checkm8?

Checkm8 on bootrom-hyökkäys, jonka CVE-ID on CVE-2019-8900 ja jota käytetään allekirjoittamattoman koodin suorittamiseen iOS:ssä, iPadOS:ssä, tvOS:ssä ja watchOS:ssä A5:n ja A11:n prosessoreilla. Sitä käytetään enimmäkseen Apple-laitteiden jailbreakkaamiseen, ja se on suositun checkra1n-jailbreakin ydin.

Checkm8-pohjaiset jailbreakit ovat osittain kytkettyjä jailbreakeja, koska se hyödyntää USB DFU -pinon use-after-free-ominaisuutta. Sitä käyttävät ipwndfu, Fugu14, checkra1n, Palera1n, Blizzard Jailbreak, ayakurume ja muutamat muut työkalut iOS 12–iOS 17 -käyttöjärjestelmien hyökkäysten hyödyntämiseen.

Checkm8-hyökkäyksen avulla koodin voi suorittaa vain, kun iPhone tai iPad yhdistetään tietokoneeseen DFU-tilassa USB-kaapelilla. checkra1n:n avulla voi jailbreakata iOS 12:n iOS 14:ään asti ja tukee säätöjä, eikä sitä ole koskaan päivitetty lisäämään tukea iOS 15:lle.

Kuvakaappaus VLS:stä, johon on ladattu checkm8-lähdekoodi arm64-laitteille.

Checkm8-käynnistyshaavoittuvuutta hyödyntävä tekijä pystyy myös suorittamaan koodia iOS 15:ssä. Palera1n Jailbreakin kehittäjä Nebula julkaisi ensimmäisen checkm8:aan perustuvan iOS 15 -jailbreakin, jossa oli tweak-injection-tuki iOS 15.0–15.3.1:ssä. Se toimii myös iOS 15.7:ään asti A9-A11-laitteilla ilman tweakeja.

Miten se toimii? C-ohjelmointikielellä funktion malloc tulisi palauttaa NULL, jos se ei pysty varaamaan pyydetyn kokoista muistia. Kutsujan tulisi tarkistaa, onko palautettu osoitin NULL ja käsitellä virhe. S5L8920 bootromissa tätä funktiota ei ole toteutettu oikein. Kun se ei pysty varaamaan muistia, se palauttaa NULL:n sijaan osoittimen muistiosoitteeseen 0x8.

Checkm8 hyödyntää tätä haavoittuvuutta mahdollistaen koodin suorittamisen iOS:ssä, iPadOS:ssä, tvOS:ssä ja watchOS:ssä. Tämä bugi on kaikissa Apple A5–A11 -laitteissa, eikä sitä voida korjata. Siksi iOS 16 on haavoittuvainen ja se voidaan jailbreakata tuetuilla laitteilla.

Huomautus: Useimmat iPhone- ja iPad-sukupolvet ovat haavoittuvia ja niitä voidaan hyödyntää checkm8:lla: iPhone 4S:stä (A5-siru) iPhone 8:aan ja iPhone X:ään (A11-siru).

Uudet laitteet, kuten 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 ja iPhone XS, ovat checkm8-yhteensopivia.

axi0mX, checkm8-hyökkäyksen takana oleva kehittäjä, julkaisi lähdekoodin GPL-3.0-lisenssillä, mikä mahdollistaa toteutuksen kolmannen osapuolen työkaluilla. Lisäksi checkm8-hyökkäys on osa hänen ipwndfu-nimistä avoimen lähdekoodin jailbreak- työkaluaan iOS-laitteille, joka on kirjoitettu Pythonilla ja Assemblylla.

Tämän lisäksi SSH Ramdisk -skripti toteuttaa checkm8-haavoittuvuuden A5–A11-laitteille SSH-ramdiskin luomiseksi ja käynnistämiseksi checkm8-laitteilla. Tätä työkalua voidaan käyttää IPA-tiedostojen pysyviin asentamiseen iOS:n vakiokäyttöjärjestelmään. TrollStore IPA -asennusohjelma ladattiin sivulatauksella tällä tavalla.

checkm8-lähdekoodi

checkm8-hyökkäys on kirjoitettu Assembly-kielellä. Alla voit tarkastella kaikkien arm64-laitteiden checkm8-hyökkäyshyökkäyksen lähdekoodia, jotka sisältävät kaikki iPhone 5S:n, iPhone 5S:n, iPhone SE:n, iPhone 7:n, iPhone 8:n ja iPhone X:n variaatiot. checkm8-lähdekoodi julkaistiin ipwndfu-jailbreakin kautta.

 .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-jailbreakit

Julkaisupäivästä lähtien monet työkalut ovat käyttäneet checkm8-haavoittuvuutta iOS:n jailbreakkaamiseen. Jotkut niistä ovat julkaistuja ja käyttövalmiita, toiset ovat vasta kehitteillä. Vain Palera1n iOS 15:lle sallii hienosäätöjen asentamisen, muita työkaluja ei ole vielä julkaistu tai ne ovat hyödyllisiä vain kehittäjille.

checkm8 iCloud-ohitustyökalut

checkm8-haavoittuvuudella on myös suuri merkitys kaikkien iCloud Bypass -työkalujen kehityksessä. Työkalut mahdollistavat aktivointi-Hello-näytön poistamisen ja laitteen aloitusnäytön käytön iOS 12:ssa ja iOS 16:ssa. Useimmat työkalut vaativat jailbreakin palera1n:llä tai checkra1n:llä, eivätkä ne toimi SIM-kortin kanssa. Wi-Fi kuitenkin toimii, minkä ansiosta sovelluksia voi ladata sivulle ja käyttää App Storea.

Author Photo
Kirjoittanut

Kuballa on yli 20 vuoden kokemus journalismista, ja hän on keskittynyt vankilakarkailuihin vuodesta 2012 lähtien. Hän on haastatellut useiden yritysten ammattilaisia. Journalismin lisäksi Kuba on erikoistunut videoiden editointiin ja drone-lennätykseen. Hän opiskeli tietotekniikkaa yliopistossa ennen kirjoittajan uraansa.

Comments

  • J

    J 2 kuukautta sitten

    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

      qbap 1 kuukausi sitten

      You can't. There is no working solution for the iPhone 13. Apple patched all exploits.

Lähetä kommentti

Viimeisimmät viestit