Au plus près du ransomware Locky

Un regard technique au cœur du récent ransomware appelé Locky.

Ce nouveau cryptage de fichier, qui cible les utilisateurs de PC, a probablement été créé par les auteurs du célèbre botnet Dridex et il est propagé de la même façon.

Locky utilise toutes les fonctionnalités de « haut rang », telles qu'un algorithme de génération de domaine, une communication chiffrée personnalisée, un paiement en TOR ou en BitCoins, un solide chiffrement de fichier RSA-2048+AES-128 et la capacité de chiffrer plus de 160 types de fichiers différents, y compris des disques virtuels, des codes sources et des bases de données.

Nous avons examiné la « famille » Locky le mois dernier et découvert une seconde variante du programme malveillant, qui possède de nouvelles caractéristiques et un codage de programmation amélioré. Les auteurs de Locky ont ajouté une nouvelle valeur initiale codée en dur à l'algorithme de génération de domaine, qui leur permet de désactiver Locky sur les ordinateurs russes.

Vecteur d'infection

Locky se propage via des campagnes de spams par e-mail, très similaires à celles utilisées par le botnet Dridex. Ils utilisent des noms de fichiers similaires, les mêmes méthodes d'obscurcissement, de contenu de message et de structure des URL de téléchargement.

Nous avons observé trois versions différentes de campagne Locky, décrites ci-dessous.

Voici un exemple de l'un des e-mails de spam. Les e-mails sont conçus pour faire croire aux destinataires qu'ils ont été envoyés de la part d'une grande société comme Nordstrom, Symantec et Crown Holdings.

infected phishing email
Nous avons trouvé différents documents malveillants (Word, Excel, etc.) joints aux e-mails qui incluent des macros comportant un VBS (Visual Basic Script) trompeusement obscurci.  Les auteurs du programme malveillant utilisent uneingénierie sociale pour amener le destinataire à activer les macros désactivées par défaut. Le code malfaisant contient une commande sub Auto_open() qui déclenche l'exécution du VBS une fois que les macros ont été activées.

doc_macro_autoopen.png

Campagne version 1

camp_01.png

Les auteurs de Locky utilisent un obscurcissement inhabituel via la fonction CallByName et une chaîne significative pour générer le code VBS.

camp_01_string.png

L'obscurcissement est simple et c'est le même que celui trouvé dans les campagnes d'e-mails Dridex. L'URL de téléchargement est « chiffrée » et codée en dur comme une matrice.

VBS après désobscurcissement :

malicious ransomware code
Campagne version 2

camp_02.png

Dans la deuxième campagne, les auteurs ont utilisé un obscurcissement plus compliqué des fichiers de script et ajouté plus d'étapes avant le téléchargement du fichier binaire PE final.

Fichier de commandes obscurci :

camp_02_batch_obf.png

Visual Basic Script désobscurci final :

camp_02_deobf.png

Script d'exécution et URL de téléchargement de texte codé en dur :

camp_02_url.png

Campagne version 3

camp_03.png

Nous avons également repéré des e-mails comportant un téléchargeur Javascript obscurci très générique, à l'intérieur des archives Zip.

camp_03_obf.png
Ici, il s'agit du même téléchargeur que celui utilisé dans la campagne version 2. Dans ce cas cependant, il a juste été réécrit en langage Javascript.

Voici le JavaScript après désobscurcissement :

camp_03_deobf.png

Le téléchargement et l'exécution du programme malveillant Locky est l'étape ultime et finale des trois campagnes décrites.

Nous avons également détecté deux types spécifiques d'URL de téléchargement à l'intérieur des archives et documents infectés.

Domaine de type 1

Domaine de type 2

ecoledecorroy.be/1/1.exe

onigirigohan.web.fc2.com/1/1.exe

killerjeff.free.fr/2/2.exe

lasmak.pl/2/2.exe

animar.net.pl/3/3.exe

uponor.otistores.com/3/3.exe

premium34.tmweb.ru/4/4.exe

suicast.de/4/4.exe

bebikiask.bc00.info/5/5.exe

ratgeber-beziehung.de/5/5.exe

proteusnet.it/6/6.exe

test.rinzo.biz/6/6.exe

avp-mech.ru/7/7.exe

luigicalabrese.it/7/7.exe

173.214.183.81/~tomorrowhope/09u8h76f/65fg67n

66.133.129.5/~chuckgilbert/09u8h76f/65fg67n

iynus.net/~test/09u8h76f/65fg67n

 

mondero.ru/system/logs/56y4g45gh45h  

neways-eurasia.com.ua/system/logs/7647gd7b43f43.exe

tcpos.com.vn/system/logs/56y4g45gh45h

tramviet.vn/system/logs/7647gd7b43f43.exe

www.bag-online.com/system/logs/56y4g45gh45h

choobyta.com/system/logs/23f3rf33.exe

bitmeyenkartusistanbul.com/system/logs/87h754/

shop.havtoto.bget.ru/system/logs/45g456jhyfg

 

www.iglobali.com/34gf5y/r34f3345g.exe

www.jesusdenazaret.com.ve/34gf5y/r34f3345g.exe

www.southlife.church/34gf5y/r34f3345g.exe

www.villaggio.airwave.at/34gf5y/r34f3345g.exe

Les documents malveillants de la campagne version 2 utilisent une fonction de décodage Base64 très spécifique, écrite en Visual Basic Script et que nous avons aussi découverte au sein d'autres campagnes malveillantes Banker/Banload/RAT au Brésil.

vbs_debase.png
Cryptor de fichier Locky

Nous avons d'abord vu des exemplaires de Locky se propager sans outil PE Packer, ce qui est étrange car les programmes malveillants contiennent généralement des outils génériques de conditionnement PE pour éviter les détections AV.

Voyez ci-dessous un graphique montrant les pays nouvellement infectés, au jour le jour (JJ/MM/AAAA). Il existe trois pics, qui représentent les nouvelles campagnes ciblant différentes géolocalisations. Le nombre total de pays infectés atteint plus de 160.

country_hits.png

Date

Nombre

Pays infectés

18.02. 2016

18

Brésil, Viet Nam, Afrique du Sud, Ghana, Lithuanie, Bulgarie, Koweït, Croatie, Namibie, Allemagne, France, Espagne, Ukraine, Pérou, Mexique, Chili, Équateur, États-Unis

19.02. 2016

24

Philippines, Inde, Autriche, Liban, Corée du Sud, Thaïlande, Slovénie, République tchèque, Hongrie, Moldavie, Belgique, Italie, Grèce, Roumanie, Pays-Bas, Indonésie, Pologne, Maroc, Irlande, Kénya, Bolivie, Costa Rica, Jamaïque, Colombie

20.02. 2016

2

Malaisie, Paraguay

21.02. 2016

1

Argentine

22.02. 2016

4

Serbie, Luxembourg, Singapour, Bangladesh

23.02. 2016

2

Finlande, Puerto Rico

24.02.2016

12

Sri Lanka, Arabie saoudite, Brunei Darussalam, Pakistan, Cambodge, Grande-Bretagne, Taïwan, Guatemala, Curaçao, Canada, Portugal, Japon

25.02. 2016

4

Bosnie-Herzégovine, Azerbaïdjan, Tunisie, Slovaquie

26.02. 2016

22

Australie, Hong Kong, Israël, Kirghizistan, Turquie, Suisse, Estonie, Suède, Danemark, Guadeloupe, Fédération russe, Malte, Égypte, Réunion, Norvège, Chine, Martinique, Macédonie, Émirats Arabes Unis, Barbade, Chypre, Vénézuela

27.02. 2016

4

Quatar, Maldives, Zimbabwe, Algérie

28.02. 2016

5

Panama, Jordanie, Djibouti, Congo, Uruguay

29.02. 2016

7

Géorgie, Lettonie, Ouganda, Gabon, Angola, Nigéria, Cameroun

1.03. 2016

6

Comores, Congo, Sénégal, Nicaragua, Nouvelle-Calédonie, Salvador

2.03. 2016

6

Nouvelle-Zélande, Botswana, Niger, Madagascar, Haïti, Côte d’Ivoire

3.03. 2016

5

Biélorussie, Kazakhstan, Irak, Arménie, République dominicaine

4.03. 2016

3

Maurice, Bénin, Honduras

5.03. 2016

22

Zambie, Mali, Liechtenstein, Cap Vert, Islande, Yémen, Guernesey, Macao, Palestine, Monaco, Tanzanie, Guyane, Bahamas, Bahreïn, Togo, Saint-Marin, Îles Cook, Malawi, Cité du Vatican, Vanuatu, Grenade, Polynésie française

6.03. 2016

11

Îles Mariannes du Nord, Oman, Seychelles, Népal, Libéria, Libye, Gibraltar, Andorre, Monténégro, Îles d'Åland, Saint-Christophe-et-Niévès

7.03. 2016

9

Guyane française, Mongolie, République démocratique populaire lao, Tonga, Turkménistan, Éthiopie, Mozambique, Albanie, Swaziland


Le Top 10 des pays qui ont rencontré Locky est le suivant : France, Italie, Allemagne, Espagne, États-Unis, Grande-Bretagne, Pologne, Japon, République tchèque et Canada.

Persistance

Après son exécution, le fichier binaire Locky est copié dans le répertoire %TEMP% et renommé svchost.exe, pour le rendre plus difficile à trouver et à supprimer par le destinataire. Le programme malveillant supprime ensuite l'indicateur :Zone.Identifier du fichier svchost.exe nouvellement créé (pour contourner l'avertissement « Fichier téléchargé depuis Internet ») qu'il exécute.

zone_ident.png
Le premier fichier binaire Locky téléchargé est déplacé dans le répertoire %TEMP% et renommé « sys*.tmp », puis supprimé par cmd.exe.

cmd_del_origin.png

Locky règle aussi une valeur de registre sur Software\Microsoft\Windows\CurrentVersion\Run pour le cas où l'ordinateur infecté serait redémarré avant que le programme malveillant ait chiffré tous les fichiers. Le cas échéant, Locky chiffre les fichiers lors de la session suivante.

currentversion_run.png

Le programme malveillant crée un nouveau processus avec la valeur CommandLine « vssadmin.exe Delete Shadows /All /Quiet » et supprime les données stockées du Service de cliché instantané des volumes. Sur un ordinateur infecté, cette action empêche une récupération de sauvegarde ou une restauration du système depuis des données enregistrées précédemment.

mountvol_olly.png

Le programme malveillant ajoute ensuite une valeur « completed=1 » à la clé de registre Locky et supprime la valeur\CurrentVersion\Run précédemment ajoutée après le chiffrement de tous les fichiers possibles. Il ouvre aussi un fichier texte d'instructions, crée un fichier image du fichier texte et définit une image des instructions en tant que papier peint du Bureau de l'ordinateur.

completed_after_encrypt.png

Le processus malveillant est fermé et le fichier malveillant svchost.exe est supprimé du répertoire %TEMP% à la toute dernière étape.

Serveurs C&C

Locky contient des adresses IP codées en dur de serveurs C&C (Command and Control) et utilise aussi un algorithme de génération de domaine, qui sert probablement de générateur de secours si les adresses IP principales sont bloquées.

Les serveurs C&C sont utilisés pour signaler les infections et échanger des clés de chiffrement.

communication_wire.png

Algorithme de génération de domaine (DGA)

À l'origine, l'algorithme de génération de domaine (DGA, Domain Generation Algorithm) était basé sur deux valeurs initiales codées en dur et le temps sur le système courant d'une machine infectée. Cette version du DGA génère six domaines uniques tous les deux jours.

dga.png

Les auteurs ont décidé de changer le DGA pour un algorithme moins déterministe après un rapide bloc ou naufrage de domaines des AV. Cette version du DGA est maintenant basée sur une valeur initiale codée en dur sur le fichier binaire malveillant et cette valeur peut être modifiée à tout moment ou dans chaque exemplaire. Elle génère aussi huit domaines uniques tous les deux jours.

dga2.png

Les deux versions exploitent les domaines de premier niveau suivants :

.be, .de, .eu, .fr, .in, .it, .nl, .pm, .pw, .ru, .tf, .uk, .us, .yt.

Vous pouvez télécharger les deux scripts DGA Python ici et ici.

Liste des adresses IP codées en dur :

Adresses IP codées en dur

ISP/Organisation/Géolocalisation

IP résolues

5.34.183.136

Ua Servers, UA

skaldin.uaservers.net

31.41.47.3

RelinkRoute, Relink LTD, RU

31.41.47.3

31.41.47.37

RelinkRoute, Relink LTD, RU

casader.ce

31.184.233.106

Virty.io Network, Virty.io, RU

31.184.233.106

46.4.239.76

Hetzner-rz-fks, ObjectNova, DE

static.76.239.4.46.clients.your-server.de

85.25.138.187

PlusServer AG, BSB-Service GmbH, DE

echo509.dedicatedpanel.com

86.104.134.144

One Telecom SRL, MD

144.onetelecom.md

91.121.97.170

Ovh Isp, Ovh Sas, FR

ns353643.ip-91-121-97.eu

91.195.12.185

Host4.Biz, PE Astakhov Pavel Viktorovich, UA

91-195-12-185.net.host4.biz

91.234.33.206

FOP Sedinkin Olexandr Valeriyovuch, UA

client.thehost.com.ua

94.242.57.45

NET Network & vStoike.com DC, RU

mail.hsaworkshop.ru

95.181.171.58

Qwarta.ru, QWARTA LLC, RU

95.181.171.58

109.237.111.168

Adman, Krek Ltd., RU

109.237.111.168

109.234.38.35

Vdsina, RU

qikos.sa

185.14.29.188

Camper Solutions, NL

skaldin11.example.com

185.14.30.97

Camper Solutions, NL

vepliok.pq

185.46.11.239

Agava, RU

kvm17915.hv9.ru

185.82.216.213

Itldc1-sof1, BG

skaldin21.example.com

188.138.88.184

Plusserver AG, intergenia AG, DE

xray730.dedicatedpanel.com

192.71.213.69

RIPE Network Coordination Center. FR

335.ES.multiservers.xyz

192.121.16.196

EDIS GmbH, AT

335.NL.multiservers.xyz

193.124.181.169

MAROSNET Telecommunication Company Network, RU

test.ru

195.154.241.208

Online SAS, FR

304.worldit.xyz

212.47.223.19

LINXTELECOM Linx Telecommunications B.V., EE

ought-scan.retirecompet.com.223.47.212.in-addr.arpa

Neuf serveurs sont situés en Russie, trois en Allemagne et les autres se trouvent en France, aux Pays-Bas, en Ukraine, Autriche, Bulgarie, Estonie et Moldavie.

Communication C&C

Toutes les requêtes C&C sont dans un format spécifique :

HTTP/1.1 POST http://{hardcoded_IP_or_DGA}/.main.php?{parameters}

Paramètres

Le programme malveillant calcule un ID utilisateur et réunit quelques informations sur la machine infectée. L'ID utilisateur n'est pas généré de façon aléatoire mais au contraire calculé comme une empreinte MD5 du GUID du point de montage de volume issu du disque dur de la machine infectée. Ce GUID peut être affiché si le cmd.exe est exécuté et si la commande « mountvol » est saisie.

mountvol_olly.png

Locky vérifie la version du système d'exploitation de l'appareil infecté, si c'est une version 32 ou 64 bits, si le service pack original est installé et quelle langue est utilisée sur l'ordinateur, afin de déterminer en quelle langue afficher le message de rançon. Les paramètres AffiliateID, la commande C&C et deux autres paramètres, &corp= et &serv=, sont également requis par le serveur C&C.  La valeur Affiliate ID est codée en dur au sein du fichier binaire du Locky. Nous avons trouvé des AffiliateID avec des valeurs de 0, 1 et 3.

Tous les paramètres sont fusionnés :

request.png

Paramètres de commande Locky C&C « &act= » :

Paramètre

Action

getkey

Demande de clé RSA publique

stats&path + encrypted, failed, length

Statistiques globales de chiffrement et chemins d'accès aux fichiers chiffrés.

report&data

Liste de tous les fichiers chiffrés.

gettext&lang

Demande des fichiers de langue Locky



La totalité du trafic du programme malveillant est chiffré avec deux algorithmes différents pour les données entrantes et sortantes ; les deux algorithmes contiennent des clés codées en dur spécifiques. Les données à la fois de trafic entrant et sortant incluent une empreinte MD5 en tant que CRC du contenu des données.

traffic_decrypt.png

Chiffrement des fichiers

Le programme malveillant commence le chiffrement des fichiers uniquement après avoir reporté l'infection au serveur C&C et renvoyé la clé RSA publique. Locky ne commence pas à chiffrer les fichiers sans la clé RSA requise ou si l'appareil est déconnecté d'Internet. Les clés RSA publique et privée pour chaque infection sont générées côté serveur, et un déchiffrement manuel est donc impossible.

Les attaquants utilisent le chiffrement RSA-2048 + AES-128 avec le mode ECB de chiffrement de fichier. Tous les fichiers chiffrés sont renommés pour former{USERID}{random_hash} avec l'extension .locky.

crypto.png

Types de fichiers affectés

Le programme malveillant Locky peut chiffrer 164 types de fichiers qui peuvent être répartis en 11 catégories :

Fichiers Office/Documents (62x) :

.123, .602, .CSV, .dif, .DOC, .docb, .docm, .docx, .DOT, .dotm, .dotx, .hwp, .mml, .odg, .odp, .ods, .odt, .otg, .otp, .ots, .ott, .pdf, .pot, .potm, .potx, .ppam, .pps, .ppsm, .ppsx, .PPT, .pptm, .pptx, .RTF, .sldm, .sldx, .slk, .stc, .std, .sti, .stw, .sxc, .sxd, .sxi, .sxm, .sxw, .txt, .uop, .uot, .wb2, .wk1, .wks, .xlc, .xlm, .XLS, .xlsb, .xlsm, .xlsx, .xlt, .xltm, .xltx, .xlw, .xml

Codes Scripts/Sources (23x) :

.asm, .asp, .bat, .brd, .c, .class, .cmd, .cpp, .cs, .dch, .dip, .h, .jar, .java, .js, .pas, .php, .pl, .rb, .sch, .sh, .vb, .vbs

Fichiers Multimédias (20x) :

.3g2, .3gp, .asf, .avi, .fla, .flv, .m3u, .m4u, .mid, .mkv, .mov, .mp3, .mp4, .mpeg, .mpg, .swf, .vob, .wav, .wma, .wmv

Fichiers Graphique/Image (14x) :

.bmp, .cgm, .djv, .djvu, .gif, .jpeg, .jpg, .NEF, .png, .psd, .raw, .svg, .tif, .tiff

Fichiers Bases de données (14x) :

.db, .dbf, .frm, .ibd, .ldf, .mdb, .mdf, .MYD, .MYI, .odb, .onenotec2, .sql, .SQLITE3, .SQLITEDB

Archives (11x) :

.7z, .ARC, .bak, .gz, .PAQ, .rar, .tar, .bz2, .tbk, .tgz, .zip

Fichiers CAD/CAM/3D (8x) :

.3dm, .3ds, .asc, .lay, .lay6, .max, .ms11, .ms11 (Security copy)

Certificats (5x) :

.crt, .csr, .key, .p12, .pem

HDD virtuel (4x) :

.qcow2, .vdi, .vmdk, .vmx

Chiffrement de données (2x) :

.aes, .gpg

Monnaie virtuelle (1x) :

wallet.dat

L'éventail des types de fichiers étant très large, ce programme malveillant peut aussi affecter un grand nombre d'entreprises. Les types de fichiers .ms11 présentent un intérêt particulier car ils sont créés par l'application CAD utilisée pour les cartes de circuits imprimés. Les types de fichiers de la catégorie HDD virtuel sont également d'un grand intérêt car ils sont utilisés par de nombreux développeurs, testeurs ou solutions d'entreprises virtualisées.

Locky ajoute également un fichier « _Locky_recover_instructions.txt » à chaque répertoire contenant des fichiers chiffrés et met en place un fichier « _Locky_recover_instructions.bmp » comme papier peint de Bureau.

Locky chiffre les fichiers sur tous les disques fixes, les disques amovibles et même sur les lecteurs de disque RAM. Les disques distants ne sont pas affectés.

affecting_disks.png

Nous avons découverts certains changements au sein de la version binaire Locky la plus récente. L'algorithme est maintenant plus pointilleux et précis.

affecting_disks2.png

Exclusion des PC russes

Le version la plus récente du programme malveillant contient une nouvelle valeur de configuration codée en dur qui désactive le chiffrement Locky sur les ordinateurs dont les paramètres régionaux sont réglés sur Russie ou dont la langue est le russe (0x19).  La valeur de configuration codée en dur détermine également combien de temps Locky devra rester dormant après son exécution pour éviter sa détection par un bac à sable (sandbox).

exclude_ru.png

Structure de la configuration

Les exemplaires malveillants de la version récente contiennent des données de configuration codées en dur. Sont inclus le paramètre AffiliateID (DWORD), la valeur initiale DGA (DWORD), le nombre de secondes de dormance (DWORD), les données de création %TEMP%\svchost.exe (BYTE), la définition Locky du registre\CurrentVersion\RUN (BYTE), l'exclusion des machines RU et la liste des adresses IP codées en dur.

config.png

Méthode de paiement Locky

Le système de paiement Locky pour obtenir le déchiffrement des fichiers est le même que celui de nombreux autres ransomwares. Le site Web de Locky est dissimulé à l'intérieur du réseau TOR et la rançon est payable uniquement en BitCoins. Le prix du déchiffrement dépend vraisemblablement du nombre de fichiers chiffrés et la valeur de la rançon démarre généralement à 0,5 BitCoins.

Le déchiffreur de Locky se trouve sur les sites TOR suivants :

6dtxgqam4crv6rr6.onion

i3ezlvkoi7fwyood.onion

lpholfnvwbukqwye.onion

twbers4hmi6dc65f.onion

Les auteurs de Locky ont modifié la conception de la page Web du déchiffreur pendant sa campagne.

Conception originale :

tor_page.png

Nouvelle conception :

tor_page_new.png

Une fois que votre paiement aura été vérifié, vous pourrez télécharger le déchiffreur Locky. Le déchiffreur contient une clé RSA privée codée en dur et il est également possible de déchiffrer les fichiers avec d'autres fichiers de clé stockés en utilisant le paramètre /key.

decryptor.png

Traces

À l'intérieur de certains documents malveillants de Locky, nous avons découvert plusieurs chaînes qui font la lumière sur les auteurs du programme malveillant. Comme précédemment mentionné, les créateurs de Locky sont probablement les mêmes que ceux du groupe Dridex, ou qui y sont liés de près, car ils utilisent les mêmes techniques d'obscurcissement et de campagne de spams par e-mail.

Nous suspectons également que les auteurs sont originaires de Russie car beaucoup de leurs serveurs C&C s'y trouvent. Ils ont aussi ajouté, au nouveau fichier binaire Locky, une fonction excluant les PC russes de l'infection.

En examinant d'encore plus près les chaînes du Locky, nous avons découvert que certains documents malveillants contiennent des chaînes d'accès incluant même des noms d'utilisateurs de PC. Incroyable !

trace_01.png

trace_02.png

Conclusions

Le ransomware Locky est actuellement un acteur majeur dans la sphère de la malveillance. L'examen de Locky montre qu'il se caractérise par des fonctionnalités importantes comme un système DGA temporisé, d'énormes campagnes de spams par e-mail, différentes langues de script, des outils PE Packer génériques, une fonction de génération de clés de chiffrement au niveau serveur et un paiement de la rançon en TOR ou en BitCoins.

Les auteurs de Locky sont doués et le développent encore plus. Ils ont répondu au blocage de l'infrastructure de leur serveur C&C par l'industrie AV en modifiant l'algorithme DGA, et en corrigeant quelques bogues mineurs dans la nouvelle version.

Le programme malveillant de chiffrement de fichiers est actuellement très répandu et peut rapporter très gros. Nous sommes donc convaincus que de nouvelles familles de ransomwares verront le jour cette année.

Comment se protéger

  • Comme toujours, n'ouvrez aucune pièce jointe douteuse (p. ex. fichiers .doc, .xls et .zip).
  • Désactivez les macros par défaut dans Microsoft Office et n'activez jamais des macros dans des pièces jointes bizarres ou inconnues reçues par e-mail.
  • Gardez des copies de sauvegarde récentes de vos données importantes dans un endroit sûr, en ligne ou hors ligne.
  • Vérifiez que votre système et vos applications sont régulièrement actualisé(e)s et corrigé(e)s.

Merci d’utiliser Avast Antivirus et de nous recommander à vos amis et votre famille. Pour connaître les dernières actualités, pensez à nous suivre sur FacebookTwitter et Google+.

--> -->