Android IME / InputMethodService Missbrauch (Bösartige Tastaturen)

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Übersicht

Android erlaubt Tastaturen von Drittanbietern über einen InputMethodService (IME). Sobald ein Benutzer eine Tastatur aktiviert und sie als aktuelle Eingabemethode auswählt, kann die IME im Wesentlichen alle Texteingaben beobachten (und beeinflussen), die auf dem Gerät in verschiedenen Apps erzeugt werden.

Dies ist der Grund, warum mehrere Android-Banking-Trojaner eine „secure keyboard“-Funktion bündeln: die bösartige IME empfängt Tastatureingaben selbst von Apps, die niemals ein WebView einbetten (Banking-Apps, Chat-Apps, Krypto-Wallets usw.).

Note

android.permission.BIND_INPUT_METHOD wird typischerweise im IME-Service deklariert, sodass nur das System sich daran binden kann. Die Deklaration gewährt für sich genommen keine besonderen Privilegien; der entscheidende Schritt ist, das Opfer dazu zu bringen, die Tastatur in den Einstellungen zu aktivieren/auszuwählen.

Manifest-Deklaration

Eine Tastatur wird über einen Service mit der Intent-Aktion android.view.InputMethod und einer IME-Konfigurations-XML bereitgestellt:

<!-- AndroidManifest.xml -->
<service
android:name=".SpyKeyboard"
android:permission="android.permission.BIND_INPUT_METHOD"
android:exported="false">

<intent-filter>
<action android:name="android.view.InputMethod" />
</intent-filter>

<meta-data
android:name="android.view.im"
android:resource="@xml/spy_ime" />
</service>

Erkennungs-Tipp: Eine App, die nicht wie eine Tastatur aussieht und einen InputMethodService deklariert, ist ein starkes Warnsignal.

Woher die Daten stammen

Zur Laufzeit erfährt ein IME:

  • Die Ziel-App, in die gerade eingegeben wird (über EditorInfo, z. B. attribute.packageName in onStartInput).
  • Den eingegebenen Text (durch die Interaktion des IME mit der aktuellen InputConnection und/oder Key-Events, je nach Implementierung).

Minimal (nicht-funktionaler) Skizze des high-signal hook point:

public class SpyKeyboard extends InputMethodService {
@Override public void onStartInput(EditorInfo attribute, boolean restarting) {
// attribute.packageName identifies the foreground app receiving input
}
}

Häufiger Aktivierungs- und Sammel-Workflow (in der Praxis beobachtet)

  • Die APK wird als „sichere Tastatur“ vermarktet oder die Tastatur ist in einen größeren Trojaner eingebettet.
  • Die Malware bringt das Opfer in die System-Tastatureinstellungen (z. B. durch Starten von Settings.ACTION_INPUT_METHOD_SETTINGS und/oder mittels UI automation), bis die IME aktiviert und als Standard gesetzt ist.
  • Tastatureingaben werden pro App gepuffert und über den bestehenden C2-Kanal der Malware exfiltriert, oft kombiniert mit anderen Datenquellen (z. B. WebView man-in-the-browser telemetry).

Wie erkennen / triagieren

Prüfungen auf dem Gerät

  • Einstellungen: Installierte Tastaturen / Standardtastatur (nach unbekannten IMEs suchen).
  • ADB:
adb shell dumpsys input_method
adb shell ime list -a
adb shell ime help

Statische Triage einer APK

  • Suche nach InputMethodService-Klassen und dem Intent-Filter android.view.InputMethod.
  • Untersuche die @xml/* IME-Konfiguration, auf die android.view.im verweist.
  • Prüfe, ob die angegebene Funktionalität der App damit übereinstimmt, dass sie eine vollständige Tastatur-UI und -Ressourcen ausliefert.

Gegenmaßnahmen

  • Benutzer/MDM: allowliste vertrauenswürdige Tastaturen; blockiere unbekannte IMEs in verwalteten Profilen/Geräten.
  • App-seitig (hochrisiko-Apps): Bevorzuge phishing-resistente Authentifizierung (passkeys/biometrics) und vermeide, dich auf „secret text entry“ als Sicherheitsgrenze zu verlassen (eine bösartige IME sitzt unterhalb der App-UI).

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks