Pingüino

Seguimiento de aplicaciones de Android con Termux y Linux Utilities

El siguiente artículo demostrará cómo usar las utilidades de Linux "anticuadas" y Termux para rastrear aplicaciones de Android.

Usaremos Termux linux VM dentro de un dispositivo Android para instalar utilidades comunes de Linux junto con aplicaciones de Android.

Las principales herramientas que utilizaremos son:

  1. rastro
  2. seguimiento
  3. Notificar reloj

*Se necesita un dispositivo rooteado

Que es Termux

Termux es un emulador de terminal para Android. Se parece más a una distribución de Linux que a una simple aplicación de terminal, debido a la gran cantidad de paquetes disponibles, como clang, ffmpeg, openssh, python y vim.

Termux no es un SO ni un emulador de hardware. Comparte el mismo entorno que otras partes del sistema operativo Android.

¿Por qué necesitamos Termux?

Respuesta corta: administrador de paquetes APT.
Respuesta larga: Android no tiene un administrador de paquetes o repositorios integrados. Si desea utilizar binarios como wget o cURL en Android, deberá buscar manualmente a alguien que los haya compilado o, lo que es peor, compilarlos usted mismo.

Android tiene su propia implementación para libc (Bionic) que se creó para permitir que los desarrolladores de aplicaciones tengan legalmente aplicaciones de código cerrado. Esto hace que los binarios ARM normales de los repositorios regulares fallen y compilar nuevos binarios sea una tarea no trivial. Termux elimina todos estos problemas al proporcionar un espacio de usuario de libc que permite ejecutar binarios ARM "normales".

Cómo configurar Termux

Hay 3 pasos principales:

  1. Instala la aplicación
  2. Configure ssh directamente en su Termux Shell
  3. Bonus - ejecutar termux desde adb shell

Utilidades útiles para aplicaciones de análisis dinámico

rastro

Strace es una utilidad de espacio de usuario de diagnóstico, depuración e instrucción para Linux. Se utiliza para monitorear y alterar las interacciones entre los procesos y el kernel de Linux, que incluyen llamadas al sistema, entregas de señales y cambios en el estado del proceso. Con muy poco conocimiento previo, puede ver todas las interacciones de archivos de un proceso específico

strace-p -e rastreo=archivo

Con strace puede analizar el comportamiento inusual de la memoria, la señal del proceso y mucho más. Es importante tener en cuenta que cuando se trata de aplicaciones de Android, la JVM realiza una gran cantidad de lógica, por lo tanto, se agregarán muchas llamadas de grange a su seguimiento.

seguimiento

seguimiento es una bifurcación de strace con modificación de Android que le permite conectar la funcionalidad específica de Android, lo cual es muy útil para rastrear aplicaciones de Android. Jtrace es una herramienta útil que tuvo numerosas actualizaciones interesantes durante 2021. *No se necesita Termux para esta

Notificar reloj

A veces, strace no es suficiente, ya que desea saber si se está utilizando un archivo y cuándo, pero no está seguro de qué proceso lo está utilizando. Por suerte, inotifywatch resuelve precisamente eso. inotifywatch escucha los eventos del sistema de archivos usando la interfaz inotify de Linux, luego genera un recuento resumido de los eventos recibidos en cada archivo o directorio. De esta manera puede rastrear carpetas específicas y no procesos específicos.

Chattr

Chattr (cambiar atributos) permite a los usuarios cambiar los atributos del archivo.

Los atributos de archivo son parte de un mecanismo de seguridad similar a los permisos de Linux (chmod), con solicitudes más detalladas.

Por ejemplo, puede permitir que un usuario agregue texto a un archivo, pero evitar que el usuario elimine el archivo con el siguiente comando

chattr-a 

Esto puede ser muy útil al investigar programas maliciosos que utilizan archivos temporales y eliminarlos al instante.

También puede usar el comando con bandera recursiva para directorios completos:

chattr -Ra /data/data/com.bad.package/files/

Ir al contenido