Konferenz BLACK HAT. Wie man ein Spionagetelefon macht. Teil 1

Moderator: Kevin McNami ist Direktor des Bell Labs Security Research Laboratory, das Teil von Alcatel-Lucent ist. Seine Präsentation heißt "Wie man ein Spionagetelefon herstellt". Wenn Sie Fragen haben, speichern Sie diese bitte bis zum Ende der Rede, damit wir wissen, dass wir genug Zeit für sie haben.

Kevin McNami: Ich begrüße alle, ich bin froh, dass ich heute hier spreche . Ich werde darüber sprechen, wie man ein gutes Spionagetelefon herstellt, aber ich denke, dass das Hauptinteresse für Sie darin besteht, wie Sie dieses SpyPhone-Spionagetelefonmodul in eine Android-Anwendung integrieren können.



Meine Präsentation besteht aus 3 Teilen. Das erste ist eine Demonstration von SpyPhone in Aktion, dann werden wir ein wenig über das spezielle Design des „Spionagetelefons“ sprechen. Der dritte Teil des Gesprächs befasst sich mit der Frage, wie Sie den SpyPhone-Dienst in die Anwendung einbinden können. Am Ende werden mir die Ergebnisse gefallen und die Fragen beantwortet.

Die nächste Folie zeigt, wie Menschen das „Spionagetelefon“ wahrgenommen haben. Grundsätzlich glaubten sie, dass man mit einem solchen Telefon andere Leute ausspionieren kann.



Ein modernes Spionagetelefon sieht anders aus: Es ist ein normales Smartphone mit dem Android-Betriebssystem. Android ist eine sehr flexible Plattform, mit der man leicht arbeiten kann, die sehr offen ist und die es Ihnen ermöglicht, viele Dinge zu tun. So sieht also ein modernes SpyPhone aus. Ich denke, dass das Gleiche mit Handys mit iOS möglich ist, aber ich habe mich auf Android konzentriert.



Früher benötigten Sie für die Organisation der Überwachung im Freien eine Vielzahl von Geräten, die von Tonbandgeräten über die Aufzeichnung von Telefongesprächen bis hin zu Tonbändern reichten und mit Autos mit Geräten für die verdeckte Überwachung endeten. Heute brauchen Sie nur noch ein Android-Handy. Sie verwenden ein solches Telefon mit einer darauf installierten speziellen Software und können die Person verfolgen, der dieses Telefon gehört. Sie können seine Telefonanrufe steuern, Sie können seinen Standort steuern, Sie können sogar Nachrichten vom Telefon dieser Person senden, eine Kontaktliste anzeigen usw.



Dies ist eine sehr leistungsfähige Form von Cyber-Überwachungsgeräten. Wenn jemandes Telefon mit dieser Spyware-Anwendung infiziert ist und diese Person es ins Büro bringt, können Sie dieser Person bei der Arbeit folgen, Geschäftstreffen ansehen und so weiter. Die Verwaltung und Kontrolle des Spionagegeräts erfolgt über das Internet. Das Spionagemodul benötigt keine spezielle Zusatzausrüstung, alles befindet sich im Telefon. Wenn er etwas Interessantes zu vermitteln hat, kontaktiert er Sie über die Command & Control-Website und überträgt Informationen. Später werde ich Ihnen eine Demo zeigen, wie das funktioniert.

Betrachten Sie nun die Gegenmaßnahmen. In der Antike wurde der sogenannte „Stillekegel“ verwendet, um das Abhören zu verhindern. Wenn Sie jemand ausspioniert hat, können Sie jederzeit in den „Kegel der Stille“ eintreten und völlig frei mit Ihrem Gesprächspartner kommunizieren.



Der heutige "Kegel der Stille" sieht etwas anders aus. Das Unternehmen, für das ich arbeite, hat eine Technologie entwickelt, die im Netzwerk platziert werden kann und die automatisch Datenverkehr wie Command & Control erkennt, der von einem Android-Telefon vermittelt wird.



Aus diesem Grund haben wir das SpyPhone-Modul erstellt, das wir als Demonstration verwenden, wenn wir zu unseren Kunden gehen, die hauptsächlich Mobilfunkdienste und mobiles Internet anbieten. Wir zeigen ihnen ein „Spionagetelefon“, um zu zeigen, dass es im Mobilfunknetz ein großes Sicherheitsproblem gibt. Diese Bedrohung steckt noch in den Kinderschuhen, könnte aber in Zukunft möglicherweise großen Schaden anrichten. Wir verwenden dieses Modul, um unsere Kunden über Gefahren aufzuklären. Daher ist es selbstverständlich, dass der zweite Teil der Demonstration die Präsentation unseres Produkts ist, das diesen Gefahren standhält.

Das Smartphone ist ein sehr leistungsfähiges Gerät. Es bietet Zugriff auf Ihren Standort, stellt von fast überall eine Verbindung zum Internet her, verfügt über ein Mikrofon und eine Kamera, stellt über WLAN eine Verbindung zu lokalen Netzwerken her und ist somit eine ideale Spionageplattform.

Ich würde sagen, dass ein Smartphone ein ideales Cyberspionagetool ist, mit dem der Standort des Opfers verfolgt, persönliche Informationen heruntergeladen, Nachrichten abgefangen und gesendet, Gespräche aufgezeichnet und Fotos ohne Wissen des Besitzers aufgenommen werden können. Im Kontext von BYOD und APT ist es die ideale Plattform, um interne Angriffe auf Unternehmens- oder Regierungsnetzwerke zu starten.

Ich glaube, ich habe genug darüber gesprochen, also fahren wir mit der Demonstration fort. Links sehen Sie einen Screenshot vom Bildschirm des Telefons, der bald zu Spyware wird. Dies ist das Telefon, das ich derzeit verwende. Rechts sehen Sie die Befehls- und Steuerkonsole, die von der Person verwendet wird, die dieses Telefon verfolgt.



Also haben wir Malware, das SpyPhone-Modul, in eine Kopie des sehr beliebten Spiels Angry Birds implementiert. Dann haben wir einem Mann eine E-Mail geschickt, in der er sagte, er könne dieses coole Spiel herunterladen und spielen. Wir können dieses infizierte Spiel auch auf Websites von Drittanbietern platzieren, von denen der Benutzer es herunterladen kann. Jetzt gehe ich auf meinem Handy zu meinem Browser, um den empfangenen Brief anzuzeigen.

Wenn dieser Typ den Brief erhält, klickt er auf den Link und gelangt auf der Seite mit unserem Spiel in den eigentlichen Arbeitsspeicher für Anwendungen für „Android“. Wir haben beschlossen, es Very Angry Birds zu nennen, da es das SpyPhone-Modul enthält.



Der Benutzer lädt dieses Spiel herunter. Wenn Sie die Anwendung auf Ihrem Android-Telefon installieren, erhalten Sie eine Liste aller Berechtigungen, die für die Arbeit erforderlich sind.



Es heißt, dass die Anwendung Zugriff auf Ihren Standort, persönliche Informationen, Netzwerkkommunikation, Datenspeicherung, kostenpflichtige Dienste und Telefonanrufe benötigt. Da der Benutzer die Anwendung installieren möchte, beachtet er normalerweise nicht alle diese Berechtigungen, die bei der Installation von Programmen ständig angezeigt werden, und klickt einfach auf die Schaltfläche „Installieren“. Der Bildschirm zeigt nun, wie der Installationsprozess der Anwendung abläuft. Als nächstes starten wir die installierte Anwendung. Jetzt sehen Sie links das laufende Spiel und rechts die Informationen der Command & Control-Website, über die das Smartphone die Kontrolle hat, und Sie können die Geräusche hören, die das Spiel begleiten.



Ich werde den Ton stumm schalten, weil er mich nervt. Beachten Sie also, dass das Spiel wie gewohnt gespielt wird. Es gibt nichts Außergewöhnliches, das die Aufmerksamkeit des Benutzers auf sich ziehen könnte. Es gibt keine Hinweise darauf, dass mit dem Telefon etwas Seltsames passiert.

Der Benutzer spielt, das ist sehr cool, aber selbst wenn er aufhört zu spielen und das Spiel schließt, arbeitet das Spionagemodul im Hintergrund weiter. Selbst wenn Sie das Telefon neu starten, wird der SpyPhone-Dienst neu gestartet. Jetzt ist er auf diesem Smartphone ständig vorhanden. Dieses Telefon ist also mit Cyberspion infiziert und wird jetzt hier in der Konsole der Command & Control-Website angezeigt. Wenn ich auf diese Zeile klicke, werden auf der Website Informationen angezeigt, die auf diesem Gerät gespeichert sind. Wir können eine Karte mit dem Standort dieses Geräts erhalten - dies ist Las Vegas.



Lassen Sie mich betonen, dass hier die Verbindung zwischen Telefon und Computer nicht direkt, sondern über das Internet über einen Webserver in Ottawa erfolgt, auf dem ich arbeite. Der einzige Grund, warum ich dieses Telefon mit einem Kabel an meinen Computer angeschlossen habe, ist die Notwendigkeit, Screenshots zu machen. Die Konsole zeigt, dass andere Telefone gleichzeitig funktionieren. Hier ist einer von ihnen in China, sodass Sie ein internationales Netzwerk von „Spionagetelefonen“ erstellen und diese ständig überwachen können, während sie online sind.

Also zurück zu unserem Telefon in Las Vegas. Hier sehen Sie die E-Mail-Adresse des Kontos des Telefonbesitzers, die Telefonnummer, den CDMA-Kommunikationsstandard, den Netzwerktyp, die IMEI, das Land des Mobilfunkbetreibers, seinen Namen, den SIM-Kartenstatus, die Standortkoordinaten und die Kontakte des Telefonbesitzers. Alle diese Informationen werden auf den Befehls- und Steuerungsserver hochgeladen. Wir können den Besitzer dieses Telefons 24 Stunden am Tag, 7 Tage die Woche verfolgen und alle vom Telefon bereitgestellten Informationen verwenden, einschließlich des Herunterladens der Kontaktliste dieser bestimmten Person. Dies gibt uns eine Liste anderer potenzieller Ziele, wenn wir eine Art industrielle Cyberspionage einsetzen, um herauszufinden, mit wem der Telefonbesitzer spricht und mit wem er Geschäfte macht. Wir könnten diese Kontaktliste verwenden, um bestimmte Personen anzusprechen.

Man kann sich vorstellen, dass ein Angreifer dieses Spiel an alle Android-App-Stores verteilt. Nachdem die Benutzer es heruntergeladen haben, konzentrieren Sie sich auf einen Mitarbeiter eines bestimmten Unternehmens, auf seine Kontaktliste usw.

Sie können auch die installierte Spyware aktualisieren und Nachrichten an das infizierte Telefon senden. Sie können es für andere Zwecke verwenden, um beispielsweise Personen mit solchen Nachrichten zu erschrecken. Wir können auf SMS-Nachrichten und E-Mails zugreifen und den Standort des Telefons bestimmen. Alle diese Vorgänge werden im oberen Teil der Konsole zur Verwaltung des erfassten Telefons angezeigt und blau hervorgehoben. Sie können auch die Kamera des Telefons einschalten. Ich werde es jetzt versuchen. Ich nehme das Telefon in die Hand und klicke in der Steuerkonsole auf die Funktion „Peep“. Es wird einige Zeit dauern, da Sie ein Foto aufnehmen und an die Command & Control-Website senden müssen. Wie Sie sehen können, erscheint zunächst mein Foto, das mit der Frontkamera aufgenommen wurde. Dahinter befindet sich ein Foto dieses Raums, das mit der Rückkamera aufgenommen wurde. Auf diese Weise kann ich auf einem infizierten Telefon aus der Ferne fotografieren und diese Fotos empfangen.

Wenn Sie bemerken, läuft das Spiel immer noch auf dem Bildschirm, so dass die Person nicht einmal bemerkt, dass das Foto aufgenommen wurde. Dies erfolgt im Hintergrund ohne Wissen des Benutzers. Wir können dieselbe Technologie verwenden, um Videos aufzunehmen. Das Letzte, was ich demonstrieren möchte, ist die Hörfunktion. Also sage ich am Telefon: "Dies ist ein Test, eins, zwei, drei, dies ist ein Test, eins, zwei, drei." Dann klicke ich auf die Schaltfläche „Audio abspielen“, die Verbindung dauert etwas, und jetzt hören Sie die Wiederholung meiner Worte.



Also habe ich das Gespräch über das Mikrofon des Telefons aufgezeichnet und auf die Command & Control-Website hochgeladen. Es ist also alles ziemlich cool. Es war also eine Demonstration dessen, was die SpyPhone-Technologie leisten kann.

Lassen Sie uns nun ein wenig darüber sprechen, wie wir das Design und die Technologie unserer Software entwickelt haben und warum wir solche Designentscheidungen getroffen haben. Ich werde zu den vorherigen Folien zurückkehren.



Zunächst wollten wir unsere Malware mit den ursprünglichen Telefonfunktionen kombinieren und ein Spyware-Programm vom Typ Trojaner mit Fernzugriff erstellen, das mit einem Android-Telefon funktioniert. Wir haben eine Demo-Anwendung namens "Searchable Dictionary" als Grundlage genommen und sie so modifiziert, dass ein Spyware-Modul eingefügt werden kann, und sie als reguläre Anwendung für Android implementiert.

Das heißt, wir haben uns an das Design der ursprünglichen Android-Programme mit Java gehalten. Wir brauchten es, um alle notwendigen Komponenten in sich zu enthalten und im Hintergrund zu arbeiten. Selbst wenn die Anwendung gestoppt wurde, wurde sie beim Laden des Telefons gestartet. Unsere zweite Aufgabe bestand darin, SpyPhone einfach in offizielle Anwendungen zu integrieren. Dies funktionierte und unsere Malware störte den Betrieb anderer auf dem Telefon installierter Anwendungen nicht. Als Command & Control Server Command & Control haben wir den NodJS-Webserver mit Datenübertragung über HTTP ausgewählt. Für die Steuerbefehle unseres Programms haben wir die JS-Schnittstelle verwendet, und die Befehle selbst sahen folgendermaßen aus:

Update - Informationen an den Server senden,
Toast - Anzeige einer Meldung auf dem Bildschirm,
Herunterfahren - SpyPhone stoppen,
SMS - Senden Sie eine SMS an einen Kontakt,
Standort - Senden Sie Informationen zum Telefonstandort an den Server.
Peep - mach ein Foto und sende es an den Server,
Hören - Ton aufnehmen und an den Server senden.

All dies war recht einfach zu programmieren, da die Entwickler von Android ihrem System einen ziemlich leistungsstarken Satz von SDK-Entwicklungstools zur Verfügung stellten. Dieses Kit bietet eine Schnittstelle für alles, was Sie wollen. Wir haben nie Android-Programme entwickelt, aber dank dieses SDK mussten wir nicht einmal etwas lernen und haben dieses Ding in ein paar Wochen entwickelt.

Die nächste Folie zeigt das ursprüngliche Design des durchsuchbaren Wörterbuchs, auf dessen Grundlage wir SpyPhone mit den hier angezeigten Java-Codes erstellt haben. Wir haben dieser Anwendung einen Teil namens droidwhisper hinzugefügt.



Dies ist der Teil, den wir später ausschneiden und in eine geeignete Anwendung einfügen wollten. Wir hatten keine Erfahrung mit der Erstellung spezieller Exploits, die Anwendungsschwachstellen ausnutzen würden. Daher haben wir die von Android bereitgestellte Standard-API importiert:

Benutzerinformationen
- android.accounts.Account importieren;
- android.accounts.AccountManager importieren.
Telefon und SMS
–Import android.telephony.SmsManager;
–Import android.telephony.TelephonyManager.
Lage
–Import android.location.Location;
–Import android.location.LocationListener;
–Import android.location.LocationManager;
Aufzeichnen von Mediendateien (Audio und Video)
- android.media.MediaRecording importieren.
Kamera
–Import android.hardware.Camera;
–Import android.hardware.Camera.PictureCallback;
–Import android.hardware.Camera.PreviewCallback;
–Import android.hardware.Camera.Size;
–Import android.media.AudioManager;
–Import android.view.SurfaceHolder;
–Import android.view.SurfaceView.
Das Internet
–Import org.apache.http.HttpResponse;
–Import org.apache.http.NameValuePair;
–Import org.apache.http.client.ClientProtocolException;
–Importiere org.apache.http.client.HttpClient.

Jemand sagte, dass das Aufnehmen von Videos und das Aufnehmen von Bildern, wenn sich das Telefon in der Tasche des Benutzers befindet, nicht sehr gut ist. Wenn Sie also ein gutes Foto machen möchten, senden Sie die SMS an den Eigentümer, da wir seine Telefonnummer haben. Er erhält eine Nachricht, hält das Telefon vor sich, um sie zu lesen, und zu diesem Zeitpunkt machen Sie ein Foto mit der Frontkamera. Wenn Sie ihn nur anrufen, bringt er das Telefon an sein Ohr, und in diesem Moment können Sie mit der Rückkamera ein Bild aufnehmen.



Die Kamera zum Laufen zu bringen ist etwas komplizierter, daher haben wir eine ganze Reihe von Klassen verwendet, zum Beispiel AudioManager, SurfaceHolder und dergleichen. Wir mussten dafür sorgen, dass der Klick-Sound beim Aufnehmen eines Fotos vorübergehend ausgeschaltet wird, um die Aufmerksamkeit des Benutzers nicht auf sich zu ziehen, wenn diese Funktion in den Einstellungen seiner Kamera aktiviert ist. Darüber hinaus haben wir uns vorgenommen, die aufgenommenen Spionagefotos oder -videos in der Telefongalerie als Miniaturansichten mit einer Größe von 1 Pixel anzuzeigen, damit der Benutzer sie nicht sehen kann. Wir mussten also ein paar Tricks anwenden, um den unauffälligen Betrieb unseres Spionagemoduls sicherzustellen. Wie ich bereits bemerkt habe, ist fast alles für die Kommunikation mit dem Befehls- und Steuerungsserver im Telefon selbst enthalten. Wir haben auch einige der Sicherheitslücken in Android verwendet.

Wie Sie wissen, müssen diese Anwendungen signiert sein, um auf dem Telefon installiert zu werden. Dies ist jedoch kein Problem, da Sie jedes alte Zertifikat zum Signieren verwenden können, da die Anwendung im Allgemeinen über ein Zertifikat verfügt, unabhängig davon, welches. Später werde ich mehr darüber sprechen.

Dies war also eine kurze Beschreibung des Designs, das wir beim Erstellen der Anwendung verwendet haben. Jetzt werde ich Ihnen über den Implementierungsprozess berichten, dh wie wir unser schädliches Modul in die Anwendung eingefügt haben.

Als erstes haben wir uns für das Spiel Angry Birds entschieden. Wir haben es nicht gewählt, weil es ein sehr gutes Spiel ist, sondern wegen seiner Beliebtheit. Unser SpyPhone-Modul kann in absolut jede Anwendung eingegeben werden. Zunächst benötigen wir eine Kopie der ursprünglichen APK-Datei. Dies ist ein Archiv, das alle Anwendungskomponenten enthält. In der Anwendungsdatei befindet sich Java-Code oder nicht ganz Java - dies ist der Code für die virtuelle Dalvik-Maschine. Dieser Code kann durch andere Inhalte ersetzt werden. Dies wird als Sicherheitsanfälligkeit "Hauptschlüssel" bezeichnet. Wir müssen also diese APK-Datei öffnen und zerlegen, dh eine Liste aller zu zerlegenden Komponenten haben.
Zunächst extrahieren wir alle Komponenten der Angry Birds 2000-Anwendung.



Dann fügen wir im smali-Verzeichnis unser Beispielverzeichnis / android / droidwhisper ein, und im letzten droidwhisper-Ordner befinden sich die geänderten Searchable Dictionary-Anwendungsdateien, die unser Spionagemodul enthalten.



Wir haben das Spiel Angry Birds vom Google Play Market heruntergeladen und eine Kopie davon erstellt. Das nächste, worüber wir uns Sorgen machen, sind die Signaturschlüssel. Sie sehen alle diese Dateien in unserem Verzeichnis namens inj.

Beim Zerlegen haben wir das Programm Apk_tools verwendet, ein Tool zum Verwalten von APK-Dateien. Jetzt zeige ich über die Befehlszeile, wie wir angefangen haben, Angry Birds zu zerlegen.



Als nächstes fuhren wir direkt mit dem Zerlegen der Anwendung fort. Wir haben den Angry Birds-Katalog erstellt, in den wir alle Anwendungskomponenten eingefügt haben. Da dies eine Demo ist, müssen Sie etwas warten, bis der Demontageprozess abgeschlossen ist. Sie sehen also eine Vielzahl von Verzeichnissen, der Assets-Ordner befindet sich zuerst, Dinge wie Sounds sind darin, dann gibt es Ressourcenordner, lib-Bibliotheken, aber der Schlüssel für uns ist das smali-Verzeichnis, das den Code und das Assembler-Format enthält.

23:00 min

Konferenz BLACK HAT. Wie man ein Spionagetelefon macht. Teil 2



Vielen Dank für Ihren Aufenthalt bei uns. Gefällt dir unser Artikel? Möchten Sie weitere interessante Materialien sehen? Unterstützen Sie uns, indem Sie eine Bestellung aufgeben oder Ihren Freunden empfehlen, einen Rabatt von 30% für Habr-Benutzer auf ein einzigartiges Analogon von Einstiegsservern, das wir für Sie erfunden haben: Die ganze Wahrheit über VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s von $ 20 oder wie teilt man den Server? (Optionen sind mit RAID1 und RAID10, bis zu 24 Kernen und bis zu 40 GB DDR4 verfügbar).

VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s bis Januar kostenlos, wenn Sie für einen Zeitraum von sechs Monaten bezahlen, können Sie hier bestellen.

Dell R730xd 2 mal günstiger? Nur wir haben 2 x Intel Dodeca-Core Xeon E5-2650v4 128 GB DDR4 6 x 480 GB SSD 1 Gbit / s 100 TV von 249 US-Dollar in den Niederlanden und den USA! Lesen Sie mehr über den Aufbau eines Infrastrukturgebäudes. Klasse mit Dell R730xd E5-2650 v4 Servern für 9.000 Euro für einen Cent?

Source: https://habr.com/ru/post/de434052/


All Articles