Análisis básico de aplicaciones Android I – Configuración del ambiente.
En este nuevo artículo, me gustaría compartir mi experiencia con aplicaciones Android con ustedes. Siendo honesto: no es mucho lo que tengo para darles, pero creo que de igual forma podré ayudar a algunos que aún no entienden del todo este ámbito.
Comencemos.
Seleccionar la aplicación a auditar.
Para principiantes, siempre se recomienda utilizar una aplicación orientada a las pruebas de seguridad. En web, es DVWA, en auditorías mobile, es DIVA. La pueden conseguir en este link.
Herramientas necesarias.
Este es el paso más importante. Si bien no rondaré en detalles – ya que espero que cualquiera leyendo esto tenga algo de experiencia realizando auditorías o en el campo de TI – les daré un listado de herramientas que recomiendo utilizar.
Detalle importante: se debe utilizar la MISMA versión de Frida y Frida Server. Si no se hace de esta manera, la instrumentalización puede no funcionar o tener problemas. Esto lo aprendí a la mala😹
Estas seis herramientas son las que necesitaremos. Existen otras como Objection, pero para lo básico nos bastará con lo mencionado.
Creación de la máquina virtual.
Dentro de Genymotion, crearemos un teléfono Google Nexus 5. No es un requerimiento, pero es el que personalmente suelo usar al auditar aplicaciones. Lo normal al auditar, es usar Android 9, ya que al ser un sistema operativo deprecado, que una aplicación abra en ese entorno, es en sí una vulnerabilidad.
Configuraciones del dispositivo.
Para poder utilizar Frida en combinación con Burpsuite (o el proxy a elección) debemos primero abrir la máquina virtual. Seguido de eso, debemos revisar si el dispositivo aparece en ADB. Para eso, ejecutemos:
adb devices
Esto nos debería dar una lista de los dispositivos disponibles. Si tuviésemos más de una máquina virtual encendida, nos aparecerían más de una. En nuestro caso, solo una debería existir en la lista. Como un paso rápido, debemos ejecutar:
adb remount
Esto nos permitirá remontar el sistema en modo lectura-escritura. No siempre es necesario, pero realizar este paso no toma más de 2 segundos.
Ahora, debemos preparar el ambiente. Para esto, debemos mover el ejecutable “frida-server” al dispositivo Android. Lo podemos realizar con:
Recomendado por LinkedIn
adb push frida-server /data/local/tmp/frida-server
Luego, ejecutar:
adb shell chmod 777 /data/local/tmp/frida-server
Con este paso finalizado, debemos ahora instalar el certificado SSL de Burpsuite. Copien el siguiente certificado, y guárdenlo en un archivo llamado “9a5ba575.0”:
-----BEGIN CERTIFICATE-----
MIIDqDCCApCgAwIBAgIFAN6mQWwwDQYJKoZIhvcNAQELBQAwgYoxFDASBgNVBAYT
C1BvcnRTd2lnZ2VyMRQwEgYDVQQIEwtQb3J0U3dpZ2dlcjEUMBIGA1UEBxMLUG9y
dFN3aWdnZXIxFDASBgNVBAoTC1BvcnRTd2lnZ2VyMRcwFQYDVQQLEw5Qb3J0U3dp
Z2dlciBDQTEXMBUGA1UEAxMOUG9ydFN3aWdnZXIgQ0EwHhcNMTQwNTIyMTcxMDM0
WhcNMzMwNTIyMTcxMDM0WjCBijEUMBIGA1UEBhMLUG9ydFN3aWdnZXIxFDASBgNV
BAgTC1BvcnRTd2lnZ2VyMRQwEgYDVQQHEwtQb3J0U3dpZ2dlcjEUMBIGA1UEChML
UG9ydFN3aWdnZXIxFzAVBgNVBAsTDlBvcnRTd2lnZ2VyIENBMRcwFQYDVQQDEw5Q
b3J0U3dpZ2dlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKWQ
WICeEcEJf0yt8Wa9kNLIZ+TvpMKM5uLFie549PqSeYcXbW/20KkCozwlUPrxScHH
u9Esu1XB6bgleAQ9t02kaj1K1hLfIJSZ4v41sgP8WpUxzoSnr64xVvvm40vrs5NO
g89dTYzFU3j6uawSFRvjdDtUqxiGPplQV/qlTcxVLjOCzRVN1EX8BzE5D2AoVnjL
d138WCx8/pAFuUUG7N8xuCLJUjDprxV4QBsSPOXBjQsW4KTF9H156kq/xTWjGPY8
eRqJyIrOVdWQIW3Yle73mf+pk++HE+mgihDJYDkKLS0ofUzgb5jlj0irhvhBA1XP
DC3SbqXg54cwmDu2fP0CAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
9w0BAQsFAAOCAQEAn3/stppO85Vp0AnqJufAVHZZmIrTDANQSVd/qMuSCf5GHq15
LtxOPPDHHT/ZW9ugLmxFJLiL2v0pRGOAe6eykl7iYwO9I9Cgpe9qN7S9wZK+Z6DL
GrfQ/7MpXYzTBhBvob+UPh6tF/oXyRHIj1vPDD3U053woAjLLf9jxdzvkE+k0Pdg
S8FMP23cfWCNAvbdTLz51qdoXYI/ProcdBczKwEHoLqFLbz3Klmd4hQBVJAVeWS7
u9C434vCdS9jdXNAfWdj0RLQroW+i+L9wx/HCmUzcaAFLDld/RrGkfnBjjk/u4EW
c1x8J+bFTjLWUbJwIJ+9p9x1H06ltH6O9S827A==
-----END CERTIFICATE-----
*Nota: al utilizar Burpsuite, existe una posibilidad de que el certificado que les acabo de envíar no funcione. Como el punto de esta guía no es explicar cómo conseguir el certificado de Burpsuite, les dejaré esta guía oficial: Configuring an Android device to work with Burp Suite.
Ahora, debemos mover este certificado a una carpeta especifica en Android, la cual contiene esta clase de archivos. Esta carpeta es “/system/etc/security/cacerts/”. Lo podemos realizar fácilmente:
adb push 9a5ba575.0 /system/etc/security/cacerts/
Ahora podemos configurar el certificado y el proxy. Esto se realiza así:
adb shell chmod 644 /system/etc/security/cacerts/9a5ba575.0al fin
adb shell settings put global http_proxy DIRECCIÓN_IP:PUERTO
Cabe destacar que, para que Burpsuite u otro proxy funcione correctamente, esta configuración va a variar. A veces, funciona con el localhost (127.0.0.1), a veces, con la IP del gateway (192.168.X.X). Lo que ocurrirá es que deben probar, probar y seguir probando, hasta que funcione.
Con esto, la configuración del ambiente estaría lista. Faltaría instalar nuestra aplicación (DIVA) y comenzar a auditar. Este proceso se puede realizar con el comando:
adb install DIVA.apk
Y la aplicación se instalará.
Creo que es buen momento de decirles que, si bien esta guía es para principiantes y novicios, me gustaría que al finalizar, conozcan al menos lo básico a la hora de escribir scripts de Frida.
Pero eso quedará para la siguiente parte de esta guía.
Saludos!