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
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Επισκόπηση
Η αλλοίωση στην αλυσίδα εφοδιασμού του /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_nativeto__log_check_tag_count(injected static liblibVndxUtils.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:
DexClassLoaderloads the jar and invokescom.ak.test.Main.main. Runtime logs use tagAK_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→ instantiateAKServer. - 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 και εκτελεί μιαattachtransaction, παραδίδοντας έναν 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με paramsm=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.alinked intolibandroid_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 tagAK_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
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.


