Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Interceptar tráfico cuando la aplicación no quiere

4 tareas · 35 min · Principiante

Para entender una aplicación móvil hay que ver lo que le dice a su servidor. Eso se hace poniendo un proxy en medio que muestra cada petición y cada respuesta. Muchas aplicaciones intentan impedirlo con fijación de certificado —aceptan solo el certificado que traen dentro, así un proxio no se puede colar—, y saltar esa defensa en el propio dispositivo de laboratorio es parte del análisis. Se trabaja sobre Colibrí y su API de respaldo en la nube, con un proxy de interceptación (OWASP ZAP o mitmproxy) y el emulador bajo control. La idea que la sala deja clara: saltar la fijación en tu propio dispositivo no rompe la seguridad del sistema, porque la fijación protege el canal, no decide qué acepta el servidor. Capturar tráfico de red es, en la matriz Mobile de MITRE ATT&CK, la técnica T1616; aquí se ejerce sobre una app propia para corregir lo que revele.

0 de 4 · 0%

Objetivo de la sala

Para entender una aplicación móvil hay que ver lo que le dice a su servidor. Eso se hace poniendo un proxy en medio que muestra cada petición y cada respuesta. Muchas aplicaciones intentan impedirlo con fijación de certificado —aceptan solo el certificado que traen dentro, así un proxio no se puede colar—, y saltar esa defensa en el propio dispositivo de laboratorio es parte del análisis. Se trabaja sobre Colibrí y su API de respaldo en la nube, con un proxy de interceptación (OWASP ZAP o mitmproxy) y el emulador bajo control. La idea que la sala deja clara: saltar la fijación en tu propio dispositivo no rompe la seguridad del sistema, porque la fijación protege el canal, no decide qué acepta el servidor. Capturar tráfico de red es, en la matriz Mobile de MITRE ATT&CK, la técnica T1616; aquí se ejerce sobre una app propia para corregir lo que revele.

Con el proxy en medio ves que Colibrí habla con su API por un canal cifrado: nadie en la red intermedia —una wifi pública, por ejemplo— puede leer ni alterar esas peticiones. Eso es exactamente lo que el cifrado de transporte debe garantizar, y está bien. Pero ese cifrado protege el tráfico entre el dispositivo y el servidor; no protege contra el dueño del propio dispositivo, que puede instalar su certificado y mirar su propio tráfico. Confundir las dos cosas lleva a conclusiones equivocadas sobre qué se puede confiar al cliente.

En el laboratorio, con tu certificado instalado en el emulador, lees el tráfico de Colibrí en claro dentro del dispositivo, aunque en la red siga cifrado. El canal está bien protegido; el dueño del extremo siempre lo ve.

Esta tarea se hace en el laboratorio

Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.

Preparando el escritorio…

Responde para continuar

Con tu proxy y tu certificado en el emulador lees el tráfico de Colibrí, aunque en la red viaje cifrado. ¿Qué demuestra?

Ver pista de ayuda

El cifrado de transporte protege contra quien está EN LA RED. El dueño del extremo instala su certificado y ve su propio tráfico.

Colibrí intenta impedir la interceptación con fijación de certificado. En el laboratorio la desactivas modificando la aplicación o enganchando la comprobación, y el tráfico vuelve a verse. Es tentador anotar «fijación saltada» como el hallazgo, pero eso mide la resistencia de una defensa del cliente, no un fallo del sistema. La fijación de certificado sirve para dificultar ataques de intermediario reales contra usuarios reales en la red; que el analista la salte en su propio dispositivo de pruebas no significa que un atacante en una wifi pueda leer a los usuarios. El valor de esta tarea es ver el tráfico para analizar la API, no «vencer» la fijación.

En Colibrí saltas la fijación y empiezas a leer las peticiones a la API. El hallazgo no es que saltara: es lo que ahora puedes revisar del diálogo con el servidor.

Esta tarea se hace en el laboratorio

Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.

Preparando el escritorio…

Responde para continuar

Saltas la fijación de certificado de Colibrí en tu emulador y ves el tráfico. ¿Cómo se interpreta correctamente?

Ver pista de ayuda

La fijación protege a usuarios reales frente a intermediarios en la red. Saltarla en tu equipo de pruebas abre el análisis, no un fallo.

Al leer las peticiones de Colibrí encuentras algo que sí importa: junto al identificador de sesión, la aplicación manda en cada petición el rol del usuario («cliente» o «administrador») como un campo que el propio cliente rellena. Si ese campo es lo que el servidor usa para decidir qué se permite, cambiarlo a «administrador» en el proxy podría dar acceso a funciones que no corresponden. Ese es el hallazgo: no que se viera el tráfico, sino que el servidor podría estar confiando en un dato que el cliente controla.

Anotas la hipótesis para comprobarla contra la API en el módulo siguiente. La corrección, si se confirma, no es cifrar más el canal: es que el servidor derive el rol de la sesión, nunca de un campo que manda el cliente.

Esta tarea se hace en el laboratorio

Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.

Preparando el escritorio…

Responde para continuar

En el tráfico de Colibrí ves que la app manda el rol del usuario como un campo que ella misma rellena. ¿Cuál es el hallazgo y su arreglo?

Ver pista de ayuda

El problema no es que el rol se vea, es quién lo decide. Un rol que manda el cliente no debe gobernar permisos en el servidor.

Abre el laboratorio y lee la captura del proxy entre Colibrí y su API. Busca la petición en la que la propia aplicación rellena y manda el campo del rol del usuario: en la revisión de esa petición hay un código de la sala. Escríbelo tal cual.

Esta tarea se hace en el laboratorio

Un escritorio Linux con terminal, aquí en la página. No instalas nada y no puedes romper nada.

Preparando el escritorio…

Responde para continuar

En la captura, localiza la petición donde la app envía el rol como un campo que ella misma rellena y escribe el código de la sala anotado ahí.

Formato esperado: MOV-____

Ver pista de ayuda

El código está junto a la petición cuyo cuerpo incluye el campo del rol enviado por el cliente, no en las peticiones de solo lectura.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Preparando el escritorio…

16:24
Terminal (user@whoami)
user@whoami:~$
Tab Autocompletar ↑/↓ Historial
bash 5.2.21
Whoami-Labs OS v3.0.1 LTS · build bcc89e

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad