Android IME / InputMethodService zloraba (zlonamerne tastature)
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Pregled
Android dozvoljava third-party tastature putem InputMethodService (IME). Kada korisnik omogući tastaturu i izabere je kao trenutnu metodu unosa, IME može posmatrati (i uticati na) praktično sav unos teksta koji se generiše na uređaju u okviru aplikacija.
Zbog toga nekoliko Android banking trojana uključuje opciju “secure keyboard”: zlonamerni IME prima pritiske tastera čak i iz aplikacija koje nikada ne ugrađuju WebView (bankarske aplikacije, chat aplikacije, crypto wallets itd.).
Note
android.permission.BIND_INPUT_METHODse obično deklariše na IME service tako da samo sistem može da se bind-uje na njega. Deklarisanje samo po sebi ne daje posebne privilegije; ključni korak je naterati žrtvu da omogući/izabere tastaturu u Settings.
Deklaracija u manifestu
Tastatura se izlaže preko servisa sa android.view.InputMethod intent action i IME konfiguracionim XML-om:
<!-- 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>
Savet za otkrivanje: aplikacija koja ne liči na tastaturu, a deklariše InputMethodService, predstavlja jaku crvenu zastavicu.
Odakle dolaze podaci
U toku izvršavanja IME saznaje:
- ciljana aplikacija u koju se kuca (putem
EditorInfo, npr.attribute.packageNameuonStartInput). - Tekst koji se unosi (kroz interakciju IME-a sa trenutnim
InputConnectioni/ili događajima tastera, u zavisnosti od implementacije).
Minimalna (nefunkcionalna) skica tačke hook-a visokog signala:
public class SpyKeyboard extends InputMethodService {
@Override public void onStartInput(EditorInfo attribute, boolean restarting) {
// attribute.packageName identifies the foreground app receiving input
}
}
Uobičajeni tok omogućavanja i prikupljanja (zabeleženo u stvarnom svetu)
- APK se reklamira kao „sigurna tastatura“ ili je tastatura ugrađena u širi trojan.
- Malver navodi žrtvu u sistemske postavke tastature (npr. pokretanjem
Settings.ACTION_INPUT_METHOD_SETTINGSi/ili korišćenjem UI automatizacije) dok IME ne bude omogućeno i postavljeno kao podrazumevano. - Pritisci tastera se keširaju po aplikaciji i eksfiltriraju preko postojećeg C2 kanala malvera, često u kombinaciji sa drugim izvorima podataka (npr.
WebViewman-in-the-browser telemetrija).
Kako otkriti / uraditi trijažu
Provere na uređaju
- Settings: Instalirane tastature / podrazumevana tastatura (tražite nepoznate IME).
- ADB:
adb shell dumpsys input_method
adb shell ime list -a
adb shell ime help
Statička trijaža APK-a
- Potražite
InputMethodServiceklase iandroid.view.InputMethodintent filter. - Pregledajte
@xml/*IME konfiguraciju na koju se pozivaandroid.view.im. - Proverite da li izjava o funkcionalnosti aplikacije odgovara tome da aplikacija isporučuje kompletnu tastaturu (UI/resursi).
Mitigacije
- User/MDM: dozvolite na allowlisti pouzdane tastature; blokirajte nepoznate IME-e na managed profilima/uređajima.
- App-side (high risk apps): preferirajte autentifikaciju otpornu na phishing (passkeys/biometrics) i izbegavajte oslanjanje na “secret text entry” kao bezbednosnu granicu (maliciozni IME se nalazi ispod UI aplikacije).
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.


