Saltar a contenido

Tutorial: Captura y análisis del tráfico de red de aplicaciones en Android

Este tutorial te guiará paso a paso para capturar y analizar el tráfico de red de aplicaciones Android, utilizando herramientas como WireGuard, Tshark y Wireshark. Aprenderas a configurar ele entorno necesario, realizar capturas de paquetes de red y analizar los datos obtenidos para identificar conexiones realizadas por las aplicaciones, docminio y riesgos de seguridad.

Prerrequisitos

  • Cliente de WireGuard instalado en el celular y configurado.
  • Máquina virtual con el servidor VPN WireGuard instalado.
  • El cliente y el servidor deben estár los dos en la misma red local.

Pasos a seguir

  1. Conecta el teléfono a la VPN configurada con WreGuard.
  2. Ejecuta Tshark en la maquina virtual para capturar el tráfico de red.
  3. Utiliza la aplicacion que deseas analizar en el teléfono.
  4. Terminar la captura de tráfico en Tshark cuando se termine d eusar la aplicación.
  5. Exporta los paquetes capturados en un archivo que pueda ser analizado con Wireshark.

Nota: Recomendamos realizar la captura de tráfico de red de las aplicaciones a través de la aplicación Draeneg. Aquí el tutorial

Sugerencias y recomendaciones opcionales

Sugerencias de optimización de análisis

Para optimizar la captura y análisis del tráfico de red en dispositivos Android, considera las siguientes configuraciones:

  1. Utilizar LineageOS (opcional):
  2. Descarga e instala LineageOS en el dispositivo.
  3. LineageOS elimina funciones innecesarias y aplicaciones preinstaladas, facilitando una captura más limpia de tráfico.

  4. Desinstalar o inhabilitar aplicaciones no esenciales:

  5. Desinstala la mayoría de las aplicaciones preinstaladas.
  6. Inhabilita aplicaciones que no puedan ser desinstaladas.

  7. Restringir acceso a Internet para aplicaciones:

  8. Para Android 10, utiliza esta guía.
  9. Para Android 11, utiliza esta guía.
  10. En Android 12 o superior, elimina el permiso de Datos en segundo plano:

    • Ve a Configuración > Apps.
    • Selecciona la app deseada > Wi-Fi y datos móviles.
    • Desactiva el permiso de Datos en segundo plano.
  11. Registrar configuraciones alteradas:

  12. Marca las aplicaciones cuyos permisos se hayan modificado para restaurarlos después de la captura.

Sugerencias para un Análisis Profundo de Protocolos

Al analizar el tráfico capturado, es útil explorar los siguientes protocolos para obtener información más detallada sobre las conexiones y datos transmitidos:

  • ARP: Identifica dispositivos en la red local y sus direcciones IP.
  • DNS: Traduce direcciones IP a nombres de dominio legibles por humanos, como www.google.com.
  • HTTP: Protocolo utilizado para transferir datos entre direcciones IP. Es importante para identificar información no cifrada.
  • HTTPS: Versión segura de HTTP, que cifra los datos transmitidos para proteger la privacidad.
  • OpenVPN: Protocolo utilizado para redes privadas virtuales, como WireGuard. Proporciona datos sobre direcciones IP públicas y locales.
  • TCP: Protocolo en la capa de transporte que soporta otros protocolos, como HTTP.
  • TLS: Protocolo criptográfico que garantiza comunicaciones seguras, apareciendo como TLSv1.3 en Wireshark.
  • UDP: Similar a TCP pero más rápido, aunque menos fiable, dependiendo del tipo de datos transmitidos.

Estas configuraciones y sugerencias te ayudarán a capturar y analizar el tráfico de red de manera más precisa y efectiva, facilitando la identificación de riesgos de seguridad y conexiones importantes. SIn embargo, no es completamente necesario realizar estas configuraciones ni es requisito obligatorio para seguir este tutorial.

Captura de datos

Procedimeinto

  1. Preparar el dispositivo y entorno
  2. Instala la aplicación que se deseas analizar
  3. Cierra todas las aplicaciones que están corriendo en el dispositivo
  4. Activar WireGuard en el teléfono

  5. Inicializar Tshark

  6. En la máquina virtual, abre la terminaly ejecuta el sigueinte comando sudo tshark -i enp0s3 -w /tmp/nombredelapp.pcap

    -i especifica la interfaz a utilizar, comunmente es una interfaz Ethernet como enp0s3 o ens33. -w define la ruta donde se guardará el archivo de captura. Utiliza /tmp para evitar problemas con permisos.

  7. Capturar tráfico de red

  8. Abre la aplicación que deseas analizar en el teléfono.
  9. Verifica en la consola que el número de paquetes capturados aumenta.

  10. Utiliza la aplicación

  11. Utiliza todas las funciones de la aplicación para registrar el tráfico generado hacia diferentes servidores.

  12. Detener la captura

  13. Cierra la aplicación en el teléfono
  14. En la terminal presiona ctrl + c para detener Tshark

  15. Guardar el archivo capturado

  16. Si el archivo es considerado como satisfactorio, debes ajustar sus permisos para moverlo a otro directorio con el sigueinte comando: sudo chmod 777 /tmp/nombredelapp.pcap
  17. Mueve el archivo al directorio de documentos ~~~ mv /tmp/nombredelapp.pcap /home/seguridad/Documentos ~~~

    Remplaza seguridad con el nombre de usuario de tu máquina virtual.

Análisis del tráfico de red

Configuración de Wireshark

  1. Registro y descarga de bases de datos Maxind
  2. Registrate en Maxmind.
  3. Descarga kas sigueintes bases de datos:
    • Geolite2 ASN
    • GeoLite2 City
    • GeoLite2 Country

Importante Para este análisis es requerido una base de datos con información referente a direcciones y localizaciones de direcciones IP

maxmind

  1. Organizar las bases de datos

  2. Después de descargarlos, crea un directorio en donde guardarlos. En este caso le llamaremos MaxMind.

  3. Dirigete a la carpeta de descargas, identifica la carpeta de la descarga y descomprimela.
  4. Mueve las carpetas al directorio creado como MaxMind, el contenido debera quedar organizado de esta manera:

    • GeoLite2-ASN_20220614
    • GeoLite2-Country_20220614
    • GeoLite2-City_20220614
  5. Configurar WireShark

  6. Abre Wireshark, y ve a Edición --> Preferencias --> Name Resolution --> MaxMind Database Directories y Edit

database

  • Haz click en el botón de +, luego Browse y selecciona cada una de las carpetas extraidas que movimos en el paso anterior.

database2.

  • Cerramos Wireshark y lo reiniciamos.

Lo que acabamos de hacer nos permitirá visualizar las direcciones IP del tráfico de red que capturamos de una manera más cómoda y útil.

Análisis de los datos

Para realizar el analisis de los datos, tienes que seguir los siguientes pasos:

  1. Abrir el archivo de captura
  2. Ve a Archivo en Wireshark y selecciona el archivo de captura de la aplicación nombredelapp.pcap. Veremos una pantalla similar a la siguiente:

wireshark

  1. Interpretar columnas clave
  2. Verifica la información presentada en el archivo considerando las comunas:
    • No.: indica el número de orden en el que el paquete de datos fue capturado. Se empieza, naturalmente, con el número 1.
    • Time: se refiere al momento en el que fue capturado dicho paquete.
    • Source: es el origen del paquete, es decir la dirección IP. Aparecerán otras direcciones desde donde se envian datos.
    • Destination: dirección IP a donde se envio el paquete.
    • Protocol: protocolo utilizado en la transmisión.
    • Length: cantidad de bytes del paquete.
    • Info: información respecto del paquete.

De la información presentada en el archivo, lo relevante para nuestro analisis son las columnas Source, de Destination y de Protocol.

Análisis HTTP

Para este análisis es importante tener suficientemente claro la información que se te presenta en el anális anterior. Posterior a ello puedes realizar este análisis con más facilidad.

  1. Análisis de la columna protocol
  2. Escribe http en la barra de filtros de Wireshark y haz click en enter
  3. Si hay conexiones con este protocolo, te aparecerán en la parte de abajo, normalmente marcadas con el color verde.

http

  1. Revisar contenido de los paquetes
  2. Selecciona un paquete HTTP en la lista Observa los datos que fueron capturados en la parte inferior de WIreshark, donde s emuestra el contenido del paquete.

seccionwireshark

  1. Identificar problematicas
  2. ANaliza los datos enviados y recibidos para detectar si es que se esta incluyendo infomación sensible.
  3. Verifica el protocolo de envio de los datos para confirmar si es que se esta presentando un alto riesgo de la seguridad si es que se esta omitiendo el cifrado.

httpdatos

En esta aplicación que utilizamos como ejemplo, la información Apellido Paterno, Apellido Materno, Email, Teléfono Fijo, etc. ha sido mandada con el protoclo http datos de registro de la aplicación: Esto, por supuesto, representa un problema mayúsculo de seguridad y de privacidad.

  1. Revisar otros protocolos Durante el análisis podrían aparecer otros protocolos relevantes que se encuentran frecuentemente en este tipo de análisis. Es recomendable que verifiques la integridad de la información que utilizan estos protocolos.

Dejamos aquí, una explicación de algunos otros protocolos que se pueden encontrar muy seguido:

Análisis direcciones IP

Ahora bien, para analizar las diferentes direcciones IP que hay en nuestro archivo, haremos lo siguiente:

  1. Acceder a las estadísiticas de puntos finales
  2. Ve a Estadísticas --> Puntos Finales --> IPv4.
  3. Esto abrirá una ventana donde aparecerán filtradas la lista de direcciones IP contactadas

endpoints

  1. Interpretar las columnas clave
  2. Address: dirección IP
  3. Packets: número total de paquetes enviados y recibidos
  4. Bytes: la cantidad de información enviada y recibida
  5. Tx Packets: número de paquetes enviados desde esa IP
  6. Tx Bytes: cantidad de datos enviados desde esa dirección IP
  7. Rx Packets: número paquetes recibidos por esa dirección IP
  8. Rx Bytes: cantidad de datos recibidos por esa IP
  9. Country: país donde está localizada la dirección IP
  10. City: ciudad donde está localizada la dirección IP
  11. AS Number: Número de sistema autónomo ASN
  12. AS Organization: Organización a la que pertenece esa dirección IP

  13. Identificar a donde van los datos -Ivestiga organizaciones desconocidads para identificar su rol o papel dentro de la transmición de datos.

Por ejemplo: Akamai es una empresa empresa, que proporciona productos de seguridad en la nube, y es conocida por ser un CDN y no necesariamente almacena datos sensibles.

endpoints2

  1. Visualizar mapa de conexiones
  2. Haz click en Map y luego en Open in Browser
  3. Tendremos algo similar a esto:

mapa

Hasta este punto ha concluido el análisis de tráfico de red. Es importante remarcar que este análisis puede ser mucho más profundo, y dependerá de estar investigando activamente más empresas, otras opciones de Wireshark y la meta del mismo para hacerlo. Algunas veces, habrá direcciones IP que no aparezcan en Wireshark, recomendamos para ello utilizar esta página para buscar información sobre ellas.

Análisis de registros DNS y SNI

Esta sección del tutorial tiene el objetivo de profundizar en conocer qué servicios y dominios son los que contactan la palicación movil.

Para hacer esto, existen dos maneras.

Identificar dominios con DNS

  1. Filtrar registros DNS
  2. Escriba dns eb la barra de filtros de Wireshark y preisona enter -Analiza las llamadas DNS realizadas por la aplicación

dns

  1. Buscar registros A:
  2. En la lista de paquetes DNS, busca registros tipo A que vinculan un dominio con una dirección IP.
  3. Identifica el dominio relacionado con las direcciones IP de los endpoints obtenidas previamente.

  4. Buscar dominios asociados a una IP especifica

  5. Haz click a la lupa verde para abrir una nueva linea de filtrado

dns2

  • Configura los filtros de la siguiente manera:
    • Listado de paquetes en la primera sección
    • Reducido y ampliado en la segunda sección
    • Cadena en la tercera sección
    • IP (endpoint) en la cuarta sección
  • Identifica el dominio asociado con esa direccion IP

dns3

Identificar dominios con DNS

  1. Filtrar paquetes con SNI
  2. Escribe ssl.handshake.extensions_server_name en la barra de filtros de WIreshark y presiona Enter.
  3. Esto va a filtrar todos los paquetes involucrados en el handshake. Como vemos, aparece nuestra dirección IP de origen y esta vez, la IP de destino sí es la dirección de nuestros endpoints.

dns4

  1. Extraer información del SNI
  2. Selecciona el primer paquete filtrado.
  3. En la parte inferior, expande los sigueintes menús:
    • Transport Layer Security
    • TLSv1.3 Record Layer: Handshake Protocol: Cliente Hello
    • Hanshake Protocl: Client Hello
    • Extension Server Name
    • Y por último expandimos Server Name Indication extension

dns5

  1. Agrgar columna para dominios
  2. Haz click con el botón derecho al campo Server Name Indication Extension
  3. Haz click en Aplicar como columna.
  4. Esto nos generará una columna que se llama Server Name y que contiene el dominio contactado y la dirección IP del endpoint.

dns6

Conclusión

Este análisis permite identificar dominios específicos contactados por la aplicación, incluso si las direcciones IP corresponden a servidores compartidos. Con esta información, es posible: - Determinar la ubicación y función de los dominios. - Identificar servicios específicos utilizados por la aplicación. - Detectar rastreadores y servicios desconocidos.