Firmware-level Android Backdoor via libandroid_runtime Zygote Injection

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

Επισκόπηση

Η αλλοίωση στην αλυσίδα εφοδιασμού του /system/lib[64]/libandroid_runtime.so μπορεί να δεσμεύσει την android.util.Log.println_native έτσι ώστε κάθε εφαρμογή που forkαρίζεται από το Zygote να εκτελεί κώδικα του επιτιθέμενου. Το backdoor Keenadu προσθέτει μία μόνο κλήση μέσα στο println_native που ενεργοποιεί έναν native dropper. Εφόσον όλες οι διεργασίες εφαρμογών τρέχουν αυτόν τον κώδικα, τα όρια του Android sandbox και τα δικαιώματα ανά εφαρμογή παρακαμπτονται ουσιαστικά.

Dropper path: native patch → RC4 → DexClassLoader

  • Hooked entry: extra call inside println_native to __log_check_tag_count (injected static lib libVndxUtils.a).
  • Payload storage: RC4-decrypt blob embedded in the .so, drop to /data/dalvik-cache/arm[64]/system@framework@vndx_10x.jar@classes.jar.
  • Load & execute: DexClassLoader loads the jar and invokes com.ak.test.Main.main. Runtime logs use tag AK_CPP (triage artifact).
  • Anti-analysis: aborts in Google/Sprint/T-Mobile system apps or if kill-switch files exist.
  • Zygote role split:
  • In system_server → instantiate AKServer.
  • In any other app → instantiate AKClient.

Binder-based client/server backdoor

  • Ο AKServer (τρέχοντας στο system_server) στέλνει προστατευμένα broadcasts:
  • com.action.SystemOptimizeService → binder interface για clients.
  • com.action.SystemProtectService → binder interface για downloaded modules.
  • Ο AKClient (μέσα σε κάθε app) λαμβάνει το interface μέσω broadcast και εκτελεί μια attach transaction, παραδίδοντας έναν IPC wrapper ώστε ο server να μπορεί να φορτώσει αυθαίρετο DEX μέσα στη τρέχουσα διεργασία της εφαρμογής.
  • Εκτεθειμένες προνομιακές ενέργειες (μέσω SystemProtectService): grant/revoke οποιουδήποτε permission για οποιοδήποτε package, ανάκτηση geolocation, και εξαγωγή πληροφοριών συσκευής. Αυτό κεντρικοποιεί την παράκαμψη προνομίων ενώ εξακολουθεί να εκτελεί κώδικα στις επιλεγμένες εφαρμογές στόχους (Chrome, YouTube, launcher, shopping apps, κ.λπ.).

C2 staging, crypto, and gating

  • Host discovery: Base64 → gzip → AES-128-CFB decrypt with key MD5("ota.host.ba60d29da7fd4794b5c5f732916f7d5c"), IV "0102030405060708".
  • Victim registration: συλλογή IMEI/MAC/model/OS, κρυπτογράφηση με κλειδί MD5("ota.api.bbf6e0a947a5f41d7f5226affcfd858c"), POST στο /ak/api/pts/v4 με params m=MD5(IMEI) και n=w|m (τύπος δικτύου). Η απάντηση data κρυπτογραφείται με τον ίδιο τρόπο.
  • Activation delay: ο C2 παρέχει modules μόνο μετά από ~2.5 μήνες από ένα “activation time” στο αίτημα, καθυστερώντας την ενεργοποίηση σε sandbox.
  • Module container (proprietary):
struct KeenaduPayload {
int32_t  version;
uint8_t  padding[0x100];
uint8_t  salt[0x20];
KeenaduChunk config;   // size + data
KeenaduChunk payload;  // size + data
KeenaduChunk signature;// size + data
} __packed;
  • Ακεραιότητα: MD5 έλεγχος αρχείου + DSA υπογραφή (μόνο ο χειριστής με το ιδιωτικό κλειδί μπορεί να εκδώσει modules).
  • Αποκρυπτογράφηση: AES-128-CFB, key MD5("37d9a33df833c0d6f11f1b8079aaa2dc" + salt), IV "0102030405060708".

Επίμονη παρουσία & συμβουλές ψηφιακής εγκληματολογίας

  • Τοποθέτηση στην εφοδιαστική αλυσίδα: κακόβουλη στατική lib libVndxUtils.a linked into libandroid_runtime.so κατά το build (π.χ., vendor/mediatek/proprietary/external/libutils/arm[64]/libVndxUtils.a).
  • Έλεγχος firmware: οι εικόνες firmware διανέμονται ως Android Sparse super.img; χρησιμοποιήστε lpunpack (ή παρόμοιο) για να εξαγάγετε κατατμήσεις και να επιθεωρήσετε libandroid_runtime.so για επιπλέον κλήσεις στο println_native.
  • Ίχνη στη συσκευή: η παρουσία του /data/dalvik-cache/arm*/system@framework@vndx_10x.jar@classes.jar, το logcat tag AK_CPP, ή προστατευόμενα broadcasts με ονόματα com.action.SystemOptimizeService/com.action.SystemProtectService υποδεικνύουν συμβιβασμό.

Αναφορές

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