5.08.2020

Pentesting Mobile: Visualizacion de Log's en Android con Pidcat mejora de Logcat

Cuando realizamos una auditoria de una app en android, es necesario ver si se cuenta con la generación de logs no "controlada", lo mencionamos entre comillas debido a que es decir que a los desarrolladores se les olvido quitar los queridos console.log("Funciona! wiii: User:Snifer Password:123456789#S")  vale aclarar que esto puede variar entre las diferentes tecnologías de desarrollo pero esta mas que claro lo que sucede cuando se expone información sensible por este medio.



Seremos "optimistas" por medio de los logs, jamas podremos obtener acceso a información sensible, pero nunca esta demás realizar esta prueba e identificar fallas, esta visualización de los logs es posible realizarlo con el propio adb ya que cuenta con logcat, a continuación veremos el uso de la herramienta con la aplicación  DIVA que la misma esta pensada para la realización de pruebas con las vulnerabilidades en Android.

Vulnerabilidades en DIVA

El que usaremos en esta entrada sera el primero 1. Insecure Logging que nosotros ponemos el numero de nuestra tarjeta de crédito y el mismo se ve reflejado en los log's del dispositivo móvil.


Entonces empezamos con logcat iniciando con el siguiente comando, el cual nos brindara todos los logs que sean generados en el dispositivo.
Snifer@L4b's$ adb logcat 
Visualización de logs


Al ejecutar el comando tenemos todos los logs del dispositivo para llegar a identificar, si vemos serán de todas las apps que se encuentren ejecutándose en el dispositivo móvil, entonces para evitar ver todos los logs e ir viendo uno por uno podemos utilizar podemos utilizar el siguiente comando primero para identificar el nombre del paquete.

Obtenemos con el siguiente comando los nombres de los paquetes de las aplicaciones instaladas en el dispositivo esto de manera general.
Snifer@L4b's$ adb shell pm list packages

Listado de apps instaladas

Al ejecutar el siguiente comando podremos identificar el nombre del paquete, con el fin de utilizar logcat e identificar unicamente de nuestro paquete objetivo, basta con hacer un grep del listado de los paquetes obtenidos.
Snifer@L4b's$ adb shell pm list packages | grep -i "nombre_APP"
Identificando el package
Snifer@L4b's$  adb logcat -B "jakhar.aseen.div"
Identificando el nombre del paquete ejecutamos con la bandera respectiva teniendo como resultado lo que se muestra en la siguiente captura.

Visualización de los logs

Como muchos dicen para gustos colores, y en mi caso por mi simpatía para atender a algunas cosas prefiero que este debidamente categorizado, en ese proceso llegue a Pidcat la cual permite obtener de una manera mas agradable el log de logcat. Después de realizar la instalación de Pidcat, debemos de conocer el uso de la misma ejecutando la flag -h tenemos el siguiente resultado.
Snifer@L4b's$ pidcat -h                                                                                                           
usage: pidcat [-h] [-w N] [-l {V,D,I,W,E,F,v,d,i,w,e,f}] [--color-gc]
              [--always-display-tags] [--current] [-s DEVICE_SERIAL] [-d] [-e]
              [-c] [-t TAG] [-i IGNORED_TAG] [-v] [-a]
              [package [package ...]]

Filter logcat by package name

positional arguments:
  package               Application package name(s)

optional arguments:
  -h, --help            show this help message and exit
  -w N, --tag-width N   Width of log tag
  -l {V,D,I,W,E,F,v,d,i,w,e,f}, --min-level {V,D,I,W,E,F,v,d,i,w,e,f}
                        Minimum level to be displayed
  --color-gc            Color garbage collection
  --always-display-tags
                        Always display the tag name
  --current             Filter logcat by current running app
  -s DEVICE_SERIAL, --serial DEVICE_SERIAL
                        Device serial number (adb -s option)
  -d, --device          Use first device for log input (adb -d option)
  -e, --emulator        Use first emulator for log input (adb -e option)
  -c, --clear           Clear the entire log before running
  -t TAG, --tag TAG     Filter output by specified tag(s)
  -i IGNORED_TAG, --ignore-tag IGNORED_TAG
                        Filter output by ignoring specified tag(s)
  -v, --version         Print the version number and exit
  -a, --all             Print all log messages

Para realizarlo directamente con pidcat hacemos uso de la siguiente manera

Snifer@L4b's$ pidcat jakhar.aseen.div

Una vez que ejecutamos tenemos el resultado especifico de la aplicación que estemos analizando,y al ejecutar vemos el log especifico que mandamos 37113 y el primer dato que enviamos desde el dispositivo.
Ejecución de Pidcat

Se llega a ver en el mismo pidcat la opción de filtrar por algún tag en especifico o ignorarlo completamente con las flags -t y -i ya depende de cada uno como lleguemos a usar la herramienta y mejoremos en el análisis y detección de vulnerabilidades en aplicaciones móviles. 
La mente es como un paracaídas: sólo funciona si se abre. - Albert Einstein.

Regards,
Snifer



Compartir:

0 comentarios:

Publicar un comentario

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