Select Page

Cómo hacer un jailbreak con checkra1n, sin necesidad de una Mac ni de instalar nada en la PC, pero que sí funciona

Los amantes del iPhone y del jailbreak, se enteraron hace 4 meses del descubrimiento de checkm8, una vulnerabilidad de hardware del iPhone desde los modelos 4S (con chip A5) hasta los 8 y X (con el chip A11). Como esta vulnerabilidad está en la SecureROM, es decir en el mismo hardware, no importa qué versión de iOS tenga el iPhone, es posible jailbreakearlo.

Pequeña historia

Desde la publicación de la vulnerabilidad, hubo que esperar a noviembre de 2019 para que apareciera checkra1n, la tool que permite hacer el jailbreak del iPhone. El problema con el checkra1n es que se necesita una Mac para ejecutarlo. Para simplificar la razón de esto, se puede decir que la forma en la que la Mac maneja los dispositivos USB, es la misma que la del iPhone. Entonces, interceptar el manejo de la interfaz USB en modo DFU en el iPhone desde una Mac, no digamos que es trivial, pero sí que es relativamente simple para gente como Luca Todesco (@qwertyoruiopz).

Sin embargo, hacer el mismo manejo de los drivers USB con una PC (sea desde Windows o desde Linux) es muy complejo tal como dice el equipo de checkra1n:

Q: When is Windows support coming?
A: We need to write a kernel driver to support Windows (which is a very complex piece of code!) which will take time. Rest assured however, we are working hard on it.

 

Variantes

Por esta razón, mientras la comunidad espera que checkra1n esté listo para Windows o Linux, se iniciaron varios proyectos para poder correrlo desde una PC emulando a la Mac. Entre ellos están:
Los primeros dos, son (excelentes) formas de crear Mac virtuales dentro de una PC, tanto con Linux como con Windows. Ambos métodos implican la instalación en la PC de una Mac vistualizada. Los probé a ambos y no me funcionó ninguno.

Pruebas

El problema que tuve al probar estas opciones fue el hardware. Como la clave del exploit de checkm8 reside en la forma en que se maneja el stack de USB mientras el iPhone bootea en modo DFU, es muy importante que el hardware que se use pueda tomar ventaja de esto, pero desde una Mac virtualizada dentro de otro sistema operativo! Bastante complejo debido a la virtualización de hardware de una Mac dentro de una PC.

La lista de equipos donde probé estas variantes es:
  1. Desktop Dell Optiplex 3060 con Ubuntu,
  2. All-in-one Lenovo Thinkcentre a70Z con Xubuntu,
  3. Notebook Vaio  con Mint
  4. Notebook Dell Inspiron 15 Serie 7000 con Ubuntu.
En ninguna funcionaron las herramientas. Si bien en todas levantaron las Mac virtuales, ninguna reconoció al iPhone correcta o completamente.

Ra1nUSB

Mi siguiente paso fue probar con Ra1nUSB. Esta versión tiene a ventaja de que se bootea el virtualizador de Mac desde un pendrive, por lo que nos evita tener que instalar nada en la PC. Además, elimina varios elementos intermedios del sistema operativo entre el hardware y la Mac.

Bajé varias versiones de Ra1nUSB, traté de bootear en todas las máquinas anteriores y en ninguna ni siquiera booteó. En todas se quedó trabado en la carga de com.apple.xpc.launchd; es decir, en las X de MAc, que en Mac se llaman xpc. Entonces me di cuenta que el problema de Ra1nUSB no era el exploit en sí mismo sino el Clover.

Clover

Clover es un bootloader GUI de Mac tanto para UEFI como para BIOS. Posee mil opciones preconfiguradas para que reconozca el hardware en el que está y pueda bootear un MacOS. Si bien me funcionaron casi todas las versiones de Clover  que me bajé sobre los sistemas virtualizados, no funcionó ninguna de estas como parte del booteo del pendrive con Ra1nUSB.
Busqué en muchos foros y encontré que esto les pasaba a muchos y casi nadie les respondía nada y los que lo hacían respondían esas tonterías como “conseguite una Mac” o peores, como “para qué querés jailbreakear el iPhone?”.
Finalmente, antes de empezar a buscar quién me podía prestar una Mac, y basado en este blog de reddit, usé una combinación que funcionó perfecta.

Los pasos que hice para que funcionara fueron estos:

1- Bajar el RainUSB desde aquí.

2- Flashear el pendrive con Balena Etcher.

3- Bajar esta versión de Clover.

4- Montar el pendrive. Dentro hay 2 particiones: Ra1nUSB y RA1NUSBBOOT.

5- Entrar en RA1NUSBBOOT y reemplazar el directorio /RA1NUSBBOOT/EFI/CLOVER

por el dierctorio /Clover del Clover.zip que se bajó en 3.

 

El resto de los pasos son los que están en todos los tutoriales, pero se los dejo:

6- Deshabilitar todas estas opciones de la BIOS del equipo:

  • VT-D
  • EL SerialPort
  • SecureBoot
  • Stack Network
  • Fastboot
  • Wake on LAN

7- Bootear el sistema con el pendrive.

8- Una vez que bootea Clover, elegir “Boot macOS Install from Ra1nUSB”. Si bootea correctamente, aparecerá una pantalla com esta:

Si no bootea, puede ser porque el equipo es muy viejo o alguna de las opciones de la BIOS del punto 5 no fue correctamente configurada.

9- Aparece el instalador de MacOS con un indicador de que se está ejecutando Ra1nUSB:

10- Ir al menú superior y seleccionar Utilities y luego Terminal. Aparecerá una terminal de comandos.

11- En la terminal ingresar el comando ra1nusb y dar Enter. Aparecerá la ventana de checkra1n.

12- Conectar el iPhone, y en la ventana de checkra1n aparecerá el modelo del iPhone conectado:

 

13- Dar Start y seguir las instrucciones de la pantalla para bootear el iPhone en modo DFU.

Listo! Una vez que botee, aparecerá el ícono de chechra1n…

 

que permite instalar cydia…

Espero que les sirva.
Hasta la próxima!

 

 

Nota por Carlos Benitez

Carlos Benitez es un reconocido experto en seguridad de la información.