Aus Linux-Magazin 03/2015

Bericht: Android-Hacking-Workshop für Strafverfolger

© Jesse-lee Lang, 123RF

Auf den Schreibtischen von Ermittlern, die Internetstraftaten aufzuklären haben, stapeln sich die konfiszierten Android-Telefone. Wie sie Smartphones hacken, Apps dekompilieren oder gar ein Botnetz aus Androiden aufbauen, das trainieren Strafermittler vorher – zusammen mit einem bestellten Hacker.

Sechs Jahre ist es her, dass in einem Workshop in Freiburg ein als Hacker bekannter IT-Spezialist auftrat, um deutschen Strafverfolgern mal zu zeigen, wie man ein Botnetz baut, wie leicht es schon damals war, einfache Trojaner zu erstellen, und wie die Tools unter dem Namen Ghostnet sogar diplomatische Verwicklungen in Chinas Kampf um Tibet auslösten [1]. Der Hacker Tobi nutzte einen Schulungsraum im Badischen, um innerhalb weniger Stunden mal eben einen Command- und Control-Server aufzusetzen und die Windows-Systeme in willfährige Bots zu verwandeln.

Android ist heute das Ziel

War 2008 das dominante Betriebssystem noch Windows XP, so gilt heute der Fokus von Anwendern, Strafverfolgern und Angreifern ganz klar mobilen Geräten mit dem Linux-Derivat Android. “Der Tatort ist heute weltweit, Schadsoftware bedroht jeden, im Kanzleramt und Smartphone-Besitzer weltweit”, erklärt ein anwesender Strafverfolger.

Auch Ende 2014 hat sich Tobi wieder bereit erklärt, sein Hackerwissen den Behörden zur Verfügung zu stellen. Und wie 2008 zeigt er dafür aussagekräftige Beispiele. War 2008 noch die Programmiersprache C der State of the Art, so erwartet er diesmal von den Teilnehmern, dass sie auch in die Interna von Java eingeweiht und darauf vorbereitet sind, selbst Quelltext in die Hand zu nehmen. Wenig Verständnis zeigt er dafür, dass die meisten der Forensiker diese Voraussetzungen nur rudimentär mitbringen: “Im Alltag brauchen wir das selten”, so der Tenor der Beamten.

“Na, dann code ich halt ein wenig für euch rum, wenn ihr das nicht könnt”, zuckt der Hacker mit den Schultern, schiebt die Kapuze seines Pullis wieder hoch. Derlei “Coden” macht er scheinbar lieber in dunkler Umgebung.

Mit den klassischen forensischen Werkzeugen wie Sleuthkit [2], Log2timeline [3] und dem Bulk_extractor [4] sind die Teilnehmer hingegen vertraut, Googles Android-SDK ist jedoch für viele noch Neuland. Der klassische Pfad zur Datensicherung verlangt aber neue Ansätze [5]: Das gewohnte Ewfacquire ([6], [7]) steht nicht bereit, statisch kompilierte Binaries aus der Forensik für die ARM-Architektur sind nur in geringem Umfang vorhanden. “Back to the Roots” lautet das Motto: Wieder mal sind die Klassiker Dd oder Netcat gefragt.

Mit ihnen lassen sich Images erstellen und über die Android Debug Bridge per TCP-Forwarding aus dem Smartphone ziehen, so wie der Artikel im Linux-Magazin [5] es beschreibt. Doch Tobi hat noch eine bessere Empfehlung im Gepäck (“für die Coder unter euch”). Drozer ([8], Abbildung 1, auch auf der DELUG-DVD) heißt das Tool, das er als Debian-Paket via Torrent (“vom Classroomserver”) für alle zum Download bereitgestellt hat.

Abbildung 1: Drozer gibt via Remoteverbindung Informationen über laufende Apps aus.

Abbildung 1: Drozer gibt via Remoteverbindung Informationen über laufende Apps aus.

Drozer landet auf dem Linux-PC, für das zu testende Android muss der Forensiker nun einen Agenten erstellen und diesen ins Smartphone installieren. Fürs Training reicht ein virtuelles Android, das sich mit dem SDK zusammenstellen lässt. »drozer build agent« legt das passende Apk-File an, das »adb install agent.apk« im Smartphone installiert. “Zuvor müsst ihr aber noch ein Forwarding einrichten”, fügt Tobi an. Das gelingt mit:

adb forward tcp:31415 tcp:31415

Wem das bekannt vorkommt, der erkennt hier bereits die Voraussetzung für das Klonen von Smartphone-Partitionen mit den zuvor erwähnten Dd und Netcat aus dem Artikel [5].

Mit »drozer start agent« startet dann die installierte App aus dem Android-Hauptmenü und verbindet sich mit der Linux-Maschine. Anschließend erhält der Admin die Drozer-Konsole aus Abbildung 1 und kann damit spielerisch Erfahrung sammeln.

Weil die “Cops ja noch etwas Werkzeug zum Spielen brauchen, installieren wir halt noch die Busybox für euch, damit ihr den üblichen Konsolen-Kram wie Grep und so habt”, lästert Tobi ironisch-hilfsbereit, startet »drozer console connect« und tippt folgende Befehle ein:

run tools.setup.busybox
run shell.start
busybox

Als Erstes erfahren die Kursteilnehmer dann, wie sie eine Liste aller installierten Apps erzeugen und deren Permissions prüfen. Eine Taschenlampen-App, die Zugriff aufs Adressbuch oder das Netzwerk hat oder verlangt, macht sich schließlich verdächtig. Der folgende Befehl gibt etwa die »android.permissions« für das LED-Blitzlicht aus:

run app.package.info -a com.surpax.ledflashlight.panel

Wer jetzt eine solche App aus dem Smartphone herausziehen und analysieren will, braucht weitere Tools, beispielsweise Dex2jar [9] und einen Java-Decompiler, am besten mit einem GUI wie bei JD [10] – nicht zu verwechseln mit dem beliebten Jdownloader, der unter der gleichen Abkürzung firmiert, seine Stärken aber eher in den Kreisen illegaler Filesharer hat.

Die eigene Malware

Tobi hat aber noch mehr im Angebot: “Um echte Schadsoftware zu analysieren, brauchen wir ja auch echte Malware. Ich habe da mal was vorbereitet. […] Wir machen das Ganze mit einem Forensik-Beispiel aus dem Cyber Crime Workshop 2014 in Australien [11], mit dem Memory Dump von dort. Ihr Forensiker könnt das ja mal eben mit Volatility angucken und schnell die Schadsoftware rausziehen.” Der Memory Dump liegt ebenfalls auf der DELUG-DVD, ein Artikel über das Memory-Analysetool Volatility unter [12]. 120 Punkte bekam in dem Challenge der Anwender, der die Aufgabe “Flappy Bird” beherrschte. Dafür musste er die Prozessliste mit Volatility erstellen, Listing 1 zeigt die Lösung.

Listing 1

Prozessliste mit vol.py erstellen

01 # vol.py --profile=LinuxGoldfish_2_6_29ARM -f memory.dmp linux_pslist
02 [...]
03 0xe8ebd000   sh                    1255            10061           10061      0x28db4000   2014-02-25 05:12:28 UTC+0000
04 0xe8e60000   android.contacts      1321            10010           10010      0x25b78000   2014-02-25 05:14:43 UTC+0000
05 [...]
06 0xe4e97c00   android.settings      1420             1000            1000      0x24ec4000   2014-02-25 05:16:03 UTC+0000
07 0xf3fef000   sh                    1454                0               0      0x28e64000   2014-02-25 05:16:24 UTC+0000
08 0xf3f9ac00   sh                    1461                0               0      0x28e58000   2014-02-25 05:16:25 UTC+0000
09 0xe8cb4c00   insmod                1468                0               0      0x28c90000   2014-02-25 05:16:44 UTC+0000
10 [...]

Das Listing zeigt gleich drei »sh« -Befehle – auf einem Smartphone mehr als verdächtig. Zwar wird da Volatility selbst auch darunter sein, aber die Prozesse mit ID 1255 und UID 10061 sollte der Tester genauer untersuchen – spätestens wenn dabei der Linux-Befehl Pstree auf die App Httpmon hinweist. Da das Smartphone nicht zur Verfügung steht, muss die App aus dem Arbeitsspeicher extrahiert werden – Listing 2 zeigt die dafür notwendigen Befehle.

Listing 2

Eine App extrahieren

01 # vol.py --profile=LinuxGoldfish_2_6_29ARM  -f memory.dmp linux_dentry_cache >  bodyfile
02 # mactime -b bodyfile > filelist.txt
03 # cat filelist | grep -i httpmon.apk
04    124408 ..c. 0 1000     1015     174      Download/[Megafileupload]org.jtb.httpmon.apk
05 Mon Jun 01 2099 23:51:36   124408 .a.. 0 1000     1015     174      Download/[Megafileupload]org.jtb.httpmon.apk
06 [...]
07 # vol.py --profile=LinuxGoldfish_2_6_29ARM -f memory.dmp linux_find_file -F "/mnt/sdcard/Download/[Megafileupload]org.jtb.httpmon.apk"
08
09 Volatility Foundation Volatility Framework 2.4
10 Inode Number          Inode File Path
11 ---------------- ---------- ---------
12   174 0xf36d6920 /mnt/sdcard/Download/[Megafileupload]org.jtb.httpmon.apk
13
14 # vol.py --profile=LinuxGoldfish_2_6_29ARM -f memory.dmp linux_find_file -i 0xf36d6920   -O /tmp/httpmon_extracted.apk
15 # unzip /tmp/httpmon_extracted.apk -d /tmp/httpmon
16 ls -l
17 insgesamt 144
18 drwxr-xr-x  4 root root  4096 Nov 17 09:33 ./
29 drwxrwxrwt 12 hpm  hpm  12288 Nov 17 09:33 ../
20 -rw-r--r--  1 root root  6264 Nov 27  2010 AndroidManifest.xml
21 -rw-r--r--  1 root root 98532 Feb 21  2014 classes.dex
22 drwxr-xr-x  2 root root  4096 Nov 17 09:33 META-INF/
23 drwxr-xr-x  4 root root  4096 Nov 17 09:33 res/
24 -rw-r--r--  1 root root 10808 Nov 27  2010 resources.arsc
25
26 # d2j-dex2jar.sh classes.dex
27 # dex2jar classes.dex -> classes-dex2jar.jar

Mit dem Befehl »jd-gui classes-dex2jar.jar« lässt sich nun das Jar-File detailliert bearbeiten – Tobi genauer “die Software für jeden beliebigen Zweck improven”. Hintertüren, Backdoors oder auch ein Client für ein ganzes Botnetz ließen sich so integrieren. Ein böswilliger Angreifer würde die Software dann wieder aufs Smartphone schieben und hoffen, dass der Besitzer das neue Verhalten möglichst lange nicht bemerkt.

Mobiles Botnetz

Tobi springt derweil weiter zu seinem Lieblingsthema: “Das machen wir heute aber nicht mehr, denn jetzt wollen wir erst mal etwas Spaß haben. Ich hab euch da grade mal ein angepasstes Command & Controlcenter mitgebracht, das hab ich von einer französischen Webseite.” Anschließend zeigt er, wie sich die Client-App des Androrat-Projekts (Server und Client auf der DELUG-DVD, zur Sicherheit auf eine einzige, feste IP reduziert) mit dem Server verbindet und fortan fast alle Dienste des Smartphones zur Verfügung stellt.

Standortüberwachung

Provider, IMEI, Rufnummer und vieles mehr sind zu sehen (Abbildung 2). Auch mit den versprochenen Telefongesprächen und SMS klappt alles, lediglich die Kamera zickt. Man hört zwar das Geräusch des Verschlusses, das Bild erscheint leider nicht, statt dessen eine Fehlermeldung. Andererseits besonders bedenklich: Auch die Bewegungsdaten des Smartphones sind mit dem Androrat kontrollierbar.

Abbildung 2: IMEI, SIM und vieles mehr: Mit Androrat meldet sich ein Smartphone brav als Bot eines Botnetzes am zentralen Server an – inklusive vieler interessanter Funktionen wie SMS- und Telefonüberwachung und GPS-Tracking.

Abbildung 2: IMEI, SIM und vieles mehr: Mit Androrat meldet sich ein Smartphone brav als Bot eines Botnetzes am zentralen Server an – inklusive vieler interessanter Funktionen wie SMS- und Telefonüberwachung und GPS-Tracking.

Der Screenshot in Abbildung 3 zeigt die aktuelle Position des Smartphones. Hier hat Android Rat die Koordinaten mittels WLAN ermittelt, das ist aber auch per UMTS möglich. Die Abweichungen zum tatsächlichen Standort liegen typischerweise bei etwa 200 Metern.

Abbildung 3: Komfortable GUIs: Androrat bringt alles mit, was ein Hacker braucht – und macht die Remote-Überwachung erschreckend einfach.

Abbildung 3: Komfortable GUIs: Androrat bringt alles mit, was ein Hacker braucht – und macht die Remote-Überwachung erschreckend einfach.

Infos

  1. Markus Feilner, “Der Paulus von Freiburg”: Linux-Magazin 03/09, S. 76
  2. Hans-Peter Merkel, Markus Feilner, “Wider das Vergessen”: Linux-Magazin 03/11, S. 90
  3. Dennis Schreiber, “Besser nachlesen”: Linux-Magazin 03/10, S. 82
  4. Hans-Peter Merkel, Markus Feilner, “Italienische Aufklärung”: Linux-Magazin 12/10, S. 84
  5. Hans-Peter Merkel, Markus Feilner, “Rettung naht”: Linux-Magazin 01/15, S. 74
  6. Hans-Peter Merkel, Markus Feilner, “Fenster-Kit”: Linux-Magazin 06/08, S. 38
  7. Ewfacquire: http://linux.die.net/man/1/ewfacquire
  8. Drozer: https://www.mwrinfosecurity.com/products/drozer/
  9. Dex2jar: https://code.google.com/p/dex2jar/
  10. Jd: http://jd.benow.ca
  11. Flappy Bird: https://cyberchallenge.com.au/inabox.html
  12. Hans-Peter Merkel, Markus Feilner, “Flüchtige Spuren”: Linux-Magazin 11/13, S. 68
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 3 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben