El investigador español José Selvi hizo una demostración tiempo atrás de cómo modificar los exploits utilizados por Comex para hacer JailBreakMe 3.0 y convertirlos, por ejemplo, en un exploit que devuelva la shell en un terminal iOS vulnerable con JailOwnMe. Ahora, tras la entrevista que le han hecho en El lado del mal, ha publicado toda la información para que se pueda utilizar JailOwnMe. Para ello ha puesto a disposición pública los scripts que utilizó para convertir los ficheros PDF de JailBreakMe a JailOwnMe, sino también los payloads que usó en la demostración.
Para usar JailOwnMe, primero hay que conseguir el PDF de JailBreakMe para el dispositivo y versión que se quiera explotar. Parar ello únicamente hay que visitar la web de JailBreakMe 3.0 y descargarlo modificando el User-Agent del navegador para la versión adecuada vulnerable, por ejemplo usando la extensión de Firefox User Agent Switcher.
Figura 1: Seleccionando el User-Agent de un iPhone 3.0 |
Una vez descargado el PDF se puede ver en él, al analizarlo con un editor, que hay un stream codificado que si es extraído y decodificado es algo así:
$ file pfb.raw
pfb.raw: PostScript Type 1 font program data
No se debe hacer un "cat" del fichero porque Comex - el autor del exploit original - ha puesto una secuencia de caracteres que en un Mac OS X hace que la ventana del terminal se minimice y se maximice, por eso lo llama "Terminal Fun".
Figura 2: Terminal Fun en JailBreakMe 3.0 |
Como es conocido, la vulnerabilidades está en el parseo de las fuentes por lo que si miramos dentro de la fuente se vera que hay texto y trozos que, al igual que estaba la fuente antes, están comprimidos. Entre ellos hay uno que - es buscado por los scripts -, al descomprimirlo, es algo así:
$ file binary.raw
binary.raw: Mach-O executable arm
Ese es un binario que se ejecuta en nuestro dispositivo iOS - preparado en ARM - y que se trae de la web de JailBreakMe todo lo necesario para realizar el JailBreak. Los scripts de JailOwnMe cambian ese binario por un payload a elegir. Para ello hace:
1.- Coge el binario que le hayáis pasado.
2.- Lo comprime y lo rellena de basura para que ocupe el mismo espacio que el original.
3.- Lo coloca substituyendo al original y vuelve a construir el PFB.
4.- Lo comprime y lo vuelve a colocar substituyendo al PFB original dentro del PDF.
5.- Crea un PDF nuevo con estas modificaciones.
Junto con este material también hay ejemplos de payloads y un par de shell scripts con los comandos GCC que fueron utilizados para en un Mac OS X JailOwnMe. El resultado es la demo que podéis ver en vídeo.
No hay comentarios:
Publicar un comentario