22 jul 2011

La URJC estuvo en tu iPhone y tu clave en plano también

 

Hace unos días asistí a un curso de análisis forense en móviles impartido por un compañero de i64, muy interesante sobre Android, Symbian, iPhone y Windows Phone.

Este curso me dió una idea sobre aplicaciones que están en la AppStore y que no son muy conocidas, realizadas o desarrolladas en un tiempo pasado y que no han sido actualizadas. Por un lado, sabemos que la aplicación de la Universidad Rey Juan Carlos que estaba alojada en la AppStore y de la cual hablaremos más en detalle después. Esta aplicación fue desarrollada en la época inicial del 'boom' de iPhone, quizá demasiado pronto para la ambición de la aplicación.

La herramienta

La aplicación de la URJC de la AppStore consistía en una red social móvil en la que sólo podían participar gente asociada, de algún modo, a la Universidad, por ejemplo, estudiantes, PAS, PDI, etc. La idea era bastante innovador e interesante, una red social en la que los integrantes de la Universidad pudieran comunicarse, publicitarse, entablar contacto, incluso podías geolocalizar a tus compañeros siempre y cuando ellos dieran permiso a la aplicación. Otra de las funcionalidades interesantes era la posibilidad de localizar lugares y puntos de interés y la distancia a éstos desde nuestra ubicación.

Por desgracia, la aplicación ya no está disponible en la AppStore, suponemos que no tuvo el éxito buscado, aunque yo hace 10 meses si que la utilicé, y aunque no había mucha gente en la red social, si disponía de fluidez de mensajes entre los usuarios de iPhone.

La búsqueda

La intención de esta prueba era la de comprobar como la aplicación almacenaba las credenciales de login, es decir, si estas credenciales estaban seguras en nuestro dispositivo o si por el contrario se encontraban en texto plano.

La ruta dónde se puede encontrar la aplicación dentro del iPhone, hay que recordar que debéis tener el dispositivo con jailbreak, es la siguiente: /User/Applications/8B72240A-6ED9-4C7A-9347-8395447557D9/URJC.app/

¿Qué es ese número? El iPhone almacena mediante identificadores las aplicaciones descargadas de la AppStore, mientras que las aplicaciones que vienen por defecto con el iOS se almacenan en /Applications con su nombre de 'pila'. A la pregunta como encontramos la aplicación si tenemos muchas aplicaciones con sus nombres en 'clave' le damos solución rápido. Ejecutamos la siguiente orden en el iPhone, ya sea mediante una conexión SSH, o por el terminal del dispositivo que se puede descargar de Cydia, o si utilizamos una herramienta como i-FunBox es muy sencillo de acceder a la ruta y encontrar la aplicación ya que nos saca los iconos, y es fácilmente identificable.

[caption id="attachment_3569" align="aligncenter" width="468" caption="Ruta dónde está la aplicación"][/caption]

Ahora bien, ¿Qué es lo que estamos buscando? el forense sabe lo que quiere encontrar evidencias que puedan ser presentadas ante un juez, pero nosotros estamos haciendo un forense un tanto especial, queremos encontrar si hay alguna credencial en plano. Por lo que no sabemos muy bien que tipo de ficheros estamos buscando, se puede decir que vamos un poco a 'ciegas'. Al hacer un 'ls' dentro de la carpeta del número de identificación de la aplicación nos encontramos con lo siguiente:

[caption id="attachment_3574" align="aligncenter" width="464" caption="Contenido de la carpeta de identificación"][/caption]

Debemos buscar en los directorios, y editar los archivos *.plist e iTunesArtwork haber que podemos encontrar, empezaremos por la carpeta Documents. Hemos de decir que tras varios análisis de distintas aplicaciones, las cosas más interesantes se encuentran en carpetas como Documents y Library. En esta carpeta encontraremos diferentes ficheros *.plist (que no deja de ser un XML, con una DTD) los cuales almacenan información relativa a la aplicación y al usuario que está cargado en la aplicación de la URJC en el iPhone. Cual fue mi sorpresa al editar el archivo User.plist y encontrarme mi usuario y mi password en texto plano, ¡No! exclamé, ¡no me lo puedo creer! El contenido en el fichero era como se muestra a continuación, primero password y después usuario. Hemos de decir a su favor, que estaba un poco ofuscado el archivo, la estructura no es trivial.

 

[caption id="attachment_3578" align="aligncenter" width="473" caption="User y Pass "][/caption]

También queremos añadir que en el fichero se encontraban las coordenadas GPS para geolocalizar al usuario con la última ubicación conocida. Este es un dato interesante ya que en temas forenses nos sirven para ver dónde fue la última ubicación del sujeto, siempre y cuando sea una coordenada reciente.

 

[caption id="attachment_3579" align="aligncenter" width="472" caption="Coordenadas GPS"][/caption]

Bien, hasta aquí hemos llegado con este análisis de la aplicación, y volvemos a comentar que es una pena que una idea que desde nuestro punto de vista era bastante buena haya caído en desuso. Por último, concienciar a los programadores para que cifren el contenido sensible de sus aplicaciones, no hay que dar facilidades a los atacantes.

1 comentario:

  1. Interesante análisis Pablo, sin duda servirá para que se tome nota, porque seguro que esta implementación del almacenamiento de passwords sin hashing es un hábito en muchas otras aplicaciones para móviles.Saludos, creo que te veo en un rato en la comida de bloggers ;-)

    ResponderEliminar