Firmware-seviyesinde Android Backdoor via libandroid_runtime Zygote Injection
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Genel Bakış
/system/lib[64]/libandroid_runtime.so dosyasına tedarik zinciri düzeyinde müdahale, android.util.Log.println_native fonksiyonunu kaçırarak Zygote’tan fork’lanan her uygulamanın saldırgan kodu çalıştırmasını sağlayabilir. Keenadu backdoor’u println_native içine tek bir çağrı ekler; bu çağrı bir native dropper’ı tetikler. Tüm uygulama prosesleri bu kodu çalıştırdığından, Android sandbox sınırları ve uygulama başına izinler fiilen atlanır.
Dropper path: native patch → RC4 → DexClassLoader
- Hooked entry:
println_nativeiçine ek bir çağrı ile__log_check_tag_count(enjekte edilmiş statik liblibVndxUtils.a). - Payload storage:
.soiçine gömülü RC4-şifrelenmiş blob,/data/dalvik-cache/arm[64]/system@framework@vndx_10x.jar@classes.jarkonumuna yazılır. - Load & execute:
DexClassLoaderjar’ı yükler vecom.ak.test.Main.main’i çağırır. Runtime log’larıAK_CPPetiketi kullanır (triage artefaktı). - Anti-analysis: Google/Sprint/T-Mobile sistem uygulamalarında veya kill-switch dosyaları varsa abort eder.
- Zygote role split:
system_serveriçinde →AKServerörneklenir.- Diğer herhangi bir uygulamada →
AKClientörneklenir.
Binder-based client/server backdoor
AKServer(system_server içinde çalışan) korumalı broadcast’ler gönderir:com.action.SystemOptimizeService→ client’lar için binder arayüzü.com.action.SystemProtectService→ indirilen modüller için binder arayüzü.
AKClient(her uygulama içinde) broadcast ile arayüzü alır ve birattachtransaction’u gerçekleştirir; böylece server, mevcut uygulama prosesinin içinde rastgele DEX yükleyebilsin diye bir IPC wrapper sağlanır.- Açığa çıkan ayrıcalıklı işlemler (
SystemProtectServicearacılığıyla): herhangi bir paket için herhangi bir izni verip/iptal etme, konum bilgisi alma ve cihaz bilgisini dışarı sızdırma. Bu, ayrıcalıkların atlanmasını merkezi hale getirirken yine de kodun seçilen hedef uygulamalarda (Chrome, YouTube, launcher, alışveriş uygulamaları vb.) çalıştırılmasına izin verir.
C2 staging, crypto, and gating
- Host discovery: Base64 → gzip → AES-128-CFB ile
MD5("ota.host.ba60d29da7fd4794b5c5f732916f7d5c")anahtarı kullanılarak çözülür, IV"0102030405060708". - Victim registration: IMEI/MAC/model/OS toplanır,
MD5("ota.api.bbf6e0a947a5f41d7f5226affcfd858c")anahtarıyla şifrelenir,m=MD5(IMEI)ven=w|m(ağ tipi) parametreleriyle/ak/api/pts/v4adresine POST edilir. Dönendataaynı şekilde şifrelenmiştir. - Activation delay: C2, istekteki “activation time“dan yaklaşık ~2.5 ay sonra modülleri sunar; bu, sandbox tetiklemelerini zorlaştırır.
- 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;
- Bütünlük: MD5 dosya doğrulaması + DSA imzası (modülleri yalnızca özel anahtara sahip operatör yayımlayabilir).
- Şifre çözme: AES-128-CFB, anahtar
MD5("37d9a33df833c0d6f11f1b8079aaa2dc" + salt), IV"0102030405060708".
Kalıcılık & adli ipuçları
- Tedarik zinciri yerleştirmesi: kötü amaçlı statik lib
libVndxUtils.aderleme sırasındalibandroid_runtime.so’ya bağlanır (örn.,vendor/mediatek/proprietary/external/libutils/arm[64]/libVndxUtils.a). - Firmware denetimi: firmware görüntüleri Android Sparse
super.imgolarak gelir; bölümleri çıkarmak velibandroid_runtime.soiçindekiprintln_nativeiçindeki ekstra çağrıları incelemek içinlpunpack(veya benzeri) kullanın. - Cihaz üzerindeki bulgular:
/data/dalvik-cache/arm*/system@framework@vndx_10x.jar@classes.jardosyasının varlığı, logcat etiketiAK_CPP, veyacom.action.SystemOptimizeService/com.action.SystemProtectServiceadlı korumalı broadcast’ler kompromi göstergesidir.
References
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.


