Android IME / InputMethodService Зловживання (шкідливі клавіатури)
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Огляд
Android дозволяє сторонні клавіатури через InputMethodService (IME). Коли користувач увімкне клавіатуру і вибере її як поточний метод введення, IME може спостерігати (і впливати) фактично все текстове введення, що генерується на пристрої в різних додатках.
Ось чому декілька банківських троянів для Android додають функцію «secure keyboard»: шкідливий IME отримує натискання клавіш навіть від додатків, які ніколи не вбудовують WebView (банківські додатки, чат-додатки, криптогаманці тощо).
Note
android.permission.BIND_INPUT_METHODis typically declared on the IME service so only the system can bind to it. Declaring it doesn’t grant special privileges by itself; the key step is getting the victim to enable/select the keyboard in Settings.
Manifest declaration
Клавіатура надається через сервіс з intent action android.view.InputMethod та конфігураційним XML для IME:
<!-- 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>
Порада для виявлення: додаток, що не виглядає як клавіатура, але оголошує InputMethodService, є серйозним тривожним сигналом.
Звідки беруться дані
Під час виконання IME дізнається:
- цільовий додаток, у який вводиться текст (через
EditorInfo, наприкладattribute.packageNameвonStartInput). - Текст, що вводиться (через взаємодію IME з поточним
InputConnectionі/або подіями натискання клавіш залежно від реалізації).
Мінімальний (нефункціональний) ескіз ключової точки перехоплення:
public class SpyKeyboard extends InputMethodService {
@Override public void onStartInput(EditorInfo attribute, boolean restarting) {
// attribute.packageName identifies the foreground app receiving input
}
}
Загальна послідовність активації й збору (спостерігалася в реальному житті)
- APK рекламується як «безпечна клавіатура» або клавіатура вбудована в ширший троян.
- Шкідливе ПЗ заводить жертву в системні налаштування клавіатури (наприклад, запустивши
Settings.ACTION_INPUT_METHOD_SETTINGSта/або використовуючи UI automation), поки IME не буде увімкнено і встановлено за замовчуванням. - Натискання клавіш буферизуються окремо для кожного додатка і ексфільтруються через наявний C2-канал шкідливого ПЗ, часто в поєднанні з іншими джерелами даних (наприклад, телеметрія man-in-the-browser з
WebView).
Як виявити / провести триаж
Перевірки на пристрої
- Налаштування: Встановлені клавіатури / клавіатура за замовчуванням (шукати невідомі IME).
- ADB:
adb shell dumpsys input_method
adb shell ime list -a
adb shell ime help
Статичний аналіз APK
- Шукайте класи
InputMethodServiceта intent-фільтрandroid.view.InputMethod. - Перевірте
@xml/*конфігурацію IME, на яку посилаєтьсяandroid.view.im. - Переконайтеся, чи заявлена функціональність додатка відповідає наявності повного клавіатурного UI/ресурсів.
Заходи пом’якшення
- User/MDM: додайте в allowlist довірені keyboards; блокуйте невідомі IME в керованих профілях/пристроях.
- Сторона додатка (додатки з високим ризиком): віддавайте перевагу аутентифікації, стійкій до фішингу (passkeys/biometrics) і не покладайтеся на «secret text entry» як межу безпеки (шкідливий IME знаходиться під UI додатка).
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.


