1.13.2021

Pentesting Mobile 101: Métodos para obtener un APK (ADB, Tiendas Alternativas, Raccon) para realizar un análisis

En esta entrada veremos diferentes formas para obtener el APK que deseamos analizar, con el fin de realizar un análisis estático con algún framework o de forma manual, el proceso de como realizar un análisis estático, que debemos de buscar o tratar de encontrar como malas prácticas lo tendremos en próximas entradas conociendo herramientas que nos ayudan para este proceso, como también comandos desde la misma terminal. 

 
Cuando uno inicia un proceso de pentesting de una aplicación móvil, lo primero que procedemos es en obtener el APK Android Aplication Package, llegando a descargar directamente de la Playstore tienda oficial de android, utilizando ADB (Android Device Bridge), nos permite descargarlo directamente, para ello comenzamos viendo el uso de ADB. 

Comandos básicos de ADB

Antes de todo iniciaremos conociendo un poco sobre ADB los comandos básicos, para el cual necesitamos que este conectado el dispositivo móvil al ordenador, o en otro caso un emulador iniciado.
  
adb devices: Lista los dispositivos conectados en el ordenador. 
adb push: Copia un archivo desde el equipo al dispositivo.
adb pull: Descargar un archivo desde el dispositivo al equipo. 
adb shell: Permite obtener una shell interactiva en el dispositivo 
adb install: Permite realizar la instalación de un APK al dispositivo.
adb uninstall: Desinstalar una aplicación del dispositivo. 

NOTA: Se puede trabajar con ADB a través de una conexión inalámbrica, como siempre para profundizar en los comandos de ADB ejecutar adb --help 

Descargando por ADB a través de PlayStore 

Este llega a ser la forma más rápida y practica para obtener un APK ya que solo necesitamos descargar desde la tienda la aplicación. 

 
Después de ello debemos de conectar el cable USB al ordenador para con ADB realizar la descarga del apk, considerando que el dispositivo debe de estar en modo desarrollador y habilitar la depuración por USB.


Con el siguiente comando procedemos a buscar el nombre del paquete apk, en este caso sabemos el nombre del juego. 
Snifer@L4b's:$ adb shell pm list packages | grep -i NombredelAPK


Luego de identificar y saber cual es el APK que deseamos descargar procedemos a descargarlo.
Snifer@L4b's:$ adb shell pm path <apk> 
Snifer@L4b's:$ adb pull <path_apk> 
En las siguientes capturas veremos el proceso con el APK de ejemplo que estamos utilizando.
Después de obtener el path procedemos a descargar con pull y el path completo. 



Ya con ello contamos con el apk listo para instalar en otro dispositivo, o proceder con el análisis del mismo.

Sitios Online - tiendas alternativas de android.

Muchos sitios online o tiendas alternativas nos permiten obtener una versión antigua del APK, a partir de ello obtener endpoints, datos que fueron retirados desde la Aplicación pero no así en el servidor con el que interactua, incluso podrían contar con ausencia de controles que en la ultima versión si fue implementado. 

Apkpure: https://apkpure.com/es/
Apkmirror: https://www.apkmirror.com
Apps.evozi: https://apps.evozi.com/apk-downloader/


Muchas o pocas veces podremos encontrar algún apk en otras tiendas de Android como ser:
  • Aptoide 
  • F-droid 
  • Amazon Appstore
  • Etf
NOTA: Tengan en cuenta que muchas veces algunas aplicaciones no se encuentran disponibles en estas tiendas alternativas, además de considerar que estas pueden ser modificadas

Descargando con Raccon desde la tienda de Android

Raccon una utilidad escrita en Java, que cuenta con una versión (FREE) Gratuita y se deseamos tener algunos extras se debe de pasar por caja, inicialmente con la versión gratuita se tiene para realizar las cosas según el uso que lo necesitamos extraer APK de la tienda de Android sin contar con el acceso a un dispositivo móvil o de manera directa. 



Primero procedemos a descargar el fichero .jar que se encuentra en su sitio oficial Racoon   al ingresar identificamos que es un .jar por lo cual debemos de contar en nuestro equipo con Java, el proceso de instalacion y/o configuracion corre por cada uno. 

Iniciamos la herramienta con:
java -jar Raccon.jar
Visualizamos la siguiente interfaz. 

Lo primero que configuramos es una cuenta de gmail para que realice la conexión y autenticación con Google Play.  

Después nos pedirá si deseamos registrarlo con un dispositivo nuevo, siempre use esta opción. 


Después de configurar la cuenta de correo, podremos ir al buscador y poner el nombre de la aplicación que deseamos.



Al dar click sobre la aplicación  tenemos en la parte inferior izquierda para realizar la descarga. 


La ubicación donde se descarga se encuentra en HOME/USER/content/apps/nombredelpaquete.

Otra ventaja de Raccon es que nos permite realizar un downgrade de las aplicaciones para ello en la parte superior Market  -> Downgrade APP, lo que debemos de estar seguros es la versión a la que queremos hacer el downgrade.


Creo que es necesario especificar que existen muchos otros métodos como ser scripts en python que nos permiten realizar las descargas desde la tienda oficial, o alternativas de tal manera que permite automatizar muchas tareas. 
  • Quisieras que abordemos algún tema en profundidad de lo mencionado en esta entrada, escribe en los comentarios.
  • Desearías que estas entradas  se encuentren disponibles en formato video en el canal de Youtube?
  • Conoces otras tiendas alternativas o métodos?
“Dime y lo olvido, enséñame y lo recuerdo, involúcrame y lo aprendo”. Benjamin Franklin.

Regards, 
Snifer


Compartir:

0 comentarios:

Publicar un comentario

Hola visitante! deja tu comentario sobre la entrada no spam!