Apple Weblog Perú

Blog sobre el MundoMac º Carlos Hidalgo Tolentino

Hackear el iPhone para aplicaciones de terceros [Tutorial]

Posted by Carlos Hidalgo Tolentino en agosto 21, 2007

‘Hoy vamos a aprender a hackear un iPhone, el proceso no es muy sencillo que digamos, pero con un poco de paciencia y haciéndolo todo paso a paso no debería de haber ningun problema, asi que vamos a ello:

1.’ ¿Qué necesitamos?

…mmm..un iPhone!!…ya ya, pero ¿Qué mas ?

El iPhone Hacking Kit, que consta de iFuntastic, un programa que instalaremos en nuestra carpeta Aplicaciones y que nos ayudará a hackear el iPhone.

Veamos paso a paso lo que tenemos que hacer:

– Una vez instalado, reiniciar el Mac ( si no tienes Mac..no se que haces leyendo esto.. ), no nos interesa que el iFuntastic pete durante el proceso..sería mal asunto

– Asegurate de que el iPhone esta correctamente conectado a su cable.

– Cuando se abra el iTunes…lo cierras.

– Abre el iFuntastic.

– En la parte de la derecha podrás ver un botón que se llama Prepare, púlsalo.

– Pulsa el botón ‘Jailbreak‘ que esta en la parte de abajo de la ventana’

– En la página siguiente hay 6 pasos, síguelos muy cuidadosamente

– Si todo ha ido bien verás esta ventana:

– Si no ves esta ventana, algo falla, repítelo hasta que te salga.

– Ahora minimiza el iFuntastic, luego seguiremos con el.

Despues de esto no notarás diferencia en tu iPhone, lo único es que cuando enciendas el iPhone no sincronizará con iTunes, no te preocupes, una vez que terminemos todo el proceso, todo volverá a la normalidad.

Bien, es la hora de explotar nuestra nueva conexión con el iPhone.

‘Como he dicho antes, la finalidad es la de terminar teniendo un iPhone con software instalado con la posibilidad de conectarse a tu mac vía Wifi o una conexión normal. Con el iPhone hackeado y conectado a nuestro mac tendremos un canal de comunicación que usaremos para instalar una aplicación SSH llamada Dropbear. A partir de ahora vamos a trabajar mucho con el Terminal, asi que lo abriremos ahora, esta colocado en Applications/Utilites.

Una ves que el Terminal este cargado, necesitamos cambiar el directorio del ‘iPhone Hacking Kit’, asi que teclearemos cd seguido de un espacio y luego arrastra la carpeta ‘iPhone Hacking Kit’ a la ventana del Terminal y pulsa enter. Tu terminal debería decirte algo como esto:

Your Mac:~/Desktop/iPhone Hacking Kit yourmac$

Dentro del carpeta del ‘iPhone Hacking Kit’ hay una copia de iPHUC, la utilidad de cliente del iPhone, la ejecutaremos ahora tecleando:

./iPHUC

y pulsamos enter.

Deberíamos ver esto:

>> By The iPhoneDev Team: nightwatch geohot ixtli warren nall mjc operator
initPrivateFunctions: this is still not clean.
Architecture: i386
AMDeviceNotificationSubscribe: 0
CFRunLoop: Waiting for iPhone.
notification: iPhone attached.
AMDeviceConnect: 0
AMDeviceIsPaired: 1
AMDeviceValidatePairing: 0
AMDeviceStartSession: 0
AMDeviceStartService AFC: 0
AFCConnectionOpen: 0
AFCPlatformInit: (no retval)
notification: Entering shell in Normal Mode.
shell: Entering loop.
(iPHUC) /:

Estamos ahora en un shell que esta ‘hablando’ direcamente con nuestro iPhone, como cualquier otro shell de nuestro terminal, solo que este sabe como comunicarse con la conexión hackeada que hemos establecido en nuestro iPhone a traves del cable.’

Ahora tenemos que hace un par de cambios en el iPhone, vamos a teclear esto:

setafc com.apple.afc2

Despues de dale a enter iPHUC nos dará este mensaje de error:

InvalidResponse
AMDeviceStartService AFC: -402653165
AFCConnectionOpen: 0

Si lo hace, quita iPHUC teclando exit, y vuelve a entrar ( ./iPHUC )’

Vuelve a teclear setafc com.apple.afc2 otra vez y pulsa enter, ahora deberías ver:

AMDeviceStartService AFC: 0
AFCConnectionOpen: 0

Si vuelve a aparecerte el error de antes , no te preocupes, vuelve a salir y entrar, incluso tal vez tengas que reiniciar hasta que te salga, no continues a menos que tengas el mensaje de arriba.

Para asegurarte que todo está funcionando bien, teclea ls y pulsa enter, si estas acostumbrado a usar el Terminal ( y sabes algo de informática minimamente ) sabrás que ls es un listado del directorio actual, asi que deberías de ver algo como esto:’

.
..
Applications
Library
System
bin
cores
dev
etc
iTunes_Control
mach
private
sbin
tmp
usr
var

Ese es el contenido de la raiz de tu iPhone, y como puedes ver, se parece bastante a la raiz de un sistema OS X, si no ves esto, sal de iPHUC y vuelve a repetir los pasos.’

Ahora necesitamos traernos un par de archivos del iPhone, después veremos para que los queremos:

Teclear en el Terminal:

‘getfile /System/Library/LaunchDaemons/com.apple.update.plist com.apple.update.plist.original

y pulsa enter, deberás de ver este mensaje ( o parecido ):’

remote: /System/Library/LaunchDaemons/com.apple.update.plist
local: com.apple.update.plist.original
AFCFileRefOpen: opening remote path /System/Library/LaunchDaemons/com.apple.update.plist
AFCFileRefRead: reading 489 bytes into buffer
getfile: Writing file to local path com.apple.update.plist.original
getfile: Transfer successful.

Si ahora miras en la carpeta del ‘iPhone Hacking Kit’ de tu mac debería aparece un archivo llamado com.apple.update.plist.original. Es una copia del archivo de preferencias del iPhone que nos hemos traido y hemos renombrado

De nuevo tecleamos getfile /usr/sbin/update update.original and pulsamos enter

Volveremos a ver el mensaje de transferencia y otro archivo aparecerá en nuestra carpeta ‘iPhone Hacking Kit’, esta vez, se trata del demonio de actualización del iPhone, una pequeña aplicación que se ejecuta cuando el iPhone arranca. La renombramos como update.original cuando la copiamos en nuestro disco duro, la razón la veremos mas adelante.’

Es hora de arrancar Dropbear, la aplicación SSH para nuestro iPhone. Tecle los siguientes comandos, despues de cada uno de ellos verá el mensaje ‘Transfer successful’, si nos ve, entre de nuev en la aplicación. Necesitará reemplazar el [username] con el suyo propio.

Creamos el directorio con mkdir /etc/dropbear

Esto crea una carpeta llamada dropbear en /etc directory.

Usando el comando Ptufile, necesitamos mover algunos archivos de nuestra carpeta ‘iPhone Hacking Kit’ a nuestro iPhone, esto lo haremos usando putfile y pulsando espacio, luego como hicimos antes, arrastramos y soltamos el archivo dentro de nuestra ventana del terminal, pulsamos de nuevo espacio y teclamos el directorio de destino.

Por ejemplo, la la primera entrada el resultado sería:

putfile /[path to hacking kit]/sh /bin/sh

Archivo a mover Destino
sh /bin/sh
chmod /bin/chmod
dropbear /usr/bin/dropbear
au.asn.ucc.matt.dropbear.plist /System/Library/LaunchDaemons
dropbear_rsa_host_key /etc/dropbear
dropbear_dss_host_key /etc/dropbear
chmod /usr/sbin/update
com.apple.update.plist.hacked /System/Library/LaunchDaemons/
com.apple.update.plist

Hemos hecho bastantes cosas aqui. Primero hemos puesto una copia de una aplicación llamada sh dentro del directorio /bin de nuestro iPhone. Mecesitamos un shell capaz de comunicarse con el iPhone desde el terminal de nuestro Mac y por eso los estamos instalando ahora.

Lo siguiente que haremos es colocar una copia de un programa llamado chmod en el directorio /bin. Todos los archivos en un sistema operativo Unix tienen permisos, y necesitamos chmod para poder alterarlos. Usaremos chmod para hacer ejecutables las aplicaciones que vamos a instalar.

Hemos colocado una copia de Dropbear en nuestro /usr/directory. Este es el programa SSH que queremos que el teléfono controle. Despues de eso hemos instalado un plist con un nombre largo en el directorio /System/Library/LaunchDaemons

Despues hemos puesto dos archivos ‘host key’ en el directorio /etc/dropbear que hara la cosa mas facil, SSH necesita esos archivos para ejecutar las transferencias encriptadas.

Finalmente hemos colocado otra copia de chmod en el directorio’ /usr/bin, pero esta vez hemos llamado al archivo resultante update. Como recordarás, anteriormente cogimos del iPhone una copia del archivo update. Estamos escribiendo encima de la aplicación update que hay en el iPhone con una aplicación chmod¿?…Ahora verás porque. También hemos instalado un plist en el directorio com.apple.update

Bien, hemos copiado Dropbear en el iPhone, asi como algunos archivos que necesita, pero aun tenemos que hacer algo mas. Antes de ejecutar la aplicación,’ debemos de cambiar los permisos para hacerla ejecutable, asi que vamos a usar nuestra aplicación chmod. El problema es, como hacemos para ejecutar chmod en nuestra aplicación Dropbear si en este punto, no tenemos forma de ejecutar un programa.

Cuando tu iPhone se enciende, automaticamente ejecuta ciertas aplicaciones llamadas ‘demonios’. El demonio update es una de ellas. Como podrás recordar hicimos una copia de el antes, y ya la hemos reemplazado, asi que cuando reinicies tu iPhone, este ejecutara el demonio update que en realidad es una copia del chmod ( algo que por supuesto el iPhone ignora ). El archivo com.apple.update.plist.hacked que hemos instalado ( con el nombre de com.apple.update ) contiene los parámetros necesarios para alterar las preferencias de Dropbear y hacerlo ejecutable.

Una vez que Dropbear es ejecutable, lo podremos abrir en cualquieri momento con el teléfono encendido. Ahora:

Apaga el iPhone, y vuelve a encenderlo. Como el iPhone todavia esta ‘abierto’, iTune se cargara y luego se cerrará. Cuando el teléfono este listo y corriendo, apagalo y vuélvelo a encender, iTunes de nuevo hará lo mismo. Hemos reiniciado el teléfono dos veces, la primera vez, nuestra aplicación troyana chmod modificó los permisos del Dropbear, la siguente, la ahora aplicación ejecutable Dropbear empieza a correr, y listo!! Ya tenemos un demonio ssh corriendo en nuestro iPhone.

Despues de reiniciar nuestro iPhone por segunda vez, tenemos que testear que ssg esté corriendo correctamente.Siempre que queramos conectarnos por SSH a nuestro iPhone tenemos que saber la IP del telefono. En nuestro iPhone ,pulsamos Home, luego Settings y luego Wi-Fi, y vemos los detalles de la conexión, alli podremos ver nuestra IP’

1. En la ventana del terminal, sal del iPHUC con exit.

2. Escribe ssh root@[iPhones IP address]. Por ejemplo ssh root@192.168.1.14.

El iPhone debería responder con algo como:’

The authenticity of host 192.168.1.14 (192.168.1.14) cant be established.
RSA key fingerprint is 5a:e4:fa:de:62:f6:9b:96:7f:3b:57:b1:76:21:77:d6.
Are you sure you want to continue connecting (yes/no)?

Teclea yes y enter, cuando te pida el password teclea dottir, es la clave por defecto en todos los iPhones.

You should see a prompt like this:

-sh-3.2#

Enhorabuena!! ya tienes instalado un cliente ssh y un demonio corriendo en tu iPhone…ole!!!

Vuelta a la normalidad

Ahora tenemos que restaurar algunas cosas en el iPhone para dejarlo normal. Como sabes para que esto haya funcionado hemos tenido que replacar el demonio update por un chmod. Ahora tenemos que dejarlo como estaba:’

Carga iPHUC tecleando ./iPHUC en el terminal y teclea estos comandos, cada uno de ellos en una linea ( a pesar del hecho que en esta web la información se rompa en varias )

putfile /Users/[user name]/Desktop/iPhone\ Hacking\ Kit/com.apple.update.plist.original /System/Library/LaunchDaemons/com.apple.update.plist

putfile /Users/[user name]/Desktop/iPhone\ Hacking\ Kit/update.original /usr/sbin/update

Estos dos comandos reemplazan el demonio del update.

Ahora tenemos listo el ssh cliente, con un password que conoce todo aquel que este leyendo este artículo, asi que nada, a cambiar la clave se ha dicho.’

Para cambiar la clave tecleamos:

  1. En el Terminal, salimos de iPHUC conexit.
  2. En el prompt, tecleamos perl-e print crypt(‘mypassword’,’xx’);

Sustituye el pass que quieras por mypasswords y escribe dos caracteres cualquieras en vez de XX.

Terminal te mostrará alguna version encriptada de tu pass.’

  1. En la carpeta ‘iPhone Hacking Kit’ encontrarás un archivo llamado master.passwd.original. Ábrelo en el textedit y reemplaza los passwords con el texto encriptado

Por ejemplo, si generastes este pass antes: XXVeA.Z.EZ6FA

En el archivo master.passwd.original deberás cambiarlo tal que así:

de esto:

root:XUU7aqfpey51o:0:0::0:0:System Administrator:/var/root:/bin/sh

a esto:

root: XXVeA.Z.EZ6FA:0:0::0:0:System Administrator:/var/root:/bin/sh

y a esto:

mobile:/smx7MYTQIi2M:501:0::0:0:Mobile User:/var/mobile:/bin/sh

  1. File > Save As y guarda el documento en la carpeta ‘iPhone Hacking Kit’ como master.passwd.
  2. Como texEdit tiente a añadir .txt a los archivos, asegurate de que no lo haya hecho.’

  3. De vuelta al terminal, carga de nuevo iPHUC tecleando ./iPHUC.

  4. Pon el nuevo archivo de password en el telefono a traves de este comando: putfile /Users/[username]/Desktop/iPhone\ Hacking\ Kit/master.passwd /etc/master.passwd

Ahora tu teléfono ha vuelto a la normalidad, pero aun tenemos mas cosas que instalar:

SCP – The racers edge

Hasta el momento, hemos estado usando iPHUC para manejar todas las tranferencias entre el Mac y el iPhone. Pero queremos algo que no requiere una conexion ‘atada’ ( a traves del cable ). Asi que vamos a instalar una copia un programa llamado SCP. Que se asegurará de que podemos mover archivos desde y hasta el iPhone una ves que hayamos desconectado el cable.

Cargamos iPHUC y vamos tecleando los siguientes comandos usando putfile para mover los archivos dentro del directorio correspondiente:

putfile [drop file here] [destination path]

File to drop Destination to type
sftp-server /usr/libexec
scp /usr/bin
libarmfp.dylib /usr/lib/libarmfp.dylib

Ya están instalados los servidores SCP y SFTP, pero claro, ahora tenemos que hacerlos ejecutables, ya tenemos la herramienta chmod y un servicio SSH corriendo en nuestro teléfono..asi que solo tenemos que hacer:’

ssh root@[iPhones IP address]

Nos conectamos con el pass que cambiamos anteriormente y vemos que el prompt pone: -sh-3.2#

Ahora la ventana del termina en realidad es un terminal directamente del iPhone, asi que cuidadin con lo que escribimos porque lo que pongamos será ejecutado en nuestro teléfono. Cambiamos los permisos con:’

chmod +x /usr/libexec/sftp-server
chmod +x /usr/bin/scp

Vamos a testear que todo sale bien: Entramos en SCP tecleando scp. Deberias ver algo como:’

usage: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 […] [[user@]host2:]file2

Vamos a usar SCP para instalar algunas aplicacions nuevas para nuestro iPhone, pero primero necesitamos hacer una pequeña limpieza.’

De vuelta a la carcel

Estamos listo para enjaular de nuevo el iPhone, esto hará que que vuelva a su estado normal de sincronización y significa que no tendrás que volver a conectar el cable.

‘Antes de esto, vamos a mover algunos archivos, en iPHUC tecleamos los siguientes comandos:

putfile [drop a file here] [path]

File to drop Path to type
shells /etc
bash /bin
csh /bin
rm /bin
rmdir /bin
ls /bin

De nuevo volvemos a iFuntastic, estamos listos para enjaular el iPhone de nuevo’

Antes de esto recuerda que iFuntastic te deja cambiar el logo, añadir iconos o nuevos tonos al iPhone, asi que si quieres aprovechar, este es el momento.

Una vez que termines, dale al boton de Finish, y luego al boton de Jail. Y sigue de nuevo las instrucciones de pantalla. Esto dejara al iPhone en sus estado inicial, cerrando las cominaciones que habiamos abierto y explotado anteriormente, iPHUC no funcionara mas, pero no te preocupes.. tenemos muchas formas de acceder ahora ;)

Después de reiniciar el iPhone, haz click en Done y sal de iFuntastic, y desconecta el cable del MAC

Haz algo util

‘Me he saltado la parte en la que hacen un screenshot de la pantalla porque veo mas interesante instalar el terminal, asi que vamos a ello:

Hasta ahora hemos estado usando el terminal de Mac para controlar el Mac. Vamos ahora a instalar nuestra propia aplicación de termina que podremos usar desde nuestro iPhone.’

Tecleamos scp -r [drop Terminal.app from Hacking Kit here] root@[ip address]:/Applications/Terminal.app para transferir la aplicación al iPhone. Tenemos que añadirle permisis de ejecución asi que ya sabemos como:

chmod +x /Applications/Terminal.app

Ahora reiniciamos el iPhone…y listo!!

figure4.jpg

‘Entramos en el terminal, cualquier comando que ejecutaremos sera directamente ejecutado en el iPhone, por ejemplo, vamos a cargar el shell del bash. Tecleamos bash y pulsamos enter:’

figure5.jpg

Justo antes de haber enjaulado el phone habiamos copiado algunos archivos al directorio bin. Vamos a hacerlos ejecutables.’

chmod +x /bin/rm
chmod +x /bin/rmdir
chmod +x /bin/ls

Con esto tendremos algunos comandos como RM para poder borrar archivos, LS para listar directorios, que ya usamos anteriormente.’

Bash es un shell mucho mejor que el que viene por defecto en el termina, asi que si ves ciertas limitaciones usando el terminal prueba a intentarlo en el Bash

Vamos ahora a hacer una pequeña customización del iPhone. Personalmente no encuentro la aplicación Stock muy util, asi que la vamos a borrar, Por si en un futuro (que lo dudamos ) queramos volver a usarlo vamos a hacer una copia de seguridad primero, en cualquier caso podremos volver a reinstalarlo luego.

En tu terminal teclea:

scp -r root@[iphone IP address]:/Applications/Stocks.app /Users/[your user name]/Desktop

Esto copia el programa Stock en el directorio de tu mac. Ahora teclea los siguientes comandos (Puesdes hacerlo desde cualquier terminal, el de tu mac o el de tu iPhone ). Asegurate de que el path es correcto, el comando rmdir -rf lo borra todo, asi que te puedes cargar el directorio Applications entero :(‘

rmdir -rf /Applications/Stocks.app

Ahora reinicia el teléfono, cuando veas la pantalla de inicio verás que Stocks ha desaparecido, si quieres que vuelva, solo tienes que’ usar SCP para pasar la copia de tu mac a la carpeta /Applications, luego usa chmod para hacer /Stocks.app/Stocks ejecutable, y vuelve a reiniciar.

Todo esto deberia de ser suficiente para empezar’ una vez que hayas asimilado los comandos y entendiendo como mover cosas dentro y fuera del teléfono. Cuantas mas aplicaciones vayan saliendo puedes usar SCP para copiar mas aplicaciones al telefono y luego usar chmod para hacerlas ejecutables. Es siempre lo mismo

NOTA: Con la siguiente actualización basicamente se irá todo al garete, asi que si esto ocurre tendras que re-hackear todo de nuevo ademas de necesitar una actualización de Jailbreak y iPHUC.

(Via: MacBookers)

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: