ADB gegen Spy Cam & Mic

Wie kann ich überprüfen, ob eine Anwendung auf dem Android- Smartphone einen Foto- oder Videobericht enthält, obwohl er diesen nie benötigt? Die folgende Option ist überhaupt nicht perfekt, erfordert jedoch kein "root" oder eine benutzerdefinierte Firmware.

PS Ich habe dem Artikel eine Beschreibung zur Überwachung des Zugriffs von Anwendungen auf das Mikrofon hinzugefügt.

Was Sie installieren müssen:
  • ADB ( Android Debug Bridge ) (zum Beispiel als Teil der Android SDK Platform Tools - können Sie hier herunterladen);
  • Treiber für das Telefon (ggf. kann hier beispielsweise der Google USB-Treiber heruntergeladen werden ).

Wir aktivieren den USB- Debugging-Modus am Telefon und verbinden das Smartphone mit dem USB-Anschluss des Computers. Sie sollten den USB-Verbindungsmodus auswählen, außer "Nur aufladen".
Versteckter Text
Im „Geräte-Manager“ wird das Smartphone beispielsweise wie folgt angezeigt:
im Modus "Foto" oder "Dateien"

im USB-Laufwerksmodus

Und so in der Ausgabe des Befehls lsusb :


Öffnen Sie die Befehlszeile in dem Verzeichnis, in dem die "Tools" installiert sind.
Überprüfen Sie, ob die Verbindung erfolgreich hergestellt wurde (die Seriennummer des angeschlossenen Smartphones wird angezeigt):
adb devices 
(für Windows )

Für Linux würde der Befehl folgendermaßen aussehen:
 ./adb devices 

Wenn der Computer nicht für die Verwendung mit diesem Smartphone (für Android 4.2.2 und höher) autorisiert ist, wird neben der Seriennummer die Warnmeldung "Nicht autorisiert" angezeigt .
Für die Autorisierung müssen Sie die Debugging-Berechtigung über USB auf dem Smartphone bestätigen.
Versteckter Text
Unter Linux wird möglicherweise die Meldung " Keine Berechtigungen " angezeigt. In meinem Fall konnte ich das Problem lösen, indem ich das Smartphone in den Modus "Media Device ( MTP )" schaltete.

Starten Sie die Shell auf dem Gerät (wir erhalten die Eingabeaufforderung "$"):
 adb shell 



Dann führen wir die folgenden "magischen" Symbole ein:
 while true; do ps `while ! (dumpsys media.camera | grep -E "PID") do done | grep -o "[^PID: ][0-9]*$"` | grep -o "[^S ]*$" ; date; sleep 1; done 



Verbesserte Version, Entfernen der Ausgabe "NAME" und Leerzeilen:
 while true; do ps `while ! (dumpsys media.camera | grep -E "PID") do done | grep -o "[^PID: ][0-9]*$"` | grep -o "[^S ]*$" | grep -v "NAME" | grep .; date; sleep 1; done 


Und nichts passiert :-) Bis sich etwas für einen kleinen Schuss entscheidet :-)

Der angegebene "magische" Zeichensatz überwacht den Zugriff auf den Kameradienst - media.camera - so schnell wie möglich (dieser Dienst wird von der Bibliothek libcameraservice.so implementiert). Wenn die Kamera nicht aktiv ist, zeigt dumpsys Folgendes an :

Und wenn eine Kamera benötigt wird, erscheint dies:


greps prüft, ob eine " PID " vorhanden ist. Wenn diese Kette vorhanden ist, schneiden sie die Prozessnummer aus der Zeichenfolge und geben sie an den Befehl ps weiter , der Daten zu diesem Prozess anzeigt. Ein anderer grep schneidet seinen Namen. Halten Sie nach dem Erkennen der Kameraaktivität eine Sekunde lang an, damit Nachrichten nicht zu oft verschüttet werden. Verwenden Sie zum Unterbrechen des Befehls die Tastenkombination STRG-C und verlassen Sie die Shell - STRG-D .

Das einfachste Beispiel ist, dass nach dem Start der regulären Smartphone-Anwendung für Foto- / Videoaufnahmen Nachrichten mit dem Prozessnamen und Datum / Uhrzeit im Abstand von 1 Sekunde eingehen:

""

Es gibt jedoch schlauere Anwendungen, die unter dem Schlüsselwort „Spy Cam“ gefunden werden können (mithilfe eines Tricks, beispielsweise mit einer Einzelpixel-Vorschau ( http://www.ez.ai/2014/05/exploring-limits-of-covert-data) .html )). Eine solche Kreation bricht zu Beginn der Dreharbeiten und Berichte zusammen, aber es fließen regelmäßig Nachrichten ein:



Ich habe auch die Funktionalität der vorgeschlagenen Methode für eine Anwendung überprüft, die beim Klicken auf eine schwebende Schaltfläche eine einzige Aufnahme macht ohne sichtbares Vorschaufenster.
Das Skript hat erfolgreich einen Anruf bei der Kamera abgefangen und bei jeder Aufnahme zwei Nachrichten ausgegeben:


Nichts hindert Sie jedoch daran, ähnliche Funktionen in einer Anwendung mit einem harmloseren Namen zu implementieren ( https://www.zdnet.com/article/this-scary-android-malware-can-record-audio-video-and-steal-your- Daten / ) und Berechtigungen - nun, es gibt alle Arten von Fällen. Und der „legale“ Antrag kann melden, wann es ihm gefällt (ich habe die Erwähnung eines solchen Falls getroffen). Und es ist nicht umsonst, dass Android P Maßnahmen ergriffen hat, um zu verhindern, dass Hintergrundanwendungen auf die Kamera zugreifen.

Die Methode wurde auf den Smartphones Huawei SCL-L01 ( Android 5.1.1) und Huawei G700-U20 ( Android 4.2.1) getestet. Bei anderen Smartphone-Modellen kann das Ausgabeformat von dumpsys abweichen (es ist nicht für den media.camera- Dienst standardisiert), für das eine Codekorrektur erforderlich ist .
Das Nachrichtenformat ist in der Bibliothek /system/lib/libcameraservice.so fest codiert - zum Beispiel für das Huawei SCL-L01- Smartphone:

Im Kommentar - ein Hinweis, wie Sie den Code für die Arbeit mit einem Smartphone unter Android 9 ändern können.
Dieser Kommentar zeigt das vom HTC U11 verwaltete Kamerazugriffsprotokoll.
Aber zum Beispiel auf dem "alten" Huawei U8650 ( Android 2.3.4) funktioniert dumpsys gut:

Und die Rechte reichen nicht für ... grep :-)


Überwachung des Mikrofonzugangs

Ein ähnliches Verfahren kann angewendet werden, um den Zugriff von Anwendungen auf das Mikrofon zu überwachen. In diesem Fall müssen Sie den Dienst media.audio_flinger überwachen.
Wir geben den Befehl in die "Shell" ein (der angegebene Code funktioniert auf dem Smartphone Huawei SCL-L01 ( Android 5.1.1)):
 while true; do ps `while ! (dumpsys media.audio_flinger | grep -A20 Input| grep -A1 Client | grep yes | grep -o "[^yes ].*" | grep -o [0-9]*) do done` | grep -o "[^S ]*$" | grep -v "NAME" | grep .; date; sleep 1; done 

Wenn eine Anwendung Ton über ein Mikrofon aufzeichnet, gibt es in der Ausgabe von dumpsys media.audio_flinger ein ähnliches Fragment:

( Eingangsthread - Eingangsstrom, 22467 - PID des Prozessaufzeichnungstons).
Wenn Sie Ton über die Standardanwendung „Voice Recorder“ aufnehmen und die Überwachung aktiviert ist (über den obigen Code), werden die folgenden Meldungen angezeigt:

Aber welche Nachrichten werden ausgegeben, wenn die Spracheingabe des Google Übersetzers aktiviert ist:

Auf anderen Smartphones kann das Ausgabeformat von dumpsys unterschiedlich sein, was eine Codekorrektur erfordert.
Zum Beispiel auf einem Smartphone Huawei G700-U20 ( Android 4.2.1):

In diesem Fall sieht der Überwachungscode folgendermaßen aus:
 while true; do ps `while ! (dumpsys media.audio_flinger | grep -A3 Input| grep -A1 Clien | grep -o "[^ ].*" | grep -o [0-9]*) do done` | grep -o "[^S ]*$" | grep -v "NAME" | grep .; date; sleep 1; done 

So manifestiert sich die "wiederbelebte" Alice in diesem Fall:

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


All Articles