ONE Jailbreak Ad

Exploit Checkm8 pour les appareils Apple A5–A11 sous iOS 12 – iOS 16

Promotion image of checkm8 article.

Le 27 septembre 2019, axi0mX a publié checkm8 (lire « échec et mat »), un exploit de bootrom permanent et non corrigible pour des centaines de millions d'appareils iOS. En 2022, cet exploit est toujours actif sur les jailbreaks iOS 15 et iOS 16 récents des appareils Apple équipés de processeurs A9 à A11.

Qu'est-ce que Checkm8 ?

Checkm8 est un exploit bootrom (identifiant CVE : CVE-2019-8900) utilisé pour exécuter du code non signé sur iOS, iPadOS, tvOS et watchOS, avec des processeurs compris entre A5 et A11. Il est principalement utilisé pour jailbreaker les appareils Apple, et cet exploit est au cœur du célèbre jailbreak checkra1n.

Les jailbreaks basés sur checkm8 sont des jailbreaks semi-connectés, car l'exploit exploite une fonction d'utilisation après libération dans la pile DFU USB. Il est utilisé par ipwndfu, Fugu14, checkra1n, Palera1n, Blizzard Jailbreak, ayakurume et quelques autres outils pour exploiter iOS 12 à iOS 17.

En utilisant l'exploit checkm8, il est possible d'exécuter le code uniquement lors de la connexion de votre iPhone ou iPad en mode DFU à l'ordinateur via un câble USB. checkra1n vous permet de jailbreaker iOS 12 jusqu'à iOS 14 avec prise en charge des ajustements et n'a jamais été mis à jour pour ajouter la prise en charge d'iOS 15.

Capture d'écran de VLS avec le code source checkm8 chargé pour les appareils arm64.

L'exploit de bootrom Checkm8 est également capable d'exécuter du code sous iOS 15. Nebula, le développeur du jailbreak Palera1n, a publié le premier jailbreak iOS 15 basé sur checkm8 avec prise en charge de l'injection de modifications sur iOS 15.0 à 15.3.1. Il fonctionne également jusqu'à iOS 15.7 sur les appareils A9 à A11 sans modifications.

Comment ça marche ? En langage C, la fonction malloc doit renvoyer NULL si elle ne parvient pas à allouer la mémoire requise. L'appelant doit vérifier si le pointeur renvoyé est NULL et gérer l'erreur. Dans la mémoire bootrom S5L8920, cette fonction n'est pas implémentée correctement. Lorsqu'elle ne parvient pas à allouer la mémoire, elle renvoie un pointeur vers l'adresse mémoire 0x8 au lieu de NULL.

Checkm8 exploite cette vulnérabilité, permettant l'exécution de code sur iOS, iPadOS, tvOS et watchOS. Ce bug est présent sur tous les appareils Apple A5 à A11 et ne peut être corrigé. Par conséquent, iOS 16 est vulnérable et peut être jailbreaké sur les appareils compatibles.

Remarque : la plupart des générations d'iPhone et d'iPad sont vulnérables et peuvent être exploitées à l'aide de checkm8 : de l'iPhone 4S (puce A5) à l'iPhone 8 et l'iPhone X (puce A11).

Les nouveaux appareils tels que l'iPhone 14, l'iPhone 14 Pro, l'iPhone 13 Mini, l'iPhone 13, l'iPhone 13 Pro, l'iPhone 13 Pro Max, l'iPhone 12, l'iPhone 12 Pro, l'iPhone 12 Mini, l'iPhone 12 Pro Max, l'iPhone 11 Pro, l'iPhone 11, l'iPhone 11 Pro Max, l'iPhone XR, l'iPhone XS Max et l'iPhone XS sont à l'épreuve du checkm8.

axi0mX, le développeur de l'exploit checkm8, a publié le code source sous licence GPL-3.0, permettant ainsi son implémentation pour des outils tiers. De plus, l'exploit checkm8 fait partie de son outil de jailbreak open source ipwndfu pour appareils iOS, écrit en Python et en Assembleur.

De plus, l'exploit checkm8 pour A5–A11 est également implémenté par le script SSH Ramdisk pour créer et démarrer un ramdisk SSH sur les périphériques checkm8. Cet outil permet d'installer définitivement des fichiers IPA sur iOS. L'installateur IPA de TrollStore a été installé de cette manière.

Code source de checkm8

L'exploit checkm8 a été développé en assembleur. Vous trouverez ci-dessous le code source de l'exploit checkm8 pour tous les appareils arm64, y compris toutes les variantes d'iPhone 5S, iPhone 5S, iPhone SE, iPhone 7, iPhone 8 et iPhone X. Le code source de checkm8 a été publié via le jailbreak 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 Checkm8

Depuis sa sortie, l'exploit checkm8 a été utilisé par de nombreux outils pour jailbreaker iOS. Certains sont déjà disponibles et prêts à l'emploi, d'autres sont en cours de développement. Seul Palera1n pour iOS 15 permet d'installer des modifications ; d'autres outils ne sont pas encore disponibles ou sont réservés aux développeurs.

Outils de contournement iCloud checkm8

L'exploit checkm8 joue également un rôle important dans le développement de tous les outils de contournement iCloud permettant aux utilisateurs de supprimer l'écran d'activation Hello et d'accéder à l'écran d'accueil de l'appareil sur iOS 12 - iOS 16. La plupart des outils nécessitent un jailbreak avec palera1n ou checkra1n et ne fonctionnent pas avec une carte SIM, cependant, le Wi-Fi fonctionne, vous permettant de charger des applications et d'accéder à l'App Store.

Author Photo
Écrit par

Kuba a plus de 20 ans d'expérience dans le journalisme, se concentrant sur les évasions depuis 2012. Il a interviewé des professionnels de diverses entreprises. Outre le journalisme, Kuba est spécialisé dans le montage vidéo et le pilotage de drones. Il a étudié l'informatique à l'université avant de se lancer dans l'écriture.

Comments

  • J

    J 2 mois il y a

    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 mois il y a

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

Poster un commentaire

Derniers articles