🔍 Contexte
Publié le 31 mars 2026 par McAfee Labs (auteur : Ahmad Zubair Zahid), cet article présente les résultats d’une investigation approfondie sur une campagne de rootkit Android baptisée Operation NoVoice, distribuée via le Google Play Store officiel.
🎯 Vecteur d’infection et distribution
- Plus de 50 applications malveillantes publiées sur Google Play (nettoyeurs, jeux, galeries photos) ont été identifiées, totalisant au moins 2,3 millions de téléchargements.
- Aucun sideloading requis, aucune permission inhabituelle demandée.
- Les composants malveillants sont enregistrés sous
com.facebook.utils, se fondant dans le SDK Facebook légitime. - Le payload initial est dissimulé dans une image polyglotte (payload chiffré après le marqueur IEND du PNG).
⚙️ Chaîne d’infection en 8 étapes
- Stage 1 – Delivery : Extraction et déchiffrement du payload
enc.apk→h.apkdepuis les assets de l’app. - Stage 2 – Gatekeeper : Chargement de
libkwc.soqui vérifie l’environnement (15 contrôles anti-analyse, géofencing Beijing/Shenzhen, détection émulateur, Xposed, VPN). - Stage 3 – Plugin : Framework plugin “kuwo” avec check-in C2 toutes les 60 secondes ; plugins livrés via images polyglotte déguisées en icônes (
warningIcon). - Stage 4 – Exploit :
security.jarenvoie les identifiants matériels au C2 qui retourne des exploits ciblés. 22 exploits récupérés, dont une chaîne : use-after-free IPv6 + vulnérabilité driver Mali GPU + désactivation SELinux. - Stage 5 – Rootkit :
CsKaitno.dremplacelibandroid_runtime.soetlibmedia_jni.sopar des wrappers malveillants (ARM32/ARM64).jkpatchmodifie le bytecode framework compilé sur disque. - Stage 6 – Watchdog : Daemon
watch_dogvérifie l’installation toutes les 60 secondes, force un redémarrage si nécessaire. Survit à la réinitialisation d’usine (Android 7 et inférieur). - Stage 7 – Injection : À chaque démarrage, toutes les apps héritent du code attaquant.
BufferA(installeur silencieux) etBufferB(outil post-exploitation principal, deux canaux C2 indépendants). - Stage 8 – Theft : Payload
PtfLibc(hébergé sur Alibaba Cloud OSS) cible WhatsApp : copie de la base de données de chiffrement, extraction des clés Signal, clonage de session.
🌍 Géographie et cibles
Les taux d’infection les plus élevés sont observés au Nigeria, Éthiopie, Algérie, Inde et Kenya, régions où les appareils anciens sous Android 7 ou inférieur sont répandus.
🏗️ Infrastructure C2
- Domaines séparés par fonction : enrollment (
fcm.androidlogs.com), C2 principal (stat.upload-logs.com), fallback (config.updatesdk.com), CDN exploits (download.androidlogs.com), tâches BufferB (prod-log-oss-01.oss-ap-southeast-1.aliyuncs.com), exfiltration (api.googlserves.com). - Domaine de fallback hardcodé :
api.googlserves.com(imitation de trafic Google).
🔗 Attribution
Plusieurs indicateurs lient NoVoice à la famille Android.Triada (notamment Triada.231) : même propriété système os.config.ppgl.status pour marquer les appareils compromis, même technique de remplacement de libandroid_runtime.so.
📋 Type d’article
Publication de recherche technique détaillée par McAfee Labs, visant à documenter une campagne active, fournir des IoCs exploitables et informer la communauté CTI et les partenaires (App Defense Alliance, Google).
🧠 TTPs et IOCs détectés
TTP
- T1436 — Masquerading (Defense Evasion)
- T1406 — Obfuscated Files or Information (Defense Evasion)
- T1544 — Ingress Tool Transfer (Command and Control)
- T1437 — Application Layer Protocol (Command and Control)
- T1533 — Data from Local System (Collection)
- T1646 — Exfiltration Over C2 Channel (Exfiltration)
- T1398 — Boot or Logon Initialization Scripts (Persistence)
- T1625 — Hijack Execution Flow (Persistence)
- T1629.003 — Impair Defenses: Disable or Modify Tools (Defense Evasion)
- T1422 — System Network Configuration Discovery (Discovery)
- T1426 — System Information Discovery (Discovery)
- T1523 — Evade Analysis Environment (Defense Evasion)
- T1582 — SMS Control (Collection)
- T1409 — Stored Application Data (Collection)
- T1474 — Supply Chain Compromise (Initial Access)
- T1475 — Deliver Malicious App via Authorized App Store (Initial Access)
IOC
- Domaines :
api.googlserves.com - Domaines :
api.uplogconfig.com - Domaines :
avatar.ttaeae.com - Domaines :
awslog.oss-accelerate.aliyuncs.com - Domaines :
check.updateconfig.com - Domaines :
config.googleslb.com - Domaines :
config.updatesdk.com - Domaines :
dnskn.googlesapi.com - Domaines :
download.androidlogs.com - Domaines :
fcm.androidlogs.com - Domaines :
log.logupload.com - Domaines :
logserves.s3-accelerate.amazonaws.com - Domaines :
prod-log-oss-01.oss-ap-southeast-1.aliyuncs.com - Domaines :
sao.ttbebe.com - Domaines :
stat.upload-logs.com - Domaines :
upload.crash-report.com - Domaines :
nzxsxn.98kk89.com - Domaines :
98kk89.com - SHA256 :
03e62ac5080496c67676c0ef5f0bc50fc42fc31cf953538eda7d6ec6951979d8 - SHA256 :
066a096a3716e02a6a40f0d7e6c1063baecbebc9cbcc91e7f55b2f82c0dad413 - SHA256 :
0751decd391fa76d02329b0726c308206e58fc867f50283aa688d9fe0c70e835 - SHA256 :
07a9d41c1c775def78a017cf1f6e65266382e76de0f05400b3296e2230979664 - SHA256 :
0f28c49b24070a36dec09dd9d4b768e1ef6583b4891eca2e935a304ce704fcce - SHA256 :
106edd06b6961c3d38edfefd2869ee05285f11b68befe145b124794d0e79e766 - SHA256 :
183e9174e51786be77d1341bcf7f05514f581823532028119c5844a8a5111848 - SHA256 :
1e0376330ff9e97f798870da8433c81e39f3591c82497ca1f6b5f00878d0221a - SHA256 :
1e7fe0ae7546162f23ff4f6e570f51b38562bf4f0ffd9305533b43d19574be38 - SHA256 :
1e8b048c8d32662f340787893d9ca824b039c14fb91bcc16e185a8bb872e0b80 - SHA256 :
224e2395d3df96cf19e0b7be9731452da5b568026d81bd0981e48893f6a66859 - SHA256 :
2c2c965f3d091693bc6906fc2ed8d03ffccb84e0665841f2d073c2f0a09261bc - SHA256 :
30504104f232a990f8226ff746b1718aafb727ce111d5a538962cc5e06c4259a - SHA256 :
3937b0bec287662fd82fca4693c8b3619b8c61eca7fe6efa7540c1ae291f8759 - SHA256 :
4830a985f064974e6b5d19ae95d645d01fb57edd975a4fce5a1453c2ada70d4e - SHA256 :
4f7825647bab001298f768302d0eeb6e0d639d401dc8b5bf60a4b9841a93c980 - SHA256 :
4fbf1906fe02745cbf0350563440e9a05d19cd4a27c4fb6b67436392a18a0cd4 - SHA256 :
54224288aa9fa3d4281fb91ad7b202fbc3e5708b173e319b6b450ad15bcdab43 - SHA256 :
594521e642fee75d474d8d0be839ebe9341f30196b19555882499145bf00746b - SHA256 :
721d92d30fbb90fe643507055baa4cce937c8659f1520be1bbce7f9669af6f84 - SHA256 :
7d90ee0be5eb63fbaa6839efdd6217b482576b1bab553731cac0b55f2fa1e6fa - SHA256 :
7f00991e63154a79ea220b713fcfb2ef8b8db923a75366a61e9bc30d9c355274 - SHA256 :
8cd77df7cf2242105b12297071ad1d11e91264f9de311d1b082666da19134476 - SHA256 :
974a5d005d3cfe4c63bd7a46ca72c6716c6c6de397d2e3e19b1730def31f7825 - SHA256 :
98819230a6c3f5092517ada9652e9156e338acc27d29e4647b3cb69cddb668cb - SHA256 :
98db4904c3299b8ac383dd177c3cde87af25c088df1988f484427aab3b5c4e0d - SHA256 :
9b9f55c4a68385e4a739c7d11159c9b4ab006660142331e8bdc477b5eba62aad - SHA256 :
a02694b5de7a8a6ef3024d53e54a54a676f992bfa1e070f07827ab9b5dd1365c - SHA256 :
a1e77c148f190b6bfdd40ce657722e902a31cedecab669dd6f78f38b6b18ddf7 - SHA256 :
a430123efe9611f322fbc3c459fc5ec13abbb0def88ba3ec56a05a361a51a9ac - SHA256 :
ab6365bf7e6c7fba6867b44a80e8bf653c7b66ff91204ee3e2981b6532fea7ee - SHA256 :
b4438ac1694e3a08a994750a7ac76399c48d5d3446e90ebebbea1f8694bf3dd5 - SHA256 :
b8087e3535d395210b80637be35da6ae8e10450b6fb87de62a284d5d7397cd17 - SHA256 :
bf47dc1577c8b862c4e849a7ce52e143239f2f7274421befa902baf4bd1c4a19 - SHA256 :
c332166f720e4d2f6f9b59993559df05281e7d2fbd56f90a7f2399a0ac620295 - SHA256 :
c509a98d0823add0c1440a7b043586eb5a8069fbb776ca36252f5b7653c92cb7 - SHA256 :
c517b26dfc8ffd5de7f49966ff3391475f80299ebc6ad9988bf166029cf76c91 - SHA256 :
cf945c433aa80120be10566b9f1ae88e043f96872996f599b75bb57c74248e56 - SHA256 :
d72d96c6f299fe961dd98655e0468e45ed3ac03df0cfa499e27d4c399e304500 - SHA256 :
db1168f2cb3b25ef65e06eb4e788ddda237a428fbce0725de1e9d70b36e96833 - SHA256 :
ddc4da4c63c8bc7df53c3c7fe350b56ad31f313c7d95b472dc45a9fcf85273f0 - SHA256 :
df00753933359d7369668eddeb0dc2565f075c78e4b46f3cabd2e8ff31eda42e - SHA256 :
e32c8a869585c107ccd1586b5edebc1d8eaa18017c2dd39b6267eec4db7f7410 - SHA256 :
e5b8d25ef612f0240ce28fbffd550fd4e0b9abdbf325e3ff85718e8312b70c2b - SHA256 :
e5f3aa5ef6b5b5fa94a921b55f52aa2c1011486b7370f1585deb6d571325ebcb - SHA256 :
ec79443aa53864e4d322b8fa8fd4aad0ef878221f01e7d32512694ba24992aee - SHA256 :
f654c5f926ebfcded4c0d07590972536280454e2501dc8a525390402fa945ff1 - SHA256 :
f7c664ea66c43a82801ed7da23369af1e285857c1a4bf200147b716715f09d3f - SHA256 :
fc3b06c36feb38ed62f3034e428e814d6e1ac06ec1569ea22428374b8d15d848 - SHA256 :
fd62c2bfa2277eff8787926f9976aa4a11235a18a9a543ced71a509c6ebf2bf2 - Fichiers :
enc.apk - Fichiers :
h.apk - Fichiers :
libkwc.so - Fichiers :
sec.jar - Fichiers :
hex.jar - Fichiers :
CsKaitno.d - Fichiers :
asbymol - Fichiers :
bdlomsd - Fichiers :
jkpatch - Fichiers :
watch_dog - Fichiers :
libandroid_runtime.so - Fichiers :
libmedia_jni.so - Fichiers :
security.jar - Fichiers :
PtfLibc
Malware / Outils
- NoVoice Rootkit (other)
- CsKaitno.d (other)
- BufferA (other)
- BufferB (backdoor)
- PtfLibc (stealer)
- watch_dog (other)
- jkpatch (other)
- libkwc.so (loader)
- Android.Triada (other)
🔗 Source originale : https://www.mcafee.com/blogs/other-blogs/mcafee-labs/new-research-operation-novoice-rootkit-malware-android/