Hallo Gemeinde,

mit diesem Artikel möchte ich euch zeigen, wie einfach es ist in moderne Smartfones einzubrechen und sämtliche Daten zu stehlen die darauf gespeichert sind, bis hin zu Fotos, emailaccounts und deren Passwörter, SMS, getätigte Anrufe, Aufzeichnungen wo man wann war und andere persönliche Daten.

Einen Einbruch dokumentiere ich für folgende Systeme: Ein Palm Pre mit WEBOS und ein Samsung Nexus S mit Android 2.3 - wobei das stellvertretend für alle Androiden mit Version 2.x steht. Apfeldinger, Schwarzbeeren und diverse andere Systeme habe ich nicht untersucht, mangels Hardware.

Die Idee dabei ist, wie einfach ist es bsp. für Behörden oder auch neugierige technikaffine Privatpersonen ein Handy auszuspähen und/oder einen Trojaner zu installieren. Wie lange dauert es (schon mal vorweg, mit der richtigen Vorbereitung keine Minute) - kann ich mittels einem einfachen Laptop/Netbook ein fremdes Handy manipulieren, wenn es nur kurz aus den Augen gelassen wird? Ja, ich kann und werde es beweisen.

Brauch ich dazu sehr teure (dazu später noch) Forensiktools? Nein, das geht auch so, ohne Investition - ausser ein bisschen Zeit für die Installation.

Die Bilder des Einbruchs in einen Palm Pre zeigen mitunter SSH Verbindungen mit einem Terminalprogramm sowie einen gut gefüllten und ausgebauten Linuxunterbau. Das ist natürlich im Normalfall nicht gegeben, sondern nur auf meinem Gerät so. Macht aber keinen Unterschied, da alles auf einem "Normalgerät" genauso funktioniert, halt weniger bunt und weniger komfortabel.

Der Palm Pre wird besser durchleuchtet als ein Android. Das liegt daran, daß es bei Androiden schlichtweg einfacher ist einen Trojaner zu installieren (werde ich zeigen) und an die Daten zu kommen. Es gibt noch ein paar andere Unterschiede, dazu später mehr.

Was man braucht für einen Einbruch in diese Systeme

Ausreichend sind die aktuellen Entwicklungsumgebungen, die man bei den Herstellern für Windows/Linux/MacOs runterladen kann. Diese braucht man nur noch zu installieren. Kosten entstehen keine. Für einen Palm Pre genügt auch ein sog. WebOS-Doctor, das ist ein Programm um ein WEBOS Gerät nach einem schweren Fehler wieder in den Auslieferungszustand versetzen zu können.

Bei Android ist es wichtig, die korrekten usb-Treiber vorab zu haben, also entweder die von Google für die Nexus Serie oder die der Hersteller. Sollte das Zielgerät vorher nicht bekannt sein, muß man eben alle gängigen usb-Treiber vorab installieren (damits nachher schnell geht).

Desweiteren müßen die Platform-Tools installiert sein, das ist entscheidend!!!

Wer selber mehr aus seinem Palm Pre rausholen will, sollte den vollen Zugriff wagen (zum spionieren nicht notwendig), hier mehr: Palm Pre für Nerds

Als ich eines Tages, meinen Pre kennenlernend herumstöberte, fand ich eine eigenartige System-Applikation die ich nicht recht einem Programm auf der Oberfläche zuordnen konnte - kein Wunder, man kann diese Anwendung ja auch gar nicht so ohne weiteres aufrufen - weiterhin ist sie unsichtbar.

Weil die WebOS Anwendungen in Javascript und HTML geschrieben sind, das ist natürlich ein Vorteil, kann man sich quasi gleich dem Quellcode widmen, der mir doch recht eigenartig erschien.

Dieses Programm sammelt auf jeden Fall einmal alle Kontakte zusammen, was es sonst noch so treibt habe ich noch nicht nachgesehen. Eigenartig ist auf jeden Fall ein ominöses "CelleBrite Device" von dem im Source die Rede ist. Ich musste auch gar nicht lange die Suchmaschine meiner Wahl bemühen, um recht schnell auf diesem Webauftritt einer Forensiktoolfirma zu landen: Cellebrite.com. Das bedeutet nun, die Firma Palm/HP hat bei der Entwicklung des Gerätes bereits daran gedacht, dieses Spionagetool zu unterstützen - sicherlich nur, um Daten zu retten und nicht um Behörden die Möglichkeit zu geben schnell und einfach zu spionieren. Wenn es wahr ist, was cellebrite verspricht, dann können die inzwischen das NAND aller gängigen Mobiltelefone auslesen, damit haben die sowieso alles, selbst gelöschte Daten (wenn man sie nicht sicher löscht). Weil ich so ein teures Tool natürlich nicht habe, ich bin ja keine dreibuchstabige Behörde aus Deutschland oder Übersee, muß ich anderweitig spionieren - mit den kostenfreien Boardmitteln - das geht auch.

Doch erst mal sehen, wie das unsichtbare Monad sichtbar wird und wie es arbeitet ...Warum sudo? Weil ich nicht so gerne unter root arbeite, das ist aber eine Modifikation am Telefon von mir, denn Standard ist root, wenn man mittels des WebOS-SDK aufs Telefon geht.





Praktischerweise sind bei WebOS (und auch bei Android!) die meisten Dinge in sqlite Datenbanken gespeichert. Das ist prima, denn erstens kann ich gleich auf dem Gerät den Inhalt ansehen oder aber die Datenbank einfach "sichern", damit ich danach in aller Ruhe auf dem PC in fremden Daten stöbern kann.

Hier mal ein einaches Bsp., ich sichere mir alle Datenbanken und schau mir dann in Ruhe mal Kalender und Kontakte an. Viel ist nicht drin, mein Palm ist eine Developermaschine ohne persönliche Daten, das Handy eines Terroristen - und das sind wir schliesslich alle, zumindest bei der Sicherheitskontrolle amerikanischer Flughäfen - ist sicherlich praller gefüllt.

Alle Datenbanken zusammensuchen und sichern


Das Schema einer Datenbank browsen


Und mal schnell den Kalender checken ...


Das dauert online auf dem Gerät natürlich viel zu lange, daher holt man sich am besten einfach alle Datenbanken mittels der Developmenttools (Palm Pre: novacom) aufs Notebook zur eingehenden ungestörten Analyse. Wenn man also vorab weiss, welche Datenbanken interessant sind (so schwer ist das nicht herauszufinden) dann stehle ich diese DBs in unter einer Minute. Palm Pre anschliessen, novacom starten, Daten übertragen, fertig. Genauso könnte ich nun per Novacom einen Trojaner aufs System schleusen. Man braucht ihn nicht mal geschickt zu verstecken, die meisten Anwender nutzen einfach nur ihr Telefon und gehen nicht in die Shell .... Monad war auch nicht wirklich geschickt versteckt. Wie das geht mit novacom? Bitte einfach selber die Doku nach der installation des SDK lesen, da steht alles drin. Der Vorteil ist nun auch, da man auf einem Palm Pre via novacom root-Rechte hat, lässt sich der hochgeladene Trojaner auch mit root-Rechten installieren und starten. Böse Sache ..., zumal der Trojaner auch ein waschechter Linuxkernel sein kann anstatt ein in Javascript programmierten WebOS-App. Was man daraus lernt? Haben die "drei Buchstaben" das Gerät für eine Minute gehabt, dann ist es verbrannt und sollte nur noch nach einer kompletten Neuinstallation des OS mit anschliessender exakter Kontrolle wieder verwendet werden, besser aber in den Müll damit.

Aber wer hat heute noch einen Palm Pre, man hat Apfeldinger, Android, Symbian oder Schwarzbeeren. Ist das besser und sicherer? Ich glaube nicht. Mal sehen, ob es einfach ist, einem Androiden in unter einer Minute einen Trojaner zu verpassen oder persönliche Daten zu stehlen.

Was der Trojaner können könnte ...

Es ist nicht einfach, zumindest auf der Nexus-Serie, root Rechte zu bekommen ohne den Inhalt des Telefons komplett zu verlieren. Daher ist es auch nicht einfach, bsp. einen neuen Kernel zu installieren. Braucht man aber auch nicht wirklich. Da lästigerweise Android vom Anwender immer irgendwelche Rechte abverlangt ist es gar nicht so einfach, ein fieses Tool zu installieren. Oder doch? Na klar, wenn es nur eine Minute per usb ans Notebook gekoppelt wird. Was der Trojaner kann, entscheidet man selbst, denn man muß ihn programmieren. Er könnte ein neues virtuelles Keyboard einklinken, damit ich alle PWs bekomme. Er kann die CAM ein/ausschalten, Während des Telefonates den Stream vom Mikrofon abfangen, die sampels speichern und bei geeigneter schneller WLAN Verbindung alles an meinen Spionserver schicken. Alle SMS, Emails, Browserhistory und sonstige Daten verschicken, der Fantasie sind hier keine Grenzen gesetzt.

Aber wie bekomme ich den Trojaner aufs Android?

Das ist wirklich einfach, wenn man die Developertools installiert hat.

Was, nur ein Bild? So wenig Info? Ja doch - denn es ist so einfach, nur dieser eine kleine adb-Befehl und es ist getan ... Fotos und persönliche externe Dateien (Dokumente, PDF etc) stehlen ist noch einfacher - das Telefon einfach in den usb-Stick Modus versetzen und kopieren, fertig - gilt sowohl für Androiden wie auch dem Palm Pre.

Da man mit adb auch eine Shell starten kann, eignet es sich auch zur näheren Erkundung des Telefons. Allerdings hat man kaum Rechte, daher macht es bei weitem nicht so viel Spaß - besser ist es hier tatsächlich eine eigene App per adb aufs Android zu installieren anstatt, wie beim Palm Pre, in den Linux-Innereien zu wühlen.

Das Ziel, also einen Trojaner aufs Telefon zu bringen und/oder Daten zu schnüffeln ist also bei beiden Geräten nicht nur möglich, sondern auch kinderleicht und vor allem kostenlos zu bewerkstelligen, jeder kann das machen. Bleibt für jeden selbst zu entscheiden, ob man die Vorzüge der Smartfones haben will oder ob das zu heiss ist. Klar ist, das Telefon darf niemals auch nur für eine Minute aus der Hand gegeben werden.

Wie man APPs überprüft

Praktisch sind sie ja, die vielen kleinen Zusatzprogramme, welche man sich für seinen Palm-Pre, Android, Apfeldingens usw. runterladen kann. Manche sind ganz ok, auch einige für lau. Die harmlosen zeigen bestenfalls im Umsonstmodus ein bisschen Werbung, die weniger harmlosen kommunizieren mit irgendwelchen Servern im Netz. Das müssen sie natürlich auch, denn eine Wetterapp muß schliesslich die aktuelle Vorhersage von einem Server bekommen, aber muß es sein, daß bsp. eine berühmte original App für einen sehr bekannten Social-Networkdienst das Recht verlangt, SMS lesen und senden zu können, die emailkonten auszuspionieren und mehr? Zumindest sind hier die Anwender selber schuld, denn das Programm verheimlicht diese Rechte ja nicht, sie fordert sie aktiv vom User. Will man sie nicht vergeben, kann man die App auch nicht nutzen. Auch gut, es gibt Alternativen ... Zumindest bei Android ist also schon wegen der Rechteforderung klar, was das Programm tun will. Aber oft ist das eben gar nicht so klar wie man denkt. Bleiben wir bei einer fiktiven bösartigen Wetterapp. Natürlich muss man das Recht vergeben, das diese App mit einem Server kommunizieren darf - sonst machts ja keinen Sinn. Aber, WAS genau da kommuniziert wird, nebst den Wetterdaten, das weiss man nicht so genau. Desswegen sollte man jeder App vorher auf den Zahn fühlen.

Hat man bereits Apps installiert ohne zu Wissen was die genau tun, so kann man zumindest die "Paketkontrolle" (später im Text) immer durchführen.

Was kann man also tun, um einigermassen sicher zu sein?

Zuerst einmal natürlich denken. Muss man wirklich jede App haben? Dann die Quelle prüfen, handelt es sich um eine seriöse Quelle? Auch mal die Bewertungen durchlesen (bei Android) - das schadet nie. Ausserdem natürlich genaz genau die Permissions (Rechte) ansehen und nicht einfach auf ok klicken.

Wer den ganzen Entwicklerkram hat, dem bietet sich natürlich immer die Möglichkeit das ganze vorab in einer virtuellen Maschine (Emulator) zu prüfen. Das ist beim Palm-Pre ganz einfach, bei Android gar nicht so easy - geht aber über Umwege auch.

Auf jeden Fall sollte man aber die Pakete die übers Netz gehen mal ansehen, und das ist wirklich einfach - ich gebe allerdings zu - man braucht etwas Hardware dazu. Man braucht einen WiFi Accesspoint und einen managebaren Switch. Leider genügt nicht das in den meisten eingebauten Routern verwendete WiFi-Teil, da man nicht so einfach an die Pakete rankommen kann. Den managebaren Switch braucht man, um die Pakete die an einem Port ankommen auf einen anderen Port zu mappen (monitoring). Man macht also folgendes: Einen Accesspoint (Wifi) an den Switch, den eigenen PC an den Switch, den Internetrouter an den Switch und das Handy mittels WLAN mit dem extra Accesspoint verbunden. Der Port, wo der Accesspoint hängt wird nun im switch mit dem Port an dem der PC hängt gemappt, so das der PC alle Datenpakete bekommt, die das Handy übers WLAN sendet und empfängt.

Vieleicht gehts auch einfacher, indem man eine Ad Hoc Verbindung + Netzwerkbridge zwischen PC und Handy macht, das muss ich mal ausprobieren. Das wäre ganz gut, so braucht man sich nicht einen managebaren switch und einen extra Accesspoint zu beschaffen.

Nun installiert man sich noch wireshark - das ist ein ganz starkes Paketsniffertool und das beste daran, es kostet nichts.

Richtig konfiguriert sieht man nun ALLES, was das Handy so mit der Aussenwelt zu bereden hat und kann mal locker prüfen, ob alles seine Richtigkeit hat, welche Server tatsächlich angesprochen werden, welche Daten da verschickt werden usw. Natürlich ist einiges verschlüsselt, macht aber nichts, denn wenn bsp. unser fiktives Wetterprogramm massiv Daten sendet (nicht empfängt) dann ist das mehr als verdächtig - selbst wenn man wegen der Verschlüsselung nicht unbedingt immer sehen kann was da genau drinnen ist, im Datenpaket.

Zukunft

Es gibt für Android eine PayPal-App sowie den offiziellen ebay und Facebook Client. Ich werde versuchen die Logindaten dieser Anwendungen zu stehlen (also meine eigenen in diesem Fall). Ich teste auch mal, ob es möglich ist die Google-Kontodaten sowie die Zugangsdaten eines anderen EMail-Providers zu entwenden. Sollte es mir gelingen, werde ich das Ergebnis hier veröffentlichen.

Nützliche Links

Palm Pre rooten und nach eigenem Gusto modifizieren

WEB OS Developer SDK und Tools

Android SDK und Tools