Diferentes formas de obtener ficheros .apk durante una auditoría

¡Muy buenas!

En el artículo de hoy vamos a analizar varias maneras diferentes de tratar los archivos .apk para llevarlos al dispositivo físico en el que vayamos a realizar una auditoría, o bien, extraer simplemente el propio fichero .apk.

En un primer lugar tenemos herramientas online que, si el apk a analizar no se encuentra publicado en GooglePlay, pueden ayudarnos a llevarnos el fichero directamente al dispositivo físico en el que instalaremos el apk, como por ejemplo, el servicio web de https://www.diawi.com/ (que puede recordarnos al servicio de wetransfer.com).



En el caso de tener la aplicación subida a GooglePlay, y necesitar extraer el apk, podremos hacerlo a través de la herramienta adb, que se encuentra disponible por defecto en Kali o que podréis instalar de forma sencilla desde el siguiente enlace https://developer.android.com/studio/command-line/adb?hl=es-419.


[Página oficial de adb]

Y en la sección de descargas, obtendremos las herramientas para el sistema operativo correspondiente.

Por otra parte, debemos recordar que hay que tener en cuenta que las opciones de desarrollo del dispositivo deben estar habilitadas. Esto lo conseguíamos en Ajustes -> Sistema -> Acerca del teléfono -> Número de compilación, y pulsando varias veces en el número de compilación hasta que aparece el mensaje de la siguiente imagen:


[Sección de "Acerca del teléfono"]

Si nos salimos de esa sección, y nos dirigimos a “Opciones de desarrollo” , veremos que tenemos activadas las siguientes opciones de la imagen:

[Seccion de "Opciones de desarrollo"]

Cuando conectamos el dispositivo Android a nuestro pc (o lo conectamos al host de nuestra máquina virtual), la primera vez nos solicitará permiso a modo de “confiamos en este dispositivo?” (le diremos que si :P) y abriremos en nuestro pc una consola de comandos en la carpeta en la que hemos descargado las herramientas anteriormente. Escribiremos adb devices para comprobar los dispositivos disponibles de entre los conectados (si hubiera más de uno, nos lo mostraría listado también).

A continuación, usaremos package manager (pm) con adb shell para listar los paquetes instalados en el dispositivo:

adb shell pm list packages | sort

y para mostrar dónde se encuentra el fichero .apk :

adb shell pm path com.king.candycrushsaga

package:/data/app/com.king.candycrushsaga-1/base.apk


Y finalmente escribimos adb pull para descargar el apk.

adb pull data/app/com.king.candycrushsaga-1/base.apk


En último lugar, si tenemos la aplicación instalada en nuestro dispositivo y queremos extraer su correspondiente apk, también podremos hacer uso de Apk Extractor:



Una vez instalada en el dispositivo Android, al entrar en la aplicación, nos mostrará todas las aplicaciones que hay instaladas en el dispositivo (tanto instaladas por el usuario, como propias del sistema). Cuando queramos extraer el apk de una de las aplicaciones, pulsaremos en el menú lateral de esa aplicación y elegiremos la opción de “compartir”, y en el momento en el que se nos abre el conjunto de aplicaciones a través de las cuales podremos compartir el fichero apk extraído, nos indicará la propia aplicación (Apk Extractor) que ha extraído el apk en la carpeta indicada, por lo que el último paso ya sería buscar la carpeta y realizar las pruebas que deseemos con el apk.




Espero que os hayan resultado de utilidad las diferentes opciones comentadas :)

Muchos maullidos!

M