Exploit Checkm8 para dispositivos Apple A5-A11 en iOS 12 - iOS 16

El 27 de septiembre de 2019, axi0mX lanzó checkm8 (léase "jaque mate"), un exploit permanente e imparable de bootrom para cientos de millones de dispositivos iOS. En 2022, el exploit sigue activo en jailbreaks modernos de iOS 15 e iOS 16 para dispositivos Apple con SoC A9 a A11.
¿Qué es Checkm8?
Checkm8 es un exploit de bootrom con un CVE-ID de CVE-2019-8900 que se utiliza para ejecutar código sin firmar en iOS, iPadOS, tvOS y watchOS, con procesadores entre A5 y A11. Se utiliza principalmente para liberar dispositivos Apple, y este exploit es la base del popular jailbreak checkra1n.
Los jailbreaks basados en checkm8 son jailbreaks semi-anclados, ya que el exploit funciona aprovechando un uso después de la liberación en la pila USB DFU. Lo utilizan ipwndfu, Fugu14, checkra1n, Palera1n, Blizzard Jailbreak, ayakurume y otras herramientas para explotar iOS 12 a iOS 17.
Usando el exploit checkm8, es posible ejecutar el código solo cuando conectas tu iPhone o iPad en modo DFU a la computadora a través de un cable USB. checkra1n te permite hacer jailbreak a iOS 12 hasta iOS 14 con soporte para ajustes y nunca se actualizó para agregar soporte para iOS 15.

El exploit de bootrom Checkm8 también puede ejecutar código en iOS 15. Nebula, el desarrollador de Palera1n Jailbreak, lanzó el primer jailbreak para iOS 15 basado en Checkm8 compatible con la inyección de tweaks en iOS 15.0 a 15.3.1. También funciona hasta iOS 15.7 en dispositivos A9-A11 sin tweaks.
¿Cómo funciona? En el lenguaje de programación C, la función malloc debe devolver NULL si no puede asignar memoria del tamaño solicitado. El usuario debe comprobar si el puntero devuelto es NULL y gestionar el error. En la ROM de arranque S5L8920, esta función no está implementada correctamente. Cuando no puede asignar memoria, en lugar de NULL, devuelve un puntero a la dirección de memoria 0x8.
Checkm8 aprovecha esta vulnerabilidad, lo que permite ejecutar código en iOS, iPadOS, tvOS y watchOS. Este error está presente en todos los dispositivos Apple A5 a A11 y no tiene solución. Por lo tanto, iOS 16 es vulnerable y se puede liberar en los dispositivos compatibles.
Nota: La mayoría de las generaciones de iPhones y iPads son vulnerables y pueden ser explotadas usando checkm8: desde el iPhone 4S (chip A5) hasta el iPhone 8 y iPhone X (chip A11).
Los dispositivos nuevos como el 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 y iPhone XS son a prueba de checkm8.
axi0mX, el desarrollador del exploit checkm8, publicó el código fuente bajo la licencia GPL-3.0, lo que permite su implementación en herramientas de terceros. Además, el exploit checkm8 forma parte de su herramienta de jailbreak de código abierto ipwndfu para dispositivos iOS, escrita en Python y ensamblador.
Además, el exploit checkm8 para A5–A11 también se implementa mediante el script de disco RAM SSH para crear y arrancar un disco RAM SSH en dispositivos checkm8. Esta herramienta permite instalar archivos IPA permanentemente en iOS. El instalador de IPA de TrollStore se instaló de esta forma.
Código fuente de checkm8
El exploit checkm8 se escribió en ensamblador. A continuación, puede ver el código fuente del exploit checkm8 para todos los dispositivos arm64, incluyendo todas las variantes del iPhone 5S, iPhone 5S, iPhone SE, iPhone 7, iPhone 8 y iPhone X. El código fuente de checkm8 se publicó mediante el jailbreak de ipwndfu.
.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]"
Jailbreaks de Checkm8
Desde su lanzamiento, el exploit checkm8 ha sido utilizado por numerosas herramientas para desbloquear iOS. Algunas ya están publicadas y listas para usar, mientras que otras están en desarrollo. Solo Palera1n para iOS 15 permite instalar ajustes; otras herramientas aún no se han publicado o son útiles solo para desarrolladores.
- palera1n para iOS 15.0 – iOS 17.
- Palera1n Windows para iOS 15.0 – iOS 17.
- WinRa1n para iOS 12 – iOS 17.
- checkra1n para iOS 12 – iOS 14.8.1.
- iRa1n para iOS 12 – iOS 14.8.1.
- Fugu14 para iOS 14 – iOS 14.8.1.
- ipwndfu para iPhone 3GS.
- kok3shi15 para iOS 15.
- kok3shi16 para iOS 16 – iOS 16.2.
- Blizzard Jailbreak para iOS 15 y iOS 16.
- ayakurume para iOS 16.
- checkn1x para iOS 12 – iOS 14.8.1.
- Odysseyn1x para iOS 12 – iOS 14.8.1.
- Proyecto36 para iOS 15.
- checkra1n para Windows – iOS 12 y posteriores iOS 14
Herramientas de omisión de iCloud de checkm8
El exploit checkm8 también es una parte importante en el desarrollo de todas las herramientas de omisión de iCloud que permiten a los usuarios eliminar la pantalla de bienvenida de activación y acceder a la pantalla de inicio del dispositivo en iOS 12 - iOS 16. La mayoría de las herramientas requieren un jailbreak con palera1n o checkra1n y no funcionan con una tarjeta SIM, sin embargo, el Wi-Fi funciona permitiéndole cargar aplicaciones de forma lateral y acceder a la App Store.
- FrostByte para iOS 15 – iOS 16.5.
- iSkip para iOS 15 – iOS 16.
- Blackw0rm para iOS 12 – iOS 14.
- GodsHand para iOS 13 – iOS 16.
- Euphoria Activator12 para iOS 12 – iOS 14.
- Goldra1n para iOS 15 – iOS 16.
- GreenSn0w para iOS 12 – iOS 12.5.6.
- BlackRa1n para iOS 15.
- DarkRa1n para iOS 15 – iOS 16.
- iPass para iOS 15 – iOS 16.
Comments
J 2 meses atrás
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 2 meses atrás
You can't. There is no working solution for the iPhone 13. Apple patched all exploits.