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:
- rastro
- seguimiento
- 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:
- Instala la aplicación
- Configure ssh directamente en su Termux Shell
- 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/
¿Quieres escuchar más?
Una reunión de consultoría gratuita incluida.