Android virtualizacija na nivou aplikacije (App Cloning)
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Application-level virtualization (aka app cloning/container frameworks such as DroidPlugin-class loaders) pokreće više APK-ova unutar jedne host aplikacije koja kontroliše lifecycle, class loading, storage i permissions. Gostujuće aplikacije često se izvršavaju unutar UID-a hosta, rušeći uobičajenu per-app izolaciju Androida i otežavajući detekciju jer sistem vidi jedan proces/UID.
Osnovna instalacija/pokretanje naspram virtualizovanog izvršavanja
- Normal install: Package Manager izvlači APK →
/data/app/<rand>/com.pkg-<rand>/base.apk, dodeljuje jedinstveni UID, i Zygote forkuje proces koji učitavaclasses.dex. - Dex load primitive:
DexFile.openDexFile()delegira naopenDexFileNative()koristeći apsolutne putanje; virtualizacioni slojevi često hook-uju/preusmeravaju ovo da bi učitali guest dex iz putanja kontrolisanih od strane hosta. - Virtualized launch: Host startuje proces pod svojim UID-om, učitava guest
base.apk/dex pomoću custom loader-a i izlaže lifecycle callback-e preko Java proxy-ja. Pozivi guest storage API-ja se remapuju na putanje kontrolisane od strane hosta.
Obrasci zloupotrebe
- Permission escalation via shared UID: Gosti se izvršavaju pod UID-om hosta i mogu naslediti sva permissions dodijeljena hostu čak i ako nisu deklarisana u guest manifestu. Hostovi sa prevelikim permissions (masivan
AndroidManifest.xml) postaju „permission umbrellas“. - Stealthy code loading: Host hook-uje
openDexFileNative/class loadere da ubaci, zameni ili instrumentiše guest dex u runtime-u, zaobilazeći statičku analizu. - Malicious host vs malicious guest:
- Zlonamerni host: ponaša se kao dropper/executor, instrumentiše/filtrira ponašanje gosta, manipuliše padovima aplikacija.
- Zlonamerni gost: zloupotrebljava shared UID da dosegne podatke drugih gostiju, izvrši ptrace nad njima ili iskoristi permissions hosta.
Fingerprinting & detection
- Multiple base.apk in one process: Kontejner često mapira više APK-ova u istom PID-u.
adb shell "cat /proc/<pid>/maps | grep base.apk"
# Suspicious: host base.apk + unrelated packages mapped together
- Hooking/instrumentation artifacts: Pretražite poznate lib-ove (npr. Frida) u maps i potvrdite na disku.
adb shell "cat /proc/<pid>/maps | grep frida"
adb shell "file /data/app/..../lib/arm64/libfrida-gadget.so"
- Crash-tamper probe: Namerno izazovite izuzetak (npr. NPE) i posmatrajte da li proces normalno umire; hostovi koji interceptuju lifecycle/crash puteve mogu „progutati“ ili preraditi padove.
Napomene za hardening
- Server-side attestation: Sprovodite osetljive operacije iza Play Integrity tokena tako da samo genuine instalacije (ne dinamicki učitani gosti) budu prihvaćene na serverskoj strani.
- Use stronger isolation: Za visoko osetljiv kod, preferirajte Android Virtualization Framework (AVF)/TEE-backed izvršavanje umesto app-level kontejnera koji dele UID.
References
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.


