Trojan Android ciblant les utilisateurs sud coréens. Conçu pour supprimer les applications bancaires en les remplaçant par des copies piratées, ainsi que pour exécuter les commandes reçues. Ce Trojan représente un fichier exécutable dex pour Android (Dalvik executable). Il est lancé à l'aide du dropper Android.MulDrop.46.origin, qui est distribué sous couvert d'une application légitime.
La communication avec le serveur de gestion et l'exécution des commandes
Pour déterminer l'adresse IP du serveur de gestion Android.BankBot.35.origin se connecte aux sites suivants :
http://[xxx].[xxx].85.17:5245/dns.asp?name=sdk[xxx].vi[xx].co
http://m.[xxx]ne.com/profile?hostuin=[xxxxxx]1716
http://[xxx].[xxx].85.17:5245/dns.asp?name=xiao[xx].ie[xx].net.
Une fois la connexion établie Android.BankBot.35.origin y envoie les données suivantes (en JSON) :
- type de réseau cellulaire ;
- type de connexion Internet active (données cellulaires ou Wi-Fi) ;
- qualité du Wi-Fi ;
- informations sur la disponibilité de la carte SIM ;
- numéro de téléphone ;
- niveau de la batterie ;
- identificateur IMEI de l'appareil ;
- version du Trojan ;
- identificateur unique du Trojan ;
- données demandées dans la commande.
En réponse, le malware reçoit la liste des commandes (également en JSON). Android.BankBot.35.origin peut exécuter les commandes suivantes :
- envoyer un SMS à un certain numéro avec un texte spécifié dans la commande ;
- activer ou désactiver le Wi-Fi ;
- télécharger sur le serveur les contacts (y compris ceux de la carte SIM) ;
- télécharger et lancer un fichier dex.
Remplacement des versions légitimes des clients bancaires
Toutes les 90 secondes, le Trojan vérifie la présence d'une des applications bancaires suivantes :
- com.wooribank.pib.smart;
- com.kbstar.kbbank;
- com.ibk.neobanking;
- com.sc.danb.scbankapp;
- com.shinhan.sbanking;
- com.hanabank.ebk.channel.android.hananbank;
- nh.smart;
- com.epost.psf.sdsi;
- com.kftc.kjbsmb;
- com.smg.spbs.
S’il en trouve une, Android.BankBot.35.origin se connecte au serveur de gestion et télécharge la copie piratée appropriée :
http://[xxx].[xxx].245.166:6545/ *pk_name*.apk, où *pk_name*.apk – le nom de la copie malveillante de l'application bancaire. Ainsi, le Trojan peut télécharger les applications suivantes (détectées comme Android.MulDrop.46.origin):
- com.cash.apc.woori.kr.android.apd;
- com.kr.androids.kbstar.kbbankings.app;
- com.ibk.korea.kr.androids.ibkbanking;
- com.goog.sc.android.dadbdkr.scbankapp;
- com.android.google.shinhanbbk.kr.app;
- com.hana.google.kr.channel.korea.app;
- com.we.google.nhb.kr.bk.app;
- com.android.post.fsps.kr.wu.sdsi;
- com.kr.android.ftkc.kjb.kjbsmb.app;
- com.androids.kr.kf.androids.sm.spb
Après le téléchargement du package d'installation nécessaire, Android.BankBot.35.origin affiche sur l'écran une requête pour installer la nouvelle version de l'application de la banque en ligne :
Après la confirmation de l'utilisateur, le Trojan supprime l'application originale en la remplaçant par la copie.
Lancement des composants supplémentaires
Les fichiers dex, téléchargés par le Trojan, sont lancés par le dropper Android.MulDrop.46.origin. Pour ce faire, il utilise l'initialisation d'Android.BankBot.35.origin (DexClassLoader, c'est pourquoi l'utilisateur ne participe pas à ce processus).
Le blocage des SMS
Android.BankBot.35.origin peut intercepter et supprimer les SMS provenant de certains numéros. Ces numéros sont inclus à la liste noire du Trojan.
Auto protection
Android.BankBot.35.origin possède un mécanisme d'auto protection. Toutes les 2 secondes (pour la modification Android.BankBot.36.origin – 0,2 secondes), le logiciel malveillant vérifie si l'une des applications suivantes est activée :
- com.estsoft.alyac.ui (un logiciel antivirus populaire en Corée du Sud);
- packageinstaller.UninstallerActivity (l'outil de gestion des applications);
- *.DeviceAdminAdd (l'interface de gestion des administrateurs de l'appareil).
Si au moins l’une d'entre elles est activée, Android.BankBot.35.origin ramène l'utilisateur vers l'écran principal :
if(v3 != 0 || v4 != 0 || v5 != 0) {
Intent v2 = new Intent("android.intent.action.MAIN");
v2.addCategory("android.intent.category.HOME");
v2.addFlags(268435456);
this.this$1.this$0.service.startActivity(v2);
Toutefois, l'auto protection ne fonctionne pas si l'une des applications bancaires originales est présente dans le système et que l'Android.BankBot.35.origin n'a pas encore remplacée, ou si le Trojan n'a pas les droits administrateur de l'appareil mobile.