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
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Ü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_METHODwird 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.packageNameinonStartInput). - Den eingegebenen Text (durch die Interaktion des IME mit der aktuellen
InputConnectionund/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_SETTINGSund/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.
WebViewman-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-Filterandroid.view.InputMethod. - Untersuche die
@xml/*IME-Konfiguration, auf dieandroid.view.imverweist. - 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
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.


