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.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Επισκόπηση
Το Android επιτρέπει τρίτα πληκτρολόγια μέσω ενός InputMethodService (IME). Μόλις ένας χρήστης ενεργοποιήσει ένα πληκτρολόγιο και το επιλέξει ως το τρέχον μέσο εισαγωγής, το IME μπορεί να παρακολουθεί (και να επηρεάζει) ουσιαστικά όλη την εισαγωγή κειμένου που παράγεται στη συσκευή ανάμεσα σε εφαρμογές.
Γι’ αυτό αρκετά Android banking trojans ενσωματώνουν δυνατότητα «ασφαλούς πληκτρολογίου»: το κακόβουλο IME λαμβάνει πατήματα πλήκτρων ακόμη και από εφαρμογές που δεν ενσωματώνουν ποτέ WebView (εφαρμογές τραπεζών, εφαρμογές συνομιλίας, πορτοφόλια κρυπτονομισμάτων κ.λπ.).
Note
Το
android.permission.BIND_INPUT_METHODσυνήθως δηλώνεται στην IME service έτσι ώστε μόνο το σύστημα να μπορεί να την δεσμεύσει. Η δήλωση από μόνη της δεν παραχωρεί ειδικά προνόμια· το κρίσιμο βήμα είναι να γίνει το θύμα να ενεργοποιήσει/επιλέξει το πληκτρολόγιο στις Ρυθμίσεις.
Δήλωση στο Manifest
Ένα πληκτρολόγιο εκτίθεται μέσω μιας υπηρεσίας με τη δράση intent android.view.InputMethod και ένα IME configuration 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>
Συμβουλή ανίχνευσης: μια εφαρμογή που δεν μοιάζει με πληκτρολόγιο και δηλώνει InputMethodService είναι ισχυρή ένδειξη κινδύνου.
Από πού προέρχονται τα δεδομένα
Κατά την εκτέλεση, ένα IME μαθαίνει:
- Την εφαρμογή-στόχο στην οποία γίνεται η πληκτρολόγηση (μέσω
EditorInfo, π.χ.attribute.packageNameστοonStartInput). - Το κείμενο που εισάγεται (μέσω της αλληλεπίδρασης του IME με το τρέχον
InputConnectionκαι/ή key events ανάλογα με την υλοποίηση).
Ελάχιστο (μη λειτουργικό) σκίτσο του 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
}
}
Common enablement & collection workflow (observed in the wild)
- Το APK προωθείται ως “ασφαλές πληκτρολόγιο” ή το πληκτρολόγιο ενσωματώνεται σε ένα ευρύτερο trojan.
- Το malware αναγκάζει το θύμα να μεταβεί στις ρυθμίσεις συστήματος του πληκτρολογίου (π.χ. με εκκίνηση του
Settings.ACTION_INPUT_METHOD_SETTINGSκαι/ή χρήση UI automation) μέχρι το IME να ενεργοποιηθεί και να οριστεί ως προεπιλεγμένο. - Οι καταγραφές πλήκτρων αποθηκεύονται προσωρινά ανά εφαρμογή και εξάγονται μέσω του υπάρχοντος C2 καναλιού του malware, συχνά σε συνδυασμό με άλλες πηγές δεδομένων (π.χ.,
WebViewman-in-the-browser telemetry).
How to detect / triage
On-device checks
- Ρυθμίσεις: Εγκατεστημένα πληκτρολόγια / προεπιλεγμένο πληκτρολόγιο (αναζητήστε άγνωστα IMEs).
- ADB:
adb shell dumpsys input_method
adb shell ime list -a
adb shell ime help
Στατική αξιολόγηση ενός APK
- Ψάξτε για κλάσεις
InputMethodServiceκαι για το intent filterandroid.view.InputMethod. - Επιθεωρήστε την IME διαμόρφωση
@xml/*που αναφέρεται απόandroid.view.im. - Ελέγξτε αν η δηλωμένη λειτουργικότητα της εφαρμογής ανταποκρίνεται στην αποστολή πλήρους UI/πόρων πληκτρολογίου.
Αντιμετώπιση
- Χρήστης/MDM: επιτρέψτε μόνο αξιόπιστα πληκτρολόγια· μπλοκάρετε άγνωστα IME σε διαχειριζόμενα προφίλ/συσκευές.
- Στην πλευρά της εφαρμογής (εφαρμογές υψηλού κινδύνου): προτιμήστε έλεγχο ταυτότητας ανθεκτικό σε phishing (passkeys/βιομετρικά) και αποφύγετε να βασίζεστε στην «εισαγωγή μυστικού κειμένου» ως όριο ασφαλείας (ένα κακόβουλο 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.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.


