WinorDLL64: O ușă din spate din vastul arsenal Lazăr?

WinorDLL64: O ușă din spate din vastul arsenal Lazăr?

Nodul sursă: 1975596

Regiunea vizată și suprapunerea în comportament și cod sugerează că instrumentul este folosit de infamul grup APT aliniat la Coreea de Nord

Cercetătorii ESET au descoperit una dintre sarcinile utile ale Descărcător Wslink pe care l-am descoperit în 2021. Am numit această sarcină utilă WinorDLL64 pe baza numelui său de fișier WinorDLL64.dll. Wslink, care avea numele fișierului WinorLoaderDLL64.dll, este un încărcător pentru binare Windows care, spre deosebire de alte astfel de încărcătoare, rulează ca un server și execută modulele primite în memorie. După cum sugerează formularea, un încărcător servește ca instrument pentru a încărca o sarcină utilă, sau malware-ul real, pe sistemul deja compromis. Vectorul inițial de compromis Wslink nu a fost identificat.

Sarcina utilă Wslink inițial necunoscută a fost încărcată în VirusTotal din Coreea de Sud la scurt timp după publicarea postării noastre pe blog și a atins una dintre regulile noastre YARA bazate pe numele unic al Wslink. WinorDLL64. În ceea ce privește Wslink, telemetria ESET a înregistrat doar câteva detectări – în Europa Centrală, America de Nord și Orientul Mijlociu.

WinorDLL64 sarcina utilă servește ca o ușă din spate care, în special, obține informații extinse de sistem, oferă mijloace pentru manipularea fișierelor, cum ar fi exfiltrarea, suprascrierea și eliminarea fișierelor și execută comenzi suplimentare. Interesant este că comunică printr-o conexiune care a fost deja stabilită de încărcătorul Wslink.

În 2021, nu am găsit date care să sugereze că Wslink este un instrument de la un actor cunoscut de amenințări. Cu toate acestea, după o analiză amplă a sarcinii utile, am atribuit WinorDLL64 la grupul Lazarus APT cu o încredere scăzută bazată pe regiunea țintă și o suprapunere atât a comportamentului, cât și a codului cu mostrele Lazarus cunoscute.

Activ din 2009 cel puțin, acest grup infam aliniat la Coreea de Nord este responsabil pentru incidente importante, cum ar fi atât Hack Sony Pictures Entertainment și zeci de milioane de dolari cyberheists în 2016, WannaCryptor (aka WannaCry) focar din 2017 și o lungă istorie de atacuri perturbatoare împotriva Infrastructura publică și critică sud-coreeană din 2011 cel puțin. US-CERT și FBI numesc acest grup COBRA ASCUNS.

Pe baza noastră cunostinte extensive Din activitățile și operațiunile acestui grup, credem că Lazăr constă dintr-o echipă mare care este organizată sistematic, bine pregătită și este formată din mai multe subgrupuri care utilizează un set mare de instrumente. Anul trecut, noi a descoperit un instrument Lazăr care a profitat de CVE-2021-21551 vulnerabilitatea de a viza un angajat al unei companii aerospațiale din Țările de Jos și un jurnalist politic din Belgia. A fost primul abuz înregistrat de vulnerabilitate; în combinație, instrumentul și vulnerabilitatea au dus la orbirea monitorizării tuturor soluțiilor de securitate pe mașinile compromise. Am oferit, de asemenea, o descriere extinsă a structura mașinii virtuale utilizat în mostre de Wslink.

Această postare de blog explică atribuirea lui WinorDLL64 lui Lazarus și oferă o analiză a sarcinii utile.

Legături către Lazăr

Am descoperit suprapuneri atât în ​​ceea ce privește comportamentul, cât și codul cu mostrele Lazarus din Operațiunea GhostSecret si Implant Bankshot descris de McAfee. Descrierea implanturilor din articolele GhostSecret și Bankshot conține suprapuneri în funcționalitatea cu WinorDLL64 și am găsit unele suprapuneri de cod în mostre. În această postare pe blog vom folosi numai FE887FCAB66D7D7F79F05E0266C0649F0114BA7C eșantion de la GhostSecret pentru comparație cu WinorDLL64 (1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F), dacă nu se specifică altfel.

Următoarele detalii rezumă faptele justificative pentru atribuirea noastră scăzută de încredere lui Lazăr:

1. Victimologie

  • Colegii de cercetare de la AhnLab au confirmat victimele sud-coreene ale Wslink în telemetria lor, care este un indicator relevant având în vedere țintele tradiționale Lazăr și că am observat doar câteva lovituri.

Figura 1. Victimă sud-coreeană raportată, unde mstoned7 este cercetătorul de la Ahnlab

2. Programele malware

  • Cel mai recent eșantion GhostSecret raportat de McAfee (FE887FCAB66D7D7F79F05E0266C0649F0114BA7C) este din februarie 2018; am observat primul eșantion de Wslink la sfârșitul anului 2018, iar colegii de cercetare au raportat rezultate în august 2018, pe care le-au dezvăluit după publicarea noastră. Prin urmare, aceste mostre au fost observate la o perioadă relativ scurtă de timp între ele.
  • Anteturi bogate PE indică faptul că același mediu de dezvoltare și proiecte de dimensiuni similare au fost utilizate în alte câteva mostre cunoscute de Lazăr (de exemplu, 70DE783E5D48C6FBB576BC494BAF0634BC304FD6; 8EC9219303953396E1CB7105CDB18ED6C568E962). Am găsit această suprapunere folosind următoarele reguli care acoperă numai aceste mostre Wslink și Lazarus, care este un indicator cu o greutate mică. Le-am testat Retrovânătoarea lui VirusTotal și corpusul nostru intern de fișiere.

semnătura_bogată.lungime == 80 și
pe.rich_signature.toolid(175, 30319) == 7 și
pe.rich_signature.toolid(155, 30319) == 1 și
pe.rich_signature.toolid(158, 30319) == 10 și
pe.rich_signature.toolid(170, 30319) >= 90 și
pe.rich_signature.toolid(170, 30319) <= 108

Această regulă poate fi tradusă în următoarea notație, care este mai lizibilă și mai utilizată de VirusTotal, unde se poate vedea versiunea produsului și ID-ul build (VS2010 build 30319), numărul și tipul fișierelor sursă/obiect utilizate ([LTCG C++] unde LTCG înseamnă Link Time Code Generation, [ASM], [C])și numărul de exporturi ([EXP]) în regulă:

[LTCG C++] VS2010 build 30319 count=7
[EXP] VS2010 build 30319 count=1
[ASM] VS2010 build 30319 count=10
[ C ] VS2010 build 30319 numără în [ 90 .. 108 ]

  • Articolul GhostSecret a descris „o componentă unică de colectare a datelor și instalare de implant care ascultă pe portul 443 conexiunile la serverul de control de intrare” care rulează în plus ca un serviciu. Aceasta este o descriere exactă a comportamentului descarcătorului Wslink, în afară de numărul portului, care poate varia în funcție de configurație. Pentru a rezuma, chiar dacă implementarea este diferită, ambele servesc aceluiași scop.
  • Încărcătorul este virtualizat de Oreans' Code Virtualizer, care este un protector comercial care este utilizat frecvent de Lazăr.
  • Încărcătorul folosește Modulul de memorie bibliotecă pentru a încărca module direct din memorie. Biblioteca nu este folosită în mod obișnuit de malware, dar este destul de populară printre grupurile aliniate Coreei de Nord, cum ar fi Lazarus și Kimsuky.
  • Suprapune în codul dintre WinorDLL64 și GhostSecret pe care l-am găsit în timpul analizei noastre. Rezultatele și semnificația în atribuire sunt enumerate în Tabelul 1.

Tabelul 1. Asemănări între WinorDLL64 și GhostSecret și semnificația lor în atribuirea ambelor aceluiași actor de amenințare

Alte asemănări între WinorDLL64 și GhostSecret Impactul
Suprapunerea codului în codul responsabil pentru obținerea arhitecturii procesorului Jos
Suprapune de cod în manipularea directorului curent Jos
Se suprapune codul la obținerea listei de procese Jos
Suprapune de cod în trimiterea fișierului Jos
Suprapune de comportament în procesele de listare Jos
Suprapune de comportament în manipularea directorului curent Jos
Comportamentul se suprapun în lista de fișiere și directoare Jos
Comportamentul se suprapun în volumele de listări Jos
Comportamentul se suprapun în citirea/scrierea fișierelor Jos
Comportamentul se suprapun în crearea proceselor Jos
Comportamentul considerabil se suprapun în eliminarea în siguranță a fișierelor Jos
Se suprapune considerabile comportamente la terminarea proceselor Jos
Comportamentele considerabile se suprapun în colectarea informațiilor despre sistem Jos

Suprapunerea codului în funcționalitatea de trimitere a fișierelor este evidențiată în Figura 2 și Figura 3.

Figura 2. GhostSecret trimite un fișier

Figura 3. Wslink trimite un fișier

Analiza tehnica

WinorDLL64 servește ca o ușă din spate care, în special, obține informații extinse de sistem, oferă mijloace pentru manipularea fișierelor și execută comenzi suplimentare. Interesant este că comunică printr-o conexiune TCP care a fost deja stabilită de încărcătorul său și utilizează unele dintre funcțiile încărctorului.

Figura 4. Vizualizarea comunicării lui Wslink

Ușa din spate este un DLL cu un singur export fără nume care acceptă un parametru - o structură pentru comunicare care a fost deja descrisă în postarea anterioară pe blog. Structura conține un context TLS – socket, cheie, IV – și apeluri inverse pentru trimiterea și primirea mesajelor criptate cu AES-CBC pe 256 de biți care permit lui WinorDLL64 să schimbe date în siguranță cu operatorul printr-o conexiune deja stabilită.

Următoarele fapte ne fac să credem cu mare încredere că biblioteca face într-adevăr parte din Wslink:

  • Structura unică este utilizată peste tot în modul așteptat, de exemplu, contextul TLS și alți parametri semnificativi sunt furnizați în ordinea anticipată la apelurile corecte.
  • Numele DLL-ului este WinorDLL64.dll iar numele lui Wslink era WinorLoaderDLL64.dll.

WinorDLL64 acceptă mai multe comenzi. Figura 5 afișează bucla care primește și gestionează comenzi. Fiecare comandă este legată de un ID unic și acceptă o configurație care conține parametri suplimentari.

Figura 5. Partea principală a buclei de recepție a comenzii ușii din spate

Lista de comenzi, cu etichetele noastre, este în Figura 6.

Figura 6. Lista de comenzi

Tabelul 2 conține un rezumat al comenzilor WinorDLL64, unde sunt modificate, iar categoriile vechi se referă la relația cu funcționalitatea GhostSecret documentată anterior. Subliniem doar schimbări semnificative în categoria modificată.

Tabelul 2. Prezentare generală a comenzilor backdoor

Categorii ID de comandă Funcționalitate Descriere
Nou 0x03 Executați o comandă PowerShell WinorDLL64 instruiește interpretul PowerShell să ruleze fără restricții și să citească comenzile de la intrarea standard. Ulterior, ușa din spate transmite comanda specificată interpretului și trimite ieșirea operatorului.
0x09 Comprimați și descărcați un director WinorDLL64 iterează recursiv peste un director specificat. Conținutul fiecărui fișier și director este comprimat separat și scris într-un fișier temporar care este ulterior trimis operatorului și apoi eliminat în siguranță.
0x0D Deconectați o sesiune Deconectează un anumit utilizator conectat de la sesiunea de Servicii Desktop la distanță a utilizatorului. Comanda poate efectua, de asemenea, diferite funcționalități în funcție de parametru.
0x0D Listează sesiunile Obține diverse detalii despre toate sesiunile de pe dispozitivul victimei și le trimite operatorului. Comanda poate efectua, de asemenea, diferite funcționalități în funcție de parametru.
0x0E Măsurați timpul de conectare Utilizează API-ul Windows GetTickCount pentru a măsura timpul necesar pentru a vă conecta la o gazdă specificată.
Modificat 0x01 Obțineți informații despre sistem Obține detalii complete despre sistemul victimei și le trimite operatorului.
0x0A Eliminați fișierele în siguranță Suprascrie fișierele specificate cu un bloc de date aleatorii, redenumește fiecare fișier cu un nume aleator și, în final, le elimină în siguranță unul câte unul.
0x0C Uciderea proceselor Termină toate procesele ale căror nume se potrivesc cu un model furnizat și/sau cu un PID specific.
Vechi 0x02/0x0B Creați un proces Creează un proces fie ca utilizator curent, fie ca utilizator specificat și, opțional, trimite rezultatul acestuia către operator.
0x05 Setați/Obțineți directorul curent Încercările de a seta și ulterior de a obține calea directorului de lucru curent.
0x06 Enumerați volume Iterează peste unități de la C: la Z: și obține tipul de unitate și numele volumului. Comanda poate efectua, de asemenea, diferite funcționalități în funcție de parametru.
0x06 Listează fișierele dintr-un director Iterează peste fișierele din directorul specificat și dobândește informații precum nume, atribute etc. Comanda poate efectua, de asemenea, diferite funcționalități în funcție de parametru.
0x07 Scrieți într-un fișier Descărcă și adaugă cantitatea declarată de date la fișierul specificat.
0x08 Citiți dintr-un fișier Fișierul specificat este citit și trimis operatorului.
0x0C Enumeră procesele Obține detalii despre toate procesele care rulează pe dispozitivul victimei și, în plus, trimite ID-ul procesului curent.

Concluzie

Sarcina utilă a lui Wslink este dedicată furnizării de mijloace pentru manipularea fișierelor, execuția de cod suplimentar și obținerea de informații extinse despre sistemul de bază, care poate fi folosit mai târziu pentru deplasarea laterală, datorită interesului specific pentru sesiunile de rețea. Încărcătorul Wslink ascultă pe un port specificat în configurație și poate servi clienți de conectare suplimentari și chiar poate încărca diverse sarcini utile.

WinorDLL64 conține o suprapunere în mediul de dezvoltare, comportament și cod cu mai multe mostre Lazarus, ceea ce indică faptul că ar putea fi un instrument din vastul arsenal al acestui grup APT aliniat la Coreea de Nord.

ESET Research oferă rapoarte private de informații APT și fluxuri de date. Pentru orice întrebări despre acest serviciu, vizitați ESET Threat Intelligence .

IoC-uri

SHA-1 Nume de detectare ESET Descriere
1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F Win64/Wslink.A Evacuarea memoriei încărcăturii utile Wslink WinorDll64 descoperite.

Tehnici MITRE ATT&CK

Acest tabel a fost construit folosind Versiunea 12 a cadrului ATT&CK. Nu mai amintim tehnici de la încărcător, ci doar sarcina utilă.

tactică ID Nume si Prenume Descriere
Dezvoltarea resurselor T1587.001 Dezvoltarea capacităților: Malware WinorDLL64 este un instrument personalizat.
Execuție T1059.001 Interpret de comenzi și scripturi: PowerShell WinorDLL64 poate executa comenzi PowerShell arbitrare.
T1106 API nativ WinorDLL64 poate executa procese suplimentare folosind CreateProcessW și CreateProcessAsUserW API-uri.
Evaziunea apărării T1134.002 Acces Token Manipulare: Creați un proces cu Token WinorDLL64 poate apela API-uri WTSQueryUserToken și CreateProcessAsUserW pentru a crea un proces sub un utilizator uzurpat.
T1070.004 Eliminarea indicatorului: ștergerea fișierului WinorDLL64 poate elimina în siguranță fișierele arbitrare.
Descoperire T1087.001 Descoperirea contului: cont local WinorDLL64 poate enumera sesiunile și poate enumera numele utilizatorilor și clienților asociate, printre alte detalii.
T1087.002 Descoperirea contului: cont de domeniu WinorDLL64 poate enumera sesiunile și enumera numele de domenii asociate, printre alte detalii.
T1083 Descoperirea fișierelor și a directorului WinorDLL64 poate obține liste de fișiere și directoare.
T1135 Descoperirea partajării rețelei WinorDLL64 poate descoperi unități de rețea partajate.
T1057 Descoperirea proceselor WinorDLL64 poate colecta informații despre procesele care rulează.
T1012 Registrul de interogări WinorDLL64 poate interoga registrul Windows pentru a aduna informații despre sistem.
T1082 Descoperirea informațiilor de sistem WinorDLL64 poate obține informații precum numele computerului, sistemul de operare și cea mai recentă versiune a pachetului de servicii, arhitectura procesorului, numele procesorului și cantitatea de spațiu pe unitățile fixe.
T1614 Descoperirea locației sistemului WinorDLL64 poate obține numele de țară implicit al victimei folosind GetLocaleInfoW API-ul.
T1614.001 System Location Discovery: System Language Discovery WinorDLL64 poate obține limba implicită a victimei folosind GetLocaleInfoW API-ul.
T1016 Descoperirea configurației rețelei sistemului WinorDLL64 poate enumera informații despre adaptorul de rețea.
T1049 Descoperirea conexiunilor de rețea de sistem WinorDLL64 poate colecta o listă de porturi de ascultare.
T1033 Descoperire proprietar/utilizator de sistem WinorDLL64 poate enumera sesiunile și enumera numele asociate utilizatorilor, domeniilor și clienților – printre alte detalii.
Colectie T1560.002 Arhivați datele colectate: arhivați prin bibliotecă WinorDLL64 poate comprima și exfiltra directoare folosind quicklz bibliotecă.
T1005 Date din sistemul local WinorDLL64 poate colecta date pe dispozitivul victimei.
Impactul T1531 Eliminarea accesului la cont WinorDLL64 poate deconecta un utilizator conectat de la sesiunile specificate.

Timestamp-ul:

Mai mult de la Traim Securitate