Menú principal

jueves, 12 de enero de 2012

Corona & Heap Feng Shui: Exploits del Jailbreak en iOS 5

Muchos son los que han hecho uso de la posibilidad de hacer untethered jailbreak a dispositivos Apple con iOS 5.0.1 y microprocesadores A4, pero hoy queremos pararnos en el post que pod2g ha hecho en su blog explicando los bugs que ha aprovechado para poder ejecutar código no firmado en los dispositivos. Para poder ejecutar código en el dispositivo se han necesitado dos bugs que permitieran ejecutar el código y luego realizar la elevación de privilegios para tomar el control total del dispositivo y saltarse la jaula de Apple y la verificación de código firmado. Estos son:

Corona: El bug en user-mode

Este primer fallo recibe este nombre porque, como dice él mismo, es un anagrama de racoon, el daemon que se encarga de la negociación IKE en el protocolo IPSec, que cuenta con una vulnerabilidad de format string que puede ser explotada mediante un fichero de configuración plist.

Así, cuando se arranca el dispositivo se inicia el daemon como: racoon -f racoon-exploit.conf, fichero que explota la vulnerabilidad de format string para inyectar en la pila del proceso el código no firmado. Este código es un payload que lanza, haciendo uso  técnicas ROP y aprovechándose de la sobre-escritura de un Registro de Link (LR) guardado en la pila de memoria de racoon, el exploit de kernel.

Un Heap Overflow con "Heap Feng Shui" en kernel-mode

Una vez que se puede ejecutar código no firmado con Corona, el objetivo es realizar la elevación de privilegios, y para eso pod2g ha utilizado un Heap Overflow que tenía encontrado hace tiempo cuando había realizado fuzzing sobre el parseador HFS btree.

A partir de ese bug se copian 0x200 bytes del fichero vnimage.payload al kernel sysent, donde se reemplaza una llamada del sistema syscall para escribir cualquier gadget en modo kernel. Una vez hecho esto, el exploit que se ejecuta restaura las llamadas para dejar el sistema estable y consistente, y parchea las protecciones de seguridad en kernel para quitar las comprobaciones de firmado de código.

Dos bugs que seguro que Apple ya ha parcheado para la próxima versión de iOS que saldrá pronto.

No hay comentarios:

Publicar un comentario en la entrada

Artículos relacionados

Otras historias relacionadas

Entradas populares