Android Application-Level Virtualization (App Cloning)

Tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Application-level virtualization (aka app cloning/container frameworks such as DroidPlugin-class loaders) laat meerdere APKs in een enkele gasheer-app loop wat die lifecycle, class loading, stoorplek en permissies beheer. Gaste voer dikwels binne die gasheer-UID uit, wat Android se normale per-app isolasie laat inklap en opsporing moeilik maak omdat die stelsel een proses/UID sien.

Basiese installasie/opstart vs gevirtualiseerde uitvoering

  • Normal install: Package Manager ekstraheer APK → /data/app/<rand>/com.pkg-<rand>/base.apk, ken ’n unieke UID toe, en Zygote fork ’n proses wat classes.dex laai.
  • Dex load primitive: DexFile.openDexFile() deleger na openDexFileNative() wat absolute paaie gebruik; virtualiseringslae hook/omlei dit algemeen om gasheer-gekontroleerde paaie te gebruik vir die laai van gast dex.
  • Virtualized launch: Gasheer begin ’n proses onder sy UID, laai die gasheer se base.apk/dex met ’n aangepaste loader, en ekspon life-cycle callbacks via Java proxies. Gaste se stoor-API-oproepe word na gasheer-gekontroleerde paaie herlei.

Misbruik patrone

  • Permission escalation via shared UID: Gaste loop onder die gasheer-UID en kan alle gasheer-toegewezen permissies ervaar selfs al is dit nie in die gasheer se manifest verklaar nie. Oor-permissieerde gasheer (massiewe AndroidManifest.xml) word “permission umbrellas”.
  • Stealthy code loading: Gasheer hook openDexFileNative/class loaders om gasheer dex tydens runtime te injekteer, vervang of instrumenteer, wat static analysis omseil.
  • Malicious host vs malicious guest:
  • Evil host: tree op as dropper/executor, instrumenteer/filtreer gas-gedrag, knoei aan crashes.
  • Evil guest: misbruik gedeelde UID om by ander gaste se data te kom, hulle te ptrace, of gasheer-permissies te benut.

Fingerprinting & detection

  • Multiple base.apk in one process: ’n kontainer map dikwels verskeie APKs in dieselfde PID.
adb shell "cat /proc/<pid>/maps | grep base.apk"
# Suspicious: host base.apk + unrelated packages mapped together
  • Hooking/instrumentation artifacts: Soek na bekende libs (bv. Frida) in maps en bevestig op skyf.
adb shell "cat /proc/<pid>/maps | grep frida"
adb shell "file /data/app/..../lib/arm64/libfrida-gadget.so"
  • Crash-tamper probe: Induk doelbewus ’n exception (bv. NPE) en kyk of die proses normaal sterf; gasheers wat lifecycle/crash-paadjies onderskep kan crashes insluk of herskryf.

Hardening notas

  • Server-side attestation: Plaas sensitiewe operasies agter Play Integrity tokens sodat slegs egte installs (nie dinamies gelaaide gaste nie) server-side aanvaar word.
  • Use stronger isolation: Vir hoogs sensitiewe kode, verkies die Android Virtualization Framework (AVF)/TEE-backed uitvoering in plaas van app-level kontainers wat ’n UID deel.

References

Tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks