18 mar 2018

Pentesting de aplicaciones móviles: iOS. Parte 1

Realizar un hacking ético sobre una aplicación móvil es una tarea técnica que requiere de una serie de tecnologías y procedimientos diferentes a las de los pentests web tradicionales. 

La arquitectura de estas aplicaciones suele ser por lo general similar a las de un front web, realizando una comunicación con un back-end donde se almacenan los datos necesarios para el funcionamiento normal de la aplicación, sus configuraciones y demás datos relevantes.

El problema que presentan las APPs para smartphones a la hora de realizar un hacking ético es que los móviles no nos brindan las capacidades suficientes para acceder a esas aplicaciones a nivel de código, tráfico de red, etc., tan necesarias en un pentest, por lo que seguimos manteniendo la necesidad de conectarnos de alguna manera a un ordenador. A este problema se ve sumado que por norma general los smartphones vienen protegidos, sin permisos de super usuario, lo que imposibilita llevar sus capacidades hasta el límite que necesitamos en el mundo de la ciberseguridad. Es por ello, que se requiere disponer de terminales con permisos totales, es decir, root en Android y jailbreak en iOS.

Android es un sistema operativo más abierto, por lo que es relativamente sencillo adquirir en el mercado terminales con usuario Root de origen. Así mismo, también es sencillo escalar privilegios mediante alguna vulnerabilidad conocida.

iOS por el contrario es un sistema muy cerrado, en el que conseguir un jailbreak no es trivial. Son pocos los exploits que salen al mercado, y no siempre son tan rápidos como necesitaríamos. Además, en el día a día del pentesting, las APPs que van saliendo se hacen incompatibles con versiones anteriores de iOS, por lo que constantemente tendremos que disponer de los últimos iPhone/iPad, ya que la obsolescencia programada de los sistemas operativos impide contar con un iPad 4 con iOS 11, por ejemplo.

A día de hoy, la mejor opción para el pentesting de aplicaciones iOS es la versión 10.3.3. Dispone de jailbreak tethered y semi-tethered para versiones de 32 y 64 bits y conseguir un iPhone 5 o superior, o un iPad 4 o superior es relativamente sencillo. 

Tras conseguir un terminal iOS con permisos de super usuario, necesitaremos instalar OpenSSH, para poder conectarnos desde un PC por ssh al dispositivo. Para esta labor podremos contar con Cydia.

Una vez instalado OpenSSH, veréis como el puerto 22 de vuestro terminal iOS ha sido abierto:


Ahora podremos conectarnos por SSH al dispositivo con el usuario "root" y la password "alpine":




Una vez dentro del terminal como usuario Root, procederemos a instalar la APP en sí que necesitamos auditar.

El próximo día hablaremos sobre la instalación de Burp para comenzar a interceptar peticiones de las APPs iOS que pentestearemos.

No hay comentarios:

Publicar un comentario