Firmware-Ebene Android Backdoor via libandroid_runtime Zygote Injection
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Übersicht
Manipulation in der Lieferkette von /system/lib[64]/libandroid_runtime.so kann android.util.Log.println_native kapern, sodass jede von Zygote geforkte App Angreifer-Code ausführt. Der Keenadu backdoor fügt einen einzelnen Aufruf innerhalb von println_native hinzu, der einen nativen dropper startet. Da alle App-Prozesse diesen Code ausführen, werden Android-Sandbox-Grenzen und app-spezifische Berechtigungen effektiv umgangen.
Dropper-Pfad: 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.
- In
Binder-basierter Client/Server backdoor
AKServer(running insystem_server) sends protected broadcasts:com.action.SystemOptimizeService→ binder interface for clients.com.action.SystemProtectService→ binder interface for downloaded modules.
AKClient(inside every app) receives the interface via broadcast and performs anattachtransaction, handing an IPC wrapper so the server can load arbitrary DEX inside the current app process.- Exposed privileged operations (via
SystemProtectService): grant/revoke any permission for any package, retrieve geolocation, and exfiltrate device info. This centralizes privilege bypass while still executing code in chosen target apps (Chrome, YouTube, launcher, shopping apps, etc.).
C2 staging, crypto, and gating
- Host discovery: Base64 → gzip → AES-128-CFB decrypt with key
MD5("ota.host.ba60d29da7fd4794b5c5f732916f7d5c"), IV"0102030405060708". - Victim registration: collect IMEI/MAC/model/OS, encrypt with key
MD5("ota.api.bbf6e0a947a5f41d7f5226affcfd858c"), POST to/ak/api/pts/v4with paramsm=MD5(IMEI)andn=w|m(network type). Responsedatais encrypted identically. - Activation delay: C2 serves modules only after ~2.5 months from an “activation time” in the request, frustrating sandbox detonations.
- 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;
- Integrität: MD5-Dateiüberprüfung + DSA-Signatur (nur Betreiber mit privatem Schlüssel kann Module ausstellen).
- Entschlüsselung: AES-128-CFB, key
MD5("37d9a33df833c0d6f11f1b8079aaa2dc" + salt), IV"0102030405060708".
Persistenz & forensische Hinweise
- Platzierung in der Lieferkette: bösartige statische lib
libVndxUtils.awird während des Builds inlibandroid_runtime.soeingebunden (z.B.vendor/mediatek/proprietary/external/libutils/arm[64]/libVndxUtils.a). - Firmware-Audit: Firmware-Images werden als Android Sparse
super.imgausgeliefert; verwendelpunpack(oder Ähnliches), um Partitionen zu extrahieren undlibandroid_runtime.soauf zusätzliche Aufrufe inprintln_nativezu untersuchen. - Artefakte auf dem Gerät: Das Vorhandensein von
/data/dalvik-cache/arm*/system@framework@vndx_10x.jar@classes.jar, Logcat-TagAK_CPPoder geschützte Broadcasts namenscom.action.SystemOptimizeService/com.action.SystemProtectServicedeutet auf eine Kompromittierung hin.
References
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.


