PROXYFICANDO NUESTROS MÓVILES

¡Buenas a todos!

A raíz de diferentes auditorías a aplicaciones móviles que he realizado y lo que he trasteado, he decidido hacer una serie de artículos explicando cómo hacer y qué cosas hay que tener en cuenta en una auditoria móvil tanto en iOS como en Android, empezando desde lo básico hasta donde lleguemos xD

Espero que os guste!

El material que vamos a emplear es:

En primer lugar, vamos a configurar Burp. Burp es una herramienta de pentesting que ayuda al pentester a realizar auditorias de seguridad en aplicaciones. En este caso, vamos a utilizar una funcionalidad que tiene Burp que es la de proxy para interceptar las peticiones que se generen.

Miramos que IP tenemos asignada:

Sh3llCON - PROXYFICANDO EL MÓVIL

Iniciamos la herramienta y vamos a la parte del proxy “Proxy à Options à Proxy Listeners” y añadimos “Add” un nuevo listener para reciba las peticiones que vamos a generar con nuestros dispositivos.

Sh3llCON - PROXYFICANDO EL MÓVIL

Indicamos el puerto por el que queremos que reciba las peticiones y le especificamos la IP de nuestro equipo, que es donde estamos ejecutando Burp.

Sh3llCON - PROXYFICANDO EL MÓVIL

De esta forma, quedaría configurado nuestro listener.

Sh3llCON - PROXYFICANDO EL MÓVIL

iOS:

Partiendo de nuestro dispositivo con Jailbreak, comenzamos proxificando el tráfico de nuestro dispositivo.

En primer lugar, vamos a “Ajustes → Wi-Fi → Configurar proxy”, activamos el proxy, seleccionamos “Manual”.

Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL

Sh3llCON - PROXYFICANDO EL MÓVIL

A continuación, introducimos la IP del equipo donde estamos ejecutando Burp y le asignamos el puerto que anteriormente hemos configurado. (IMPORTANTE: que estén en la misma red y tengan visibilidad entre ellos).

Después abrimos el navegador instalado por defecto “Safari”, introducimos http://burp y pinchamos en “CA Certificate” para que nos descargue el perfil que, posteriormente, vamos a instalar.

Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL

Nos pregunta si queremos descargarnos un perfil de configuración, permitimos su descarga y éste se descarga.

Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL

Una vez descargado, vamos a Ajustes y nos muestra un perfil pendiente de configurar. Accedemos a dicho perfil y procedemos a instalarlo; introducimos el código de bloqueo del dispositivo para permitir su instalación y pulsamos “Instalar”.

Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL

Como se muestra en la imagen, se ha instalado correctamente.

Sh3llCON - PROXYFICANDO EL MÓVIL

En un principio ya estaría el perfil instalado con lo que nos dirigimos al navegador e intentamos acceder a una página pero.. ¡SORPRESA! No está interceptando correctamente el tráfico. Como observamos en las siguientes capturas, tanto el navegador del dispositivo como Burp nos indica que existe un problema con el certificado. (Es muy importante leer los errores para saber por qué no nos funciona)

Sh3llCON - PROXYFICANDO EL MÓVIL

¿Esto a que se debe? A que nos falta el paso de confiar en el certificado. Vale.. y ¿cómo hacemos para confiar en el certificado que hemos instalado?

Tan sencillo como ir a “Ajustes → Información” y debajo de toda la información del dispositivo viene una opción llamada “Ajustes de confianza de los certif.”

Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL

Podemos observar que el certificado que nos interesa “PortSwigger CA” está deshabilitado. Lo habilitamos y listo, ya tenemos nuestro dispositivo preparado para interceptar todo el trafico que genere.

Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL

Android:

En la parte de Android disponemos de un dispositivo rooteado y un dispositivo virtualizado con Genymotion (es un emulador de Android multiplataforma que ejecutar de forma fluida y rápida distintos dispositivos Android).

Vamos a explicar cómo proxificar nuestro dispositivo mediante la opción del dispositivo emulado con Genymotion (un dispositivo físico se proxifica de igual manera, pero sin necesidad de VirtualBox ni de las “GApps”).

Empezamos descargando Genymotion en nuestro equipo (https://www.genymotion.com/download) y VirtualBox (https://www.virtualbox.org/wiki/Downloads) (necesitamos Virtualbox debido que es donde se va a crear la máquina virtual), creamos una máquina virtual nueva dándole al “+” y seleccionamos que tipo de dispositivo queremos instalar. En este caso vamos a emular un Samsung Galaxy S6 6.0 – API 23. En el siguiente paso es importante definir que tipo de red vamos a configurar en el dispositivo. Seleccionamos “Bridge” debido a que necesitamos que tenga conexión con el host principal para poder interceptar el tráfico.

Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL

Una vez instalado, saldrá de la siguiente forma en Genymotion y en VirtualBox.

Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL

Iniciamos el dispositivo y, en primer lugar, instalamos las “GApps”. Las “GApps” son las aplicaciones nativas de Google, por ejemplo: Play Store, Google Drive, etc… En nuestro caso lo vamos a instalar para, posteriormente, instalar Google Chrome y utilizarlo como navegador debido a que, personalmente, me resulta más cómodo como navegador y realizar diferentes pruebas.

Las “GApps se instalan clickando en “Open GApps”. Una vez instaladas, reiniciamos el emulador, procedemos a iniciar sesión en Play Store y descargar Google Chrome.

Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL

El siguiente paso sería ir a “Settings → Wi-Fi”, pulsamos encima del nombre de la red a la que estamos conectados “WiredSSID” hasta que aparezca el siguiente pop-up y pulsamos en “Modify network”.

Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL

Nos sale un menú, buscamos la opción “Proxy”, pulsamos sobre “Manual” e introducimos la IP y el puerto de nuestro host principal que hemos configurado anteriormente en Burp.

Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL

Salimos de “Settings” y vamos a la aplicación de Chrome que hemos instalado hace un momento. Una vez en el navegador, introducimos http://burp y, una vez cargada la web, pulsamos sobre “CA Certificate” para descargarnos el certificado.

Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL

Debemos de darle permisos a Chrome para poder acceder a la carpeta para que descargue el certificado. Una vez descargado, pulsamos en “Open” y nos lleva a la carpeta “Downloads” donde está almacenado el certificado. Pulsamos sobre los 3 puntos y pulsamos en “Rename” para modificar la extensión del fichero.

Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL

Debemos de cambiar la extensión del fichero de “*.der” a “*.cer” debido a el primer fichero que nos descargamos no es legible por el dispositivo y en el momento en el que le cambiamos la extensión, es legible por el dispositivo y podemos instalarlo.

Una vez modificado, vamos a “Settings”, buscamos “certificates” en el buscador de arriba y seleccionamos la opción “Install from SD card”. Una vez dentro, volvemos a pinchar en “Install from SD card” y seleccionamos “Internal storage → Downloads” que es donde tenemos almacenado el certificado.

Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL

Pulsamos sobre el certificado, le asignamos un nombre y pulsamos “OK”.

Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL

Como no teníamos un PIN configurado, nos obliga a configurar para poder continuar. Una vez configurado, podemos ver en “Trusted credentials à User” el certificado que acabamos de instalar correctamente.

Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL
Sh3llCON - PROXYFICANDO EL MÓVIL

En la siguiente captura se puede observar como podemos interceptar correctamente el tráfico con Burp.

Sh3llCON - PROXYFICANDO EL MÓVIL

Espero que os haya gustado y que os sirva! Nos vemos en el próximo! 🙂

Referencias:

https://portswigger.net/support/configuring-an-android-device-to-work-with-burp

https://portswigger.net/support/installing-burp-suites-ca-certificate-in-an-android-device

https://portswigger.net/support/configuring-an-ios-device-to-work-with-burp


La imagen de cabecera se ha compuesto con una foto cortesía de Freepik

Firmado: Carol

Sh3llCON no se hace responsable de las opiniones vertidas por sus colaboradores ni por las actuaciones que, fruto del conocimiento transmitido, puedan realizar terceras personas.