¡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:
- iPhone 8 con Jailbreak, iOS 12.4
- Xiaomi A1 rooteado, Android 9
- Genymotion (https://www.genymotion.com/download/)
- Kali Linux (https://www.offensive-security.com/kali-linux-vm-vmware-virtualbox-image-download/)
- VirtualBox (https://www.virtualbox.org/wiki/Downloads)
- Burp Suite Community Edition (https://portswigger.net/burp/communitydownload)
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:

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.

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.
De esta forma, quedaría configurado nuestro listener.
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”.
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.

Nos pregunta si queremos descargarnos un perfil de configuración, permitimos su descarga y éste se descarga.
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”.
Como se muestra en la imagen, se ha instalado correctamente.
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)

¿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.”
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.


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.
Una vez instalado, saldrá de la siguiente forma en Genymotion y en VirtualBox.
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.
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”.
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.
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.
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.

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.

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

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.

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

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.




































