Underc0de

Sistemas Operativos => Android => Mensaje iniciado por: Stiuvert en Abril 22, 2016, 08:55:03 AM

Título: ¿Cómo interceptar tráfico HTTPS en Android? Crea tu entorno de análisis
Publicado por: Stiuvert en Abril 22, 2016, 08:55:03 AM
Mientras el malware móvil se vuelve cada vez más complejo, algunas prácticas de análisis se tornan cada vez más necesarias; entre ellas, la de interceptar tráfico enviado mediante protocolos seguros –en particular, HTTPS–. En este tutorial aprenderás cómo puedes configurar tu entorno de análisis para analizar muestras maliciosas o aplicaciones en búsqueda de vulnerabilidades.

¡Manos a la obra!

Existen diferentes maneras de configurar un proxy en un sistema Android y numerosas herramientas que pueden utilizarse para este propósito. En este artículo utilizaremos Burp Suite (https://portswigger.net/burp/), pero bien podrías usar ZAP (https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project) (de OWASP) o cualquier otro de similares características.

Comenzaremos inicializando Burp Suite. Seleccionaremos la pestaña Proxy > Options y allí añadiremos una nueva configuración de escucha de tráfico con el botón Add –también puedes editar la configuración preexistente con el botón Edit–. Esto nos abrirá una nueva ventana donde deberemos establecer la IP y el puerto de nuestro proxy: normalmente, la IP local y el puerto de preferencia:

(http://www.welivesecurity.com/wp-content/uploads/2016/02/img_3.png) (http://www.welivesecurity.com/wp-content/uploads/2016/02/img_3.png)

Tras presionar el botón «OK» y cerciorarnos de que el listener que nos interesa está marcado como activo –running–, podemos pasar a configurar el emulador. Si se está trabajando con Genymotion, comenzaremos la configuración del proxy modificando los Settings de la aplicación. En la solapa de características de red podremos ingresar la IP y puerto que definimos primeramente en Burp Suite.

(http://www.welivesecurity.com/wp-content/uploads/2016/02/img_4.png) (http://www.welivesecurity.com/wp-content/uploads/2016/02/img_4.png)

Para finalizar deberemos configurar la conexión de red en el emulador ejecutando Android. Para ello nos dirigiremos a Ajustes > Wi-Fi y mantendremos seleccionada la red a la cual estamos conectados, lo que nos dará la posibilidad de modificar sus propiedades. Luego activaremos la opción de opciones avanzadas y nuevamente ingresaremos la IP y puertos deseados, resultando una imagen semejante a la que se muestra a continuación:

(http://www.welivesecurity.com/wp-content/uploads/2016/02/img_5.png) (http://www.welivesecurity.com/wp-content/uploads/2016/02/img_5.png)

Tras guardar la nueva configuración de red, se deberá reiniciar la conexión. Ahora puedes realizar una prueba ingresando a algún sitio web desde el navegador del dispositivo y verás cómo Burp Suite te permite visualizar todo el tráfico HTTP. No olvides indicar a la herramienta que debe comenzar a interceptar el tráfico:

(http://www.welivesecurity.com/wp-content/uploads/2016/02/img_6.png) (http://www.welivesecurity.com/wp-content/uploads/2016/02/img_6.png)

¿Hemos terminado ya? Aún no, pues todavía no podemos visualizar conexiones protegidas, es decir, interceptar tráfico HTTPS. Para ello necesitaremos instalar el certificado de Burp Suite. Ingresa desde el navegador del emulador a la siguiente URL:

http://burp/

Verás una página de Burp Suite que te permitirá descargar el certificado que necesitamos. Haz clic en el botón con la leyenda «CA Certificate». Esto descargará el certificado a la carpeta de descargar del sistema de archivos. Busca el archivo descargado y haz clic en él: esto te permitirá instalarlo en el sistema. Una ventana te pedirá que le asignes un nombre y dejaremos el que tiene por defecto:

(http://www.welivesecurity.com/wp-content/uploads/2016/02/img_7.png) (http://www.welivesecurity.com/wp-content/uploads/2016/02/img_7.png)

Una vez instalado el certificado podrás administrarlo dentro de los certificados de usuario, accediendo desde Ajustes > Seguridad > Certificados de confianza y seleccionando la solapa Usuario:

(http://www.welivesecurity.com/wp-content/uploads/2016/02/img_8.png) (http://www.welivesecurity.com/wp-content/uploads/2016/02/img_8.png)

¡Muy bien! Ya podrás observar en BurpSuite el tráfico enviado con el protocolo HTTPS:

(http://www.welivesecurity.com/wp-content/uploads/2016/02/img_9.png) (http://www.welivesecurity.com/wp-content/uploads/2016/02/img_9.png)

Y ahora, ¿hemos acabado? No. Algunas aplicaciones implementan algo denominado SSL pinning: este es un proceso en el cual se verifica no solo que el certificado enviado por el servidor sea válido, sino también que sea el certificado del servidor correcto. Esto mejora notablemente la seguridad cuando se trata de aplicaciones genuinas, pero complica el análisis cuando se están buscando comportamientos maliciosos.

Para hacer frente a este escenario podemos utilizar Cydia Substrate (http://www.welivesecurity.com/la-es/2016/03/04/cydia-substrate-analisis-malware-android/) conjuntamente a Android SSL TrustKiller (https://github.com/iSECPartners/Android-SSL-TrustKiller).

Fuente: cyanurelabs.blogspot.com.es
Título: Re:¿Cómo interceptar tráfico HTTPS en Android? Crea tu entorno de análisis
Publicado por: ANTRAX en Mayo 24, 2016, 08:47:58 AM
Excelente aporte bro!!! Se ve muy muy bueno!
Justo necesitaba hacer algo para lo que necesitaré usar esto!
Muchas gracias!
ANTRAX
Título: Re:¿Cómo interceptar tráfico HTTPS en Android? Crea tu entorno de análisis
Publicado por: Snifer en Mayo 24, 2016, 10:35:11 AM
Con genymotion el trabajo es mas simple ahora tambien en entornos reales es el mismo proceso excelente stiuvert.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Excelente aporte bro!!! Se ve muy muy bueno!
Justo necesitaba hacer algo para lo que necesitaré usar esto!
Muchas gracias!
ANTRAX

Por cierto siempre te viene todo bien no?

Regards,
Snifer