Copyright 2018-2019 Tchernobyl. Toute reproduction interdite sans l'autorisation de l'auteur

Enquête: campagne russe de phishing via SMS sur leboncoin

Coucou tout le monde,

Si je vous dis: campagne de phishing massive, botnet russe, AndroidBanker et Leboncoin vous me répondez quoi ?

Si vous avez répondu à haute voix (ou pas) « ARTICLE BIEN JUTEUX !!! » alors vous l’avez dans le mille 🙂

Internet est vaste et rempli de tous pleins de mystères. Et c’est justement ce côté mystérieux qui me passionne. Vous comprenez donc que lorsque l’on me tend un billet express pour découvrir les coulisses d’une attaque (surtout comme celle-ci) je ne réfléchis pas deux fois !

1°) Le Contexte

Récement un de mes amis qui avait mis en vente un objet sur le leboncoin avait reçu un SMS lui notifiant qu’il avait bien reçu le prépaiement de l’objet en question.

[pseudo de mon ami] je vous ai envoyé le prepaiement www-leboncoin.com/357143040654321870

Avant d’écrire cet article j’ai essayé de voir si on en parlait ailleurs, et vous pourrez d’ailleurs le vérifier, il n’y a que le forum UFC qui en parle ainsi qu’un Tweet de l’ami benkow_ le tout sans trop rentrer dans le détail.

Une fois le lien ouvert, une page similaire à celle du tweet est affiché. Bien sûr, le contenu ne peut pas s’afficher en entier si on ne télécharge bien évidemment pas l’appli. Et puis là, comme pour signifier l’excitation de l’auteur, les fautes de français se multiplient juqu’au drame…

La plupart des utilisateurs qui se font avoir par cette hideuse arnaque sont sauvés grâce à cet écran:

Ou encore grâce à celui-là pour les moins soucieux:

Eh oui! Bien que troublante d’ingéniosité sur de nombreux points, cette campagne tombe à l’eau car nombreux sont à avoir reçu la notif mais peu sont allé juqu’à tout faire pour avoir le petit fichier .apk installé sur leur téléphone.

2°) La charge utile (le fichier .apk)

Le fichier est très léger (pour une application 🙂 ), pas plus de 300 Ko.
Dès son execution, la fausse appli va se connecter au faux site afin que la victime puisse entrer ses coordonnées bancaires (bye bye les sous-sous).
Une fois cela fait, une connexion directe avec le serveur de Contrôle et de Commande (C2C) va s’opérer et via un fichier « gate.php », le serveur donne au zombie une sorte de mutex (en gros un identifiant, ex: 543759810537698240).

Et c’est là, que ça devient marrant:

Les auteurs semblent avoir initialement prévu de s’occuper d’un botnet android via HTTP totalement soumis et dévoué à son C2C (serveur de Contrôle et de Commande). Le truc, c’est que sur Android, il n’y a pas vraiment de véritables moyens de persistance comme sur d’autres systèmes 🙁 .

Par exemple, la permission d’exécution en arrière-plan est choisie par l’utilisateur lors de l’installation et même si elle est activée, rien ne garantie que le démon (le service de l’application) va bien se lancer de manière autonome après un redémarrage du téléphone.

Sans parler du fait qu’un téléphone portable reste rarement au même endroit (logique en même temps) et que du coup Internet ne va pas forcément fonctionner tout le temps (surtout si la victime est un prolétaire avec un forfait Internet tout pourri 🙂 )

Mais ne vous en faites pas, de ce côté les auteurs ont eu une idée de génie pour propager le malware (si si vraiment). Aller je vous donne un indice, voici les permissions que la fausse application demande au moment de l’installation:

    android.permission.CALL_PHONE          
    android.permission.CHANGE_WIFI_STATE
    android.permission.GET_TASKS
    android.permission.INTERNET           
    android.permission.READ_PHONE_STATE
    android.permission.READ_SMS
    android.permission.RECEIVE_SMS
    android.permission.SEND_SMS
    android.permission.SYSTEM_ALERT_WINDOW
    android.permission.BIND_ACCESSIBILITY_SERVICE
    android.permission.ACCESS_NETWORK_STATE
    android.permission.ACCESS_WIFI_STATE
    android.permission.CHANGE_NETWORK_STATE
    android.permission.REAL_GET_TASKS
    android.permission.RECEIVE_BOOT_COMPLETED
    android.permission.USES_POLICY_FORCE_LOCK
    android.permission.VIBRATE
    android.permission.WAKE_LOCK
    android.permission.WRITE_SETTINGS

Bon je l’avoue il n’y a rien de très exatraordinaire là-dedans étant donné qu’il s’agit de permissions de backdoor tout ce qu’il y a de plus standard… à part un tout petit détail. Le genre de tout petit détail qu’on zappe sur le moment mais qu’une fois qu’on tilte on se dit « Non de Zeus ! »

En effet, lorsque je menais mon enquête avec mon ami (que je remercie au passage), nous sommes tombés sur ce topic du forum UFC que choisir

C’est plus précisément ce passage qui nous intéresse ici:

« j’ai contacté le 06 qui m’a envoyé ce message, la presonne m’a répondu, il était asellé de coup de téléphone comme le mien !! Lui avait réussi à installer le .apk où on lui demandait de fournir ses coordonnées bancaires pour finaliser le prépaiement !! »

Quand on lit ça, on se dit « Bien évidemment que l’expéditeur a réussi à installer le .apk, c’est le méchant pirate! En plus trop marrant il se fait harceler par les victimes #trop_drôle ! »

Oui mais non! Vous souvenez de l’identifiant généré par le fichier « gate.php » sur le faux site ? Et de l’identifiant dans l’URL du SMS envoyé à la victime ?

Vous l’avez sans doute compris, le SMS reçu par la victime a été en réalité envoyé par… une autre victime et ce totalement à son insu !

Et ça, c’est du génie. En effet, plutôt que d’envoyer eux-même le SMS de phishing et ainsi laisser leur numéro de téléphone, en soit une preuve qui pourrait directement nous conduire à eux, les auteurs se servent des téléphones backdoorés afin de relayer les messages aux victimes potentielles.

Le seul hic dans cette technique de génie, c’est qu’il semblerait que les pirates aient mal implémenté leur trouvaille. En effet, le fait que l’expéditeur du fameux message de phishing soit harcelé, indique très clairement que la façon de faire des pirates est très peu réfléchie. Ce qui est plutôt paradoxal quand on voit l’arsenal, digne des plus grands groupes de cybercriminels, déployé pour cette campagne de phishing.

Pour illustrer un peu mieux mes propos laissez moi vous faire une petite liste :

Les arguments qui tendent à prouver qu’il s’agisse de script-kiddies:

  • TOUS les virus ayant un lien avec cette organisation sont détectés par une vaste majorité d’antivirus
  • Les certificats sont auto-signés à l’arrache (Ex: « CN:dddddddd fdfd » pour la backdoor leboncoin) alors qu’ils ont des milliers de domaines
  • Les auteurs ne ciblent *exclusivement* que deux plateformes: Windows et Android, à croire qu’ils ne connaissent que ces deux-là 🙂
  • Certains codes sont des copiés collés de code retrouvé sur Github, Pastebin ou même StackOverflow (les crédits en moins)
  • Il est très facile de remonter à leur serveur de Contrôle et de Commande
  • Certains de leurs virus sont de véritables « call center » avec plus d’une centaine d’addresses IP différentes contactées dès les premières secondes de l’exécution
  • Ils utilisent Virus Total pour voir si leur Backdoors sont détectés par des antivirus

Maintenant quelques points qui, je dois le reconnaître montrent le caractère quelque peu « déterminé » des auteurs :

  • Beaucoup *beaucoup* de serveurs (majoritairement russes d’ailleurs)
  • Véritable gestion du versionnage des logiciels malveillants
  • Utilisation et implémentation de fonctions cryptographiques (RSA notamement)
  • Exportation des attaques (d’abord en Russie, puis en Chine et récemment en France avec l’arnaque leboncoin)
  • Énormément (des milliers) de noms de domaines enregistrés en moins de 6 mois (essentiellement à des fins de phishing)
  • Portabilité de l’infrastructure de contrôle (elle change d’adresse IP / Web régulièrement)
  • Suppression des traces dans le code (version de l’IDE, date de compilation)
Point additionnel:

Mon ami et moi avions réussi à trouver leur serveur de contrôle et de commande. En revanche, il ne ressemblait à rien de ce qui se faisait ailleurs. La page d’accueil du serveur Web affichait une page par défaut Apache / Cent OS alors que les headers HTTP affichait très clairement Nginx. Après vérification on trouvera par la suite qu’il s’agissait d’une version d’Ubuntu.

En cherchant un peu on a même réussi à trouver une véritable vulnérabilité en or massif qui nous a permis de confirmer qu’il s’agissait d’une solution totalement custom. Pour la petite histoire on a d’ailleurs retrouvé des traces de précédentes installations (test ?) non fonctionnelles sur deux sites compromis d’entreprises (1 américaine et 1 indienne).

3°) Verdict

Cette attaque a sur le papier largement de quoi effrayer de par sa sophistication (copie conforme des codes graphiques leboncoin, utilisation de la nouvelle fonctionnalité de prépaiement comme prétexte pour le phishing, relai SMS des victimes pour propager le malware …). Cependant, dans les faits, l’attaque n’ébranle pas forcément voire carrément pas du tout la communauté leboncoin.

Honnêtement j’ai presque de la peine pour les auteurs lorsque je vois toutes les bonnes idées et tous les efforts qu’ils ont fournis en créant leurs propres trucs de A à Z mais que pas de bol, le truc à totalement bidé. Comme quoi, le crime ne paie pas 🙂

TELEX: en guise de contre-mesure simple mais efficace, pensez seulement à être plus attentif aux liens avant de cliquer directement.

Bonus: IOC’s de la campagne

hxxp://gb-leboncoin[.]info
hxxp://uk-leboncoin[.]info
hxxp://uk-leboncoin[.]top
hxxp://gb-leboncoin[.]top
hxxp://www.m-leboncoin[.]info
hxxp://www.gb-leboncoin[.]top
hxxp://www.e-leboncoin[.]info
hxxp://www.u-leboncoin[.]info
hxxp://www.www-leboncoin[.]info
hxxp://www.e-leboncoin[.]top
hxxp://www.gb-leboncoin[.]info
hxxp://fr-leboncoin[.]top
hxxp://a-leboncoin[.]top
hxxp://t-leboncoin[.]info
hxxp://www.uk-leboncoin[.]info
hxxp://www.mob-leboncoin[.]info
hxxp://www.a-leboncoin[.]top
hxxp://leboncoin-ql[.]top
hxxp://fr-leboncoin[.]info
hxxp://mob-leboncoin[.]info
hxxp://www.uk-leboncoin[.]top
hxxp://u-leboncoin[.]info
hxxp://www.mob-leboncoin[.]top
hxxp://www.t-leboncoin[.]top
hxxp://m-leboncoin[.]info
hxxp://www.leboncoin-ql[.]top
hxxp://u-leboncoin[.]top
hxxp://od-leboncoin[.]info
hxxp://www.od-leboncoin[.]info
hxxp://www.fr-leboncoin[.]info
hxxp://www.t-leboncoin[.]info
hxxp://llc-leboncoin[.]top
hxxp://www.llc-leboncoin[.]top
hxxp://www.u-leboncoin[.]top
hxxp://www-leboncoin[.]info
hxxp://www.od-leboncoin[.]top
hxxp://t-leboncoin[.]top
hxxp://e-leboncoin[.]top
hxxp://od-leboncoin[.]top
hxxp://mob-leboncoin[.]top
hxxp://e-leboncoin[.]info
hxxp://www.fr-leboncoin[.]top
hxxp://leboncoin-xc[.]top
hxxp://a-leboncoin[.]info
hxxp://my-leboncoin[.]top
hxxp://www.my-leboncoin[.]top
hxxp://www.a-leboncoin[.]info
hxxp://www.llc-leboncoin[.]info
hxxp://www.leboncoin-ql[.]info
hxxp://my-leboncoin[.]info
hxxp://www.leboncoin-tr[.]top
hxxp://leboncoin-tr[.]top
hxxp://www.my-leboncoin[.]info
hxxp://llc-leboncoin[.]info
hxxp://leboncoin-ql[.]info
hxxp://leboncoin-bk[.]top
hxxp://www.leboncoin-my[.]top
hxxp://leboncoin-my[.]info
hxxp://www.leboncoin-bk[.]top
hxxp://leboncoin-my[.]top
hxxp://www.leboncoin-my[.]info
hxxp://leboncoin-bk[.]info
hxxp://leboncoin-tr[.]info
hxxp://www.leboncoin-tr[.]info
hxxp://www.leboncoin-bk[.]info
hxxp://www.leboncoin-vd[.]info
hxxp://leboncoin-vd[.]top
hxxp://leboncoin-vd[.]info
hxxp://www.leboncoin-vd[.]top
hxxp://leboncoin-cz[.]top
hxxp://www.leboncoin-cz[.]top
hxxp://www.leboncoin-cz[.]info
hxxp://leboncoin-cz[.]info
hxxp://leboncoin-jp[.]top
hxxp://leboncoin-jp[.]info
hxxp://leboncoin-xc[.]info
hxxp://www.leboncoin-xc[.]info
hxxp://www.leboncoin-jp[.]info
hxxp://www.leboncoin-jp[.]top
hxxp://leboncoin-mp[.]top
hxxp://www.leboncoin-xc[.]top
hxxp://leboncoin-lx[.]top
hxxp://leboncoin-lp[.]info
hxxp://leboncoin-ml[.]top
hxxp://leboncoin-kp[.]top
hxxp://leboncoin-kz[.]top
hxxp://leboncoin-lv[.]top
hxxp://leboncoin-sl[.]top
hxxp://arbeit.jobs-hegele[.]in

08/05/2019 com.bertjerts 172eb70cd27b6d24b47abe39c887c2fd6164f238a4c18877aad139c1de9ed6a9
08/05/2019 com.backsmart a289da988c92c9889c0efb9901b5e875fb2a37dbb0cbd31708dba647bdf4c403
12/05/2019 com.bertrander 5f7b91bcd4877802a5b1a69bb322fa934d4a9ec1b5ac1a472636de57c33e07c3
18/05/2019 com.jertay 1bc805d19613bbab15027bd7d29a5bc3b8709bff0c7fd49cf04bb998cfc09b0d
08/06/2019 com.garson f22ea76a0d69cf03915fd17f6472b790c21fecea70ff94520cbed71e8eeba198

11/06/2019 com.lebronjoin b9610d39792609dc56fe0058571ec786df65e43e522d123eb26b5c5532737234 (WTF le nom ?)
11/06/2019 com.berlins 225023859abbad7f788a47dd72ea3b702799360b50b69dc670b6fb1c02e5bf64

1 commentaire

  1. Article très intéressant ! Bravo pour cet « evidence grabbing » ainsi que l’analyse juteuse !

    Ps: « com.lebronjoin » on croît rêver…

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*
*

Snow

Ctrl + D

#Réduisons_nos_émissions_de_CO2

PS: mets le site en FAVORIS sur mobile !!!