Android IME / InputMethodService Misbruik (Kwaadaardige Toetsenborde)
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Oorsig
Android laat derdeparty-toetsenborde toe via InputMethodService (IME). Sodra ’n gebruiker ’n sleutelbord aktiveer en dit as die huidige invoermetode kies, kan die IME in wese alle teksinsette wat op die toestel oor toepassings gegenereer word waarneem (en beïnvloed).
Dit is hoekom verskeie Android-banktrojans ’n “secure keyboard” funksie saamlewer: die kwaadwillige IME ontvang toetsaanslae selfs van toepassings wat nooit ’n WebView insluit nie (banktoepassings, kletsapps, crypto wallets, ens.).
Note
android.permission.BIND_INPUT_METHODis tipies op die IME service verklaar sodat slegs die stelsel daaraan kan bind. Om dit te verklaar bied op sigself geen spesiale voorregte nie; die sleutestap is om die slagoffer te kry om die sleutelbord in Instellings te aktiveer/keur.
Manifest-verklaring
’n Sleutelbord word blootgestel via ’n service met die android.view.InputMethod intent action en ’n IME-konfigurasie 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>
Opsporingstip: ’n toepassing wat nie soos ’n sleutelbord lyk nie en InputMethodService verklaar, is ’n sterk rooi vlag.
Waar die data vandaan kom
Tydens uitvoering leer ’n IME:
- Die teiken-app waarin getik word (via
EditorInfo, bv.attribute.packageNameinonStartInput). - Die teks wat ingevoer word (deur die IME se interaksie met die huidige
InputConnectionen/of key events, afhangend van die implementering).
Minimale (nie-funksionele) skets van die 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
}
}
Algemene aktiverings- en versamelwerkvloei (waargeneem in die wild)
- Die APK word bemark as “secure keyboard” of die sleutelbord is ingebed binne ’n breër trojan.
- Die malware dryf die slagoffer na die stelsel sleutelbordinstellings (bv. deur
Settings.ACTION_INPUT_METHOD_SETTINGSte begin en/of UI automation te gebruik) totdat die IME geaktiveer en as standaard gestel is. - Keystrokes word per-app gebuffer en exfiltrated via die malware se bestaande C2-kanaal, dikwels gekombineer met ander databronne (bv.,
WebViewman-in-the-browser telemetry).
Hoe om te ontdek / triage
Op-toestel kontrole
- Settings: Geïnstalleerde sleutelborde / standaard sleutelbord (kyk na onbekende IMEs).
- ADB:
adb shell dumpsys input_method
adb shell ime list -a
adb shell ime help
Statiese triage van ’n APK
- Soek na
InputMethodServiceklasse en dieandroid.view.InputMethodintent-filter. - Inspekteer die
@xml/*IME-konfigurasie wat deurandroid.view.imverwys word. - Kontroleer of die app se verklaarde funksionaliteit ooreenstem met die verskaffing van ’n volledige sleutelbord-UI/hulpbronne.
Versagtingsmaatreëls
- User/MDM: gebruik ’n toelaatlys vir betroubare sleutelborde; blokkeer onbekende IMEs in bestuurde profiele/toestelle.
- App-side (high risk apps): verkies autentisering wat bestand is teen phishing (passkeys/biometrics) en vermy om op “secret text entry” as ’n sekuriteitsgrens staat te maak (’n kwaadwillige IME sit onder die app UI).
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.


