Manchot

Suivi des applications Android avec les utilitaires Termux et Linux

L'article suivant montrera comment utiliser les utilitaires Linux "à l'ancienne" et Termux pour tracer les applications Android.

Nous utiliserons Termux linux VM à l'intérieur d'un appareil Android afin d'installer des utilitaires Linux communs aux côtés des applications Android.

Les principaux outils que nous utiliserons sont :

  1. strass
  2. J trace
  3. Notifier la montre

* Un appareil rooté est nécessaire

Qu'est-ce que Termux

Termux est un émulateur de terminal pour Android. Il ressemble plus à une distribution Linux qu'à une simple application de terminal, en raison du grand nombre de packages disponibles tels que clang, ffmpeg, openssh, python et vim.

Termux n'est pas un émulateur de système d'exploitation ou de matériel. Il partage le même environnement que les autres parties du système d'exploitation Android.

Pourquoi avons-nous besoin de Termux ?

Réponse courte : Gestionnaire de packages APT.
Réponse longue : Android n'a pas de gestionnaire de packages ni de référentiels intégrés. Si vous souhaitez utiliser des binaires tels que wget ou cURL dans Android, vous devrez rechercher manuellement quelqu'un qui les a compilés, ou pire, les compiler vous-même.

Android a sa propre implémentation pour libc (Bionic) qui a été créée pour permettre aux développeurs d'applications d'avoir légalement des applications à source fermée. Cela fait échouer les binaires ARM normaux des repos réguliers et compiler de nouveaux binaires une tâche non triviale. Termux élimine tous ces problèmes en fournissant un espace utilisateur libc qui permet d'exécuter des binaires ARM "normaux".

Comment configurer Termux

Il y a 3 grandes étapes :

  1. Installez l'appli
  2. Configurez ssh directement sur votre Termux Shell
  3. Prime - exécuter termux à partir du shell adb

Utilitaires utiles pour les applications d'analyse dynamique

strass

Strace est un utilitaire de diagnostic, de débogage et d'instruction en espace utilisateur pour Linux. Il est utilisé pour surveiller et altérer les interactions entre les processus et le noyau Linux, qui incluent les appels système, les livraisons de signaux et les changements d'état des processus. Avec très peu de connaissances préalables, vous pouvez afficher toutes les interactions de fichiers d'un processus spécifié

strace-p -e trace=fichier

Avec strace, vous pouvez analyser le comportement inhabituel de la mémoire, traiter le signal et bien plus encore. Il est important de noter que lorsqu'il s'agit d'applications Android, une grande partie de la logique est effectuée par la JVM, par conséquent, de nombreux appels de grange seront ajoutés à votre trace.

J trace

J trace est un fork de strace avec une modification Android qui lui permet d'accrocher des fonctionnalités spécifiques à Android, ce qui est très utile pour tracer les applications Android. Jtrace est un outil utile qui a eu de nombreuses mises à jour intéressantes en 2021. *pas besoin de Termux pour celui-ci

Notifier la montre

Parfois, strace n'est pas suffisant car vous souhaitez savoir si/quand un fichier est utilisé, mais vous n'êtes pas sûr du processus qui l'utilise. Heureusement, inotifywatch résout exactement cela. inotifywatch écoute les événements du système de fichiers à l'aide de l'interface inotify de Linux, puis génère un décompte récapitulatif des événements reçus sur chaque fichier ou répertoire. De cette façon, vous pouvez tracer des dossiers spécifiques et non des processus spécifiques.

Chattr

Chattr (modifier les attributs) permet aux utilisateurs de modifier les attributs des fichiers.

Les attributs de fichier font partie d'un mécanisme de sécurité similaire aux autorisations Linux (chmod), avec des requêtes plus fines.

Par exemple, vous pouvez autoriser un utilisateur à ajouter du texte à un fichier, mais l'empêcher de supprimer le fichier à l'aide de la commande suivante

chattr-a 

Cela peut être très utile lors de la recherche de logiciels malveillants qui utilisent des fichiers temporaires et les suppriment instantanément.

Vous pouvez également utiliser la commande avec un indicateur récursif pour des répertoires entiers :

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

Passer au contenu