Android IME / InputMethodService Abuso (Tastiere malevole)
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
Panoramica
Android permette tastiere di terze parti tramite un InputMethodService (IME). Una volta che un utente abilita una tastiera e la seleziona come metodo di input corrente, l’IME può osservare (e influenzare) essenzialmente tutti gli input di testo prodotti sul dispositivo attraverso le app.
This is why several Android banking trojans bundle a “secure keyboard” feature: the malicious IME receives keystrokes even from apps that never embed a WebView (banking apps, chat apps, crypto wallets, etc.).
Note
android.permission.BIND_INPUT_METHODis typically declared on the IME servizio so only the system can bind to it. Dichiararlo non conferisce privilegi speciali di per sé; il passo chiave è far sì che la vittima abiliti/selezioni la tastiera nelle Impostazioni.
Manifest declaration
Una tastiera è esposta tramite un servizio con l’intent action android.view.InputMethod e un file di configurazione IME in XML:
<!-- 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>
Hunting tip: un’app che non sembra una tastiera ma dichiara un InputMethodService è un forte segnale d’allarme.
Da dove provengono i dati
Durante l’esecuzione un IME apprende:
- L’app di destinazione nella quale si digita (tramite
EditorInfo, p.es.attribute.packageNameinonStartInput). - Il testo inserito (attraverso l’interazione dell’IME con la
InputConnectioncorrente e/o gli eventi di tasti a seconda dell’implementazione).
Schizzo minimale (non funzionale) del punto di hook ad alto segnale:
public class SpyKeyboard extends InputMethodService {
@Override public void onStartInput(EditorInfo attribute, boolean restarting) {
// attribute.packageName identifies the foreground app receiving input
}
}
Flusso comune di abilitazione e raccolta (osservato sul campo)
- L’APK è commercializzato come una “tastiera sicura” oppure la tastiera è incorporata all’interno di un trojan più ampio.
- Il malware induce la vittima nelle impostazioni della tastiera di sistema (ad esempio lanciando
Settings.ACTION_INPUT_METHOD_SETTINGSe/o usando UI automation) finché l’IME non è abilitato e impostato come predefinito. - Le pressioni dei tasti vengono bufferizzate per app e esfiltrate tramite il canale C2 esistente del malware, spesso combinate con altre fonti di dati (ad esempio,
WebViewman-in-the-browser telemetry).
Come rilevare / triage
Controlli sul dispositivo
- Impostazioni: Tastiere installate / tastiera predefinita (cerca IME sconosciuti).
- ADB:
adb shell dumpsys input_method
adb shell ime list -a
adb shell ime help
Analisi statica di un APK
- Cerca classi
InputMethodServicee il filtro di intentandroid.view.InputMethod. - Ispeziona la configurazione IME
@xml/*referenziata daandroid.view.im. - Verifica se la funzionalità dichiarata dell’app giustifica l’inclusione di una UI/risorse di tastiera completa.
Mitigazioni
- Utente/MDM: consentire solo tastiere affidabili; bloccare IME sconosciuti nei profili/dispositivi gestiti.
- Lato app (app ad alto rischio): preferire autenticazione resistente al phishing (passkeys/biometrics) ed evitare di affidarsi all’«inserimento di testo segreto» come confine di sicurezza (un IME malevolo si trova al di sotto dell’UI dell’app).
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.


