ONE Jailbreak Ad

Checkm8-Exploit für Apple-Geräte der Klassen A5–A11 unter iOS 12 – iOS 16

Promotion image of checkm8 article.

Am 27. September 2019 veröffentlichte axi0mX checkm8 (sprich: „Schachmatt“), einen permanenten, nicht patchbaren Bootrom-Exploit für Hunderte Millionen iOS-Geräte. Im Jahr 2022 läuft der Exploit immer noch auf modernen iOS 15- und iOS 16-Jailbreaks für Apple-Geräte mit A9- bis A11-SoC.

Was ist Checkm8?

Checkm8 ist ein Bootrom-Exploit mit der CVE-ID CVE-2019-8900, der zum Ausführen von unsigniertem Code unter iOS, iPadOS, tvOS und watchOS mit Prozessoren zwischen A5 und A11 verwendet wird. Er wird hauptsächlich zum Jailbreak von Apple-Geräten verwendet und ist das Herzstück des beliebten Jailbreaks checkra1n.

Jailbreaks basierend auf checkm8 sind semi-tethered Jailbreaks, da der Exploit die Use-after-free-Funktion im USB-DFU-Stack ausnutzt. Er wird von ipwndfu, Fugu14, checkra1n, Palera1n, Blizzard Jailbreak, ayakurume und einigen anderen Tools verwendet, um iOS 12 – iOS 17 auszunutzen.

Mit dem Checkm8-Exploit ist es nur möglich, den Code auszuführen, wenn Sie Ihr iPhone oder iPad im DFU-Modus über ein USB-Kabel mit dem Computer verbinden. Mit checkra1n können Sie iOS 12 bis iOS 14 mit Unterstützung für Optimierungen jailbreaken und es wurde nie aktualisiert, um Unterstützung für iOS 15 hinzuzufügen.

Screenshot von VLS mit geladenem Checkm8-Quellcode für Arm64-Geräte.

Der Checkm8-Bootrom-Exploit kann auch Code für iOS 15 ausführen. Nebula, der Entwickler von Palera1n Jailbreak, hat den ersten iOS 15-Jailbreak basierend auf Checkm8 mit Tweak-Injection-Unterstützung für iOS 15.0 – 15.3.1 veröffentlicht. Er funktioniert auch ohne Tweaks bis iOS 15.7 auf A9-A11-Geräten.

Wie funktioniert es? In der Programmiersprache C sollte die Funktion malloc NULL zurückgeben, wenn sie nicht genügend Speicher allokieren kann. Der Aufrufer sollte prüfen, ob der zurückgegebene Zeiger NULL ist, und den Fehler behandeln. Im Boot-ROM des S5L8920 ist diese Funktion nicht korrekt implementiert. Wenn kein Speicher allokiert werden kann, gibt sie anstelle von NULL einen Zeiger auf die Speicheradresse 0x8 zurück.

Checkm8 nutzt diese Sicherheitslücke aus und ermöglicht die Ausführung von Code auf iOS, iPadOS, tvOS und watchOS. Dieser Fehler tritt auf allen Apple A5–A11-Geräten auf und kann nicht behoben werden. Daher ist iOS 16 anfällig und kann auf unterstützten Geräten gejailbreakt werden.

Hinweis: Die meisten iPhone- und iPad-Generationen sind anfällig und können mit checkm8 ausgenutzt werden: vom iPhone 4S (A5-Chip) bis zum iPhone 8 und iPhone X (A11-Chip).

Neue Geräte wie 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 und iPhone XS sind checkm8-sicher.

axi0mX, der Entwickler des Checkm8-Exploits, hat den Quellcode unter der GPL-3.0-Lizenz veröffentlicht und kann damit auch für Drittanbieter-Tools implementiert werden. Darüber hinaus ist der Checkm8-Exploit Teil seines Open-Source-Jailbreak-Tools ipwndfu für iOS-Geräte, das in Python und Assembler geschrieben ist.

Darüber hinaus wird der Checkm8-Exploit für A5–A11 auch vom SSH-Ramdisk-Skript implementiert, um eine SSH-Ramdisk auf Checkm8-Geräten zu erstellen und zu booten. Mit diesem Tool können IPA-Dateien dauerhaft auf Standard-iOS installiert werden. Der TrollStore IPA-Installer wurde auf diese Weise seitlich geladen.

checkm8-Quellcode

Der CheckM8-Exploit wurde in Assembler geschrieben. Unten können Sie den CheckM8-Exploit-Quellcode für alle arm64-Geräte anzeigen, einschließlich aller Varianten des iPhone 5S, iPhone 5S, iPhone SE, iPhone 7, iPhone 8 und iPhone X. Der CheckM8-Quellcode wurde über den ipwndfu-Jailbreak veröffentlicht.

 .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

Seit dem Veröffentlichungstag wurde der CheckM8-Exploit von vielen Tools zum Jailbreak von iOS genutzt. Einige davon sind veröffentlicht und einsatzbereit, andere befinden sich noch in der Entwicklung. Nur Palera1n für iOS 15 ermöglicht die Installation von Tweaks, andere Tools sind noch nicht veröffentlicht oder nur für Entwickler nützlich.

checkm8 iCloud Bypass-Tools

Der CheckM8-Exploit spielt auch eine wichtige Rolle bei der Entwicklung aller iCloud-Bypass-Tools, mit denen Benutzer den Aktivierungs-Hello-Bildschirm entfernen und auf den Startbildschirm des Geräts unter iOS 12 – iOS 16 zugreifen können. Die meisten Tools erfordern einen Jailbreak mit Palera1n oder Checkra1n und funktionieren nicht mit einer SIM-Karte. WLAN funktioniert jedoch, sodass Sie Apps seitlich laden und auf den App Store zugreifen können.

Author Photo
Geschrieben von

Kuba verfügt über mehr als 20 Jahre journalistische Erfahrung und konzentriert sich seit 2012 auf Jailbreaking. Er hat Experten verschiedener Unternehmen interviewt. Neben dem Journalismus hat sich Kuba auf Videobearbeitung und Drohnenfliegen spezialisiert. Vor seiner Karriere als Autor studierte er Informatik an der Universität.

Comments

  • J

    J 2 Monate vor

    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 Monat vor

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

Kommentar posten

Letzte Beiträge