Noticia iFile: Automatizar robo de ficheros en iPhone con jailbreak

Cuando un usuario utiliza herramientas como iFile significa que tienen el terminal iPhone con jailbreak. Esto puede suponer un riesgo grande ya que se tiene la posibilidad de ejecutar acciones como root con todo lo que ello conlleva. iFile es una app que se encarga de proporcionar un explorador de archivos al usuario y, además, proporcionar un servicio con el que el usuario pueda intercambiar ficheros mediante protocolo HTTP. Cuando el usuario utiliza la herramienta se puede acceder a través del puerto 10000 a una interfaz web.

A través de dicha interfaz podemos subir y descargar archivos para intercambiarlos con otros dispositivos. Lo primero que llama la atención es la no utilización de ningún tipo de cifrado en la conexión entre iFile y el dispositivo que se conecta, pero además no existe ningún tipo de autenticación por defecto, lo que permite que cualquier usuario que se encuentre iFile activo, por ejemplo en segundo plano tras utilizarlo, tiene acceso completo al dispositivo. Recordad que iFile se ejecuta como root, por lo que el acceso al dispositivo será completo pudiendo descargar el fichero de usuarios, agenda, fotos, SMS, etcétera. Hace pocos días hablamos en Seguridad Apple de dos bugs encontrados en la herramienta Air Transfer cuya finalidad es similar a la de iFile. La diferencia es que Air Transfer no se ejecuta como root.


Figura 1: Acceso iFile a través de navegador

Analizando peticiones


Tras analizar diferentes peticiones llegamos a las siguientes conclusiones:
  • Es fácilmente implementable en un script que detecte esta app en el puerto 10000.
  • Podemos automatizar la descarga de contenido que nos interese en el dispositivo.
  • La utilización de iOS con jailbreak en redes no seguras, como por ejemplo WiFi en centros comerciales, ponen en riesgo la confidencialidad del dispositivo. Esta afirmación hay que matizarla, y es que lógicamente debemos tener claro que el usuario debe tener abierto la app. En muchas ocasiones un usuario piensa que la app se ha cerrado, aunque se encuentre realmente en background.

Figura 2: Petición a la raíz del servidor

La respuesta obtenida es el listado de archivos que podemos encontrar en la raíz del dispositivo. iFile responde en formato HTML tal y como se puede ver en la siguiente imagen.


Figura 3: Respuesta al GET presentando información

Cualquier usuario malicioso puede preparar un script malicioso que compruebe en la red en la que se encuentre si existe un servidor web en el puerto 10000 y si lo que se presenta en ese puerto corresponde con la app. En el siguiente ejemplo se ha hecho una pequeña prueba de concepto en la que se realiza una petición directamente a un recurso dónde se encuentra el fichero SystemVersion.plist. En este fichero se indica la versión del sistema operativo, entre otras cosas.


Figura 4: Código Ruby con petición a iFile al recurso SystemVersion.plist

Lógicamente se podría ampliar mucho la funcionalidad, tanto en detección como en explotación y obtención de ficheros. Además, la integridad de los ficheros que se encuentran en el dispositivo queda en riesgo, ya que pueden ser descargados, alterados y subidos. A continuación se muestra un ejemplo de la salida del script.


Figura 5: Ejecución del script

La versión del dispositivo es un iOS 7.1.1, pero como se puede entrever este tipo de aplicaciones son un riesgo si quedan olvidadas en el equipo y siguen funcionando. El acceso completo al dispositivo de forma remota debe estar siempre controlada por el usuario y que éste no sea olvidadizo.

Publicado en Seguridad Apple - Google+ - RSS - Eleven Paths



Continúar leyendo...