Durchführung einer APK-Analyse mit AppMon

Es gibt viele Werkzeuge, die es Analytikern und Pen-Testern vereinfachen, dass Verhalten von Mobile Malware zu untersuchen. Im Fall von Android ist so ein Tool die Anwendung AppMon. Durch die binäre Instrumentation erlangt der User Zugriff auf Log-Dateien. Diese zeigen, welche Funktionen benutzt werden und welche Parameter zum Einsatz kommen.
In diesem Artikel wollen wir uns genauer mit der Funktionsweise der Anwendung beschäftigen.

Wie funktioniert AppMon?

Diese Anwendung benutzt eine leistungsfähige „Multi-Platform Dynamic Instrumentation“–Umgebung namens Frida. AppMon beinhaltet eine Reihe von Skripten, die auf der Plattform basieren. Analytiker können durch das System gestartete Events ausspionieren. Die Resultate können dann in einem Web Interface für eine bessere Übersicht gefiltert und sortiert werden.
Skripte erlauben dem Anwender sich in AppMon einzuklinken und den normalen Ablauf der App zu manipulieren, wie man es im unteren Video sehen kann. Natürlich können Analytiker auch ihre eigenen Skripte in die App einfließen lassen.

Darüber hinaus ermöglicht es die Verwendung von Anwendungen auf Android und iOS. Dank Fridas Flexibilität kann es auf mehreren Plattformen ausgeführt werden (Linux, Mac OS, und auch Windows, nach einigen Änderungen am Code).

Installation von AppMon

Die Voraussetzungen für den Betrieb von AppMon sind natürlich die Installation von Frida und auch einige Python-Module, die über den folgenden Befehl ausgeführt werden können:
sudo -H pip install argparse frida flask termcolor
Dann können wir das Projekt aus dem Github-Repository kopieren oder die entsprechende komprimierte Datei herunterladen. Wer einen Windows-Computer verwendet, muss den absoluten Pfad ändern, der in der merge_script_path-Variable der appmon.py-Datei definiert ist, um auf den temporären Ordner im Windows-Dateisystem oder jeden anderen benötigten Ordner zu verweisen. Das kann zum Beispiel wie folgt aussehen:
merge_script_path = ‘C:/Users/<nombre_usuario>/AppData/Local/Temp/merged.js’
Nun müssen wir unseren eigenen Emulator mit Android 4.4.x erzeugen, da Frida nur für 4.4.x als stabil gilt. Anschließend können wir die Dateien auf Frida übertragen und den Server starten.
Es sollte jetzt die Anwendung installiert werden, die wir analysieren möchten. Der beste Weg dafür führt uns zur adb-Shell, da einige Emulatoren die App starten, wenn es per Drag & Drop installiert wird. Wenn wir aber noch nicht bereit sind, den AppMon Befehl auszuführen, können wir einige wichtige Funktionalitäten nicht protokollieren.

Analysierung der zu untersuchenden Anwendung

In unserem Beispiel nehmen wir Android / Torec.A – eine Malware, die in der Lage ist, ankommende Nachrichten, Anrufe und andere sensible Informationen von einem Mobiltelefon zu protokollieren und über Tor zu kommunizieren. Die Android-Manifest-Datei der App sagt uns, dass der Name des Pakets com.baseapp ist. Wir benötigen diese Information, damit wir AppMon sagen können, welcher Prozess abgehört werden soll. Als nächstes verwenden wir die Konsole, um folgenden Befehle einzugeben:
Android Console Python AppMon
Bei Windows-Nutzern sieht die Konsole wie in dem folgenden Bild aus. Wir können sehen, dass AppMon einen einfachen Server mit Python erstellt, der standardmäßig über Port 5000 erreicht wird. Danach können wir auf die Web-Filterschnittstelle zugreifen, aber erst nachdem wir auf der Konsole sehen, dass etwas „gedumpt“ wurde.
Windows Console Python AppMon
Dann können wir den Browser öffnen, aus der Liste die App auswählen, die wir analysieren möchten, und auf „Next“ klicken.
AppMon Browser localhost:5000

AppMon Browser localhost:5000 App select
In einem sich öffnenden Ereignisprotokoll können wir einige Operationen sehen, die während der kurzen Ausführungszeit auf dem System stattgefunden haben:
AppMon Browser localhost:5000 Overview
Nun wählen wir Android/Monitor.Rasatremon.A und führen den Prozess analog durch. Dieser „Couple Tracker“ verbreitete sich großflächig in Brasilien. Wir installieren die Anwendnung und starten unser Tool AppMon:
Windows Console Python Android/Monitor.Rasatremon.A
Nachdem die Anwendung eine Weile gelaufen ist, können die Ergebnisse um Browser angesehen werden. Dort finden wir alle Details, wie zum Beispiel welche Netzwerkpakete mit über HTTP-Protokoll gesendet wurden:
AppMon Browser localhost:5000 full details
_
Das ist nur eine kleine Demonstration dessen, was mit AppMon alles machbar ist. Ebenso ermöglicht die Anwendung, Verschlüsselungsschlüssel und viele andere Parameter wiederherzustellen. Insgesamt ist AppMon eine tolle Anwendung für Analytiker, die eine Menge Zeit sparen wollen.

 

Image credits: ©Abraham Williams/Flickr

Autor , ESET