1 oct 2019

Rook en A4 a ¿A11? - checkm8




Buenas a todos, durante el pasado Viernes 27 de Septiembre, @axi0mX hizo público un nuevo exploit que podría permitir realizar un jailbreak permanente a cientos de millones de dispositivos iOS. Está disponible concretamente en el siguiente repositorio. Este exploit consiste en una vulnerabilidad encontrada en el BootROM de los dispositivos, lo que imposibilitaría a Apple el introducir una nueva actualización software para subsanar este error.

Ya que todo esto puede sonarte algo extraño (o no, pero no viene mal un repasito :P), comencemos por introducir algunos conceptos básicos para poder entender que supone este exploit para los investigadores que trabajan con dispositivos iOS. ¡Comencemos!

¿Qué es BootROM o SecureROM?

Se trata del primer fragmento de código en ejecutarse en el procesador cada vez que se inicia el dispositivo. Usualmente, dicho fragmento de código se encuentra en una zona de la memoria protegida contra escritura. El último exploit funcional que permitió poder ejecutar código sin firmar por Apple, fue limera1n en los dispositivos con el procesador A4 de Apple, dando paso así a realizar Jailbreaks Tethered para posteriormente realizar un Jailbreak Untethered, que permitía reiniciar el dispositivo sin necesidad de volver a aplicar el exploit con un ordenador.

¿Qué es checkm8 y que esperar del exploit?


Actualmente, este exploit está pensado para investigadores que quieren profundizar detalladamente en cómo funcionan los dispositivos iOS. No incluye nada relacionado con Cydia, se trata meramente de un exploit que se ejecuta desde el modo DFU (Device Firmware Update) y a partir de ahí poder realizar distintas tareas como:
  • El volcado de la SecureROM, para así poder leer y utilizar detalladamente el contenido del bootrom, así como buscar otros posibles bugs.
  • Descifrar cualquier componente del firmware de iOS para su análisis, ya que es posible acceder al "AES engine" del dispositivo.
  • De igual forma podría hacerse un downgrade del dispositivo para así habilitar el JTAG para poder depurar el dispositivo, aunque para ello necesitamos un cable "especial" que de momento tiene un precio prohibitivo. Igualmente se espera que con la salida de este exploit se abaraten los costes.
El exploit está en fase experimental. Por lo tanto, solo es funcional en algunos SoC (System on Chip), concretamente en s5l8947x, s5l8950x, s5l8955x, s5l8960x, t8002, t8004, t8010, t8011, t8015. Pero se prevee soporte para los siguientes SoC en un futuro muy próximo: s5l8940x, s5l8942x, s5l8945x, s5l8747x, t7000, t7001, s7002, s8000, s8001, s8003, t8012.

Cabe destacar que a fecha de redacción de este post, checkm8 solo puede realizarse desde dispositivos Mac, y el dispositivo iOS debe estar conectado al mismo para poder realizar el exploit, por lo que actualmente, dicha vulnerabilidad solo puede explotarse a través de USB. Esto tiene sentido ya que dicha vulnerabilidad se ha descubierto a través de una revisión del parche que introdujo Apple en las betas de iOS 12, para corregir una vulnerabilidad use-after-free, tal y como dice el autor del exploit en este tweet.

Aunque de momento no puede confirmarse nada, poco a poco se van realizando avances en el uso de este exploit. En el siguiente tweet se muestra el uso de checkm8 para iniciar el sistema en modo verboso.


Si os ha gustado esta visión general del uso del exploit checkm8, háznoslo saber para poder profundizar más en temas relacionados con pentesting de aplicaciones iOS, exploits relacionados con Jailbreak o simplemente en vulnerabilidades relacionadas con los mismos.
Saludos ;)!

No hay comentarios:

Publicar un comentario