Como hemos repetido incansables veces, una de las partes más importantes de auditar aplicaciones móviles es auditar los servicios web con los que interactuan. Si la comunicación se hace utilizando HTTPS, no basta con configurar el proxy en el móvil, ya que las aplicaciones nativas hacen llamadas a la API exigiendo que el certificado sea válido.
La forma más sencilla de interceptar estas comunicaciones es añadiendo un certificado de confianza siguiendo los pasos que se describen a continuación:
1.- Se arranca el servidor proxy, en este caso "burp" y configurado para que genere certificados SSL:
Exportar certificado de PortSwigger CA con Firefox |
Correo electrónico con certificado adjunto |
Propiedades del certificado previa instalación |
Certificado finalmente instalado |
4.- Una vez instalado el certificado, se configura el proxy en los ajustes de la Wifi:
Una vez terminado el trabajo, se elimina desde Ajustes->General->Perfil->Eliminar.
Ajustes generales |
3 comments :
Otra vez muy buen tutorial, dan ganas de ponerse a fedellar con el iphone!
Realmente bueno.
Gracias.
Faltan unos cuantos casos interesantes:
1: Cuando es una aplicación diseñada para no obedecer al proxy: aquí el truco es redigir el destino siempre a localhost siempre (con el fichero hosts o una regla de iptables) y luego poner proxies transparentes escuchando en localhost en cada puerto (donde haces el MITM) y luego redireccionarlos a los hosts que deberían ir.
2: Cuando la aplicación comprueba el certificado en concreto de servidor que espera y solo acepta ese. Dependiendo de como funcione esa app varía, igual lo más sencillo es parchear las funciones, o igual cambiar los valores del certificado si va hardcodeado y tiene la misma longitud (para no liarla con offsets del binario) o modificar los resources que usa el programa y reempaquetarlo, etc. Y bueno, si es una auditoría de código, pues te compilas tu propia versión con tu certificado.
Publicar un comentario