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

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_native içine ek bir çağrı ile __log_check_tag_count (enjekte edilmiş statik lib libVndxUtils.a).
  • Payload storage: .so içine gömülü RC4-şifrelenmiş blob, /data/dalvik-cache/arm[64]/system@framework@vndx_10x.jar@classes.jar konumuna yazılır.
  • Load & execute: DexClassLoader jar’ı yükler ve com.ak.test.Main.main’i çağırır. Runtime log’ları AK_CPP etiketi kullanır (triage artefaktı).
  • Anti-analysis: Google/Sprint/T-Mobile sistem uygulamalarında veya kill-switch dosyaları varsa abort eder.
  • Zygote role split:
    • system_server iç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 bir attach transaction’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 (SystemProtectService aracı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) ve n=w|m (ağ tipi) parametreleriyle /ak/api/pts/v4 adresine POST edilir. Dönen data aynı ş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.a derleme sırasında libandroid_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.img olarak gelir; bölümleri çıkarmak ve libandroid_runtime.so içindeki println_native içindeki ekstra çağrıları incelemek için lpunpack (veya benzeri) kullanın.
  • Cihaz üzerindeki bulgular: /data/dalvik-cache/arm*/system@framework@vndx_10x.jar@classes.jar dosyasının varlığı, logcat etiketi AK_CPP, veya com.action.SystemOptimizeService/com.action.SystemProtectService adlı 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