WinorDLL64: En bagdør fra det enorme Lazarus-arsenal?

WinorDLL64: En bagdør fra det enorme Lazarus-arsenal?

Kildeknude: 1975596

Den målrettede region og overlap i adfærd og kode antyder, at værktøjet bruges af den berygtede nordkoreanske APT-gruppe

ESET-forskere har opdaget en af ​​nyttelasterne af Wslink downloader som vi afslørede tilbage i 2021. Vi navngav denne nyttelast WinorDLL64 baseret på dens filnavn WinorDLL64.dll. Wslink, som havde filnavnet WinorLoaderDLL64.dll, er en indlæser til Windows-binære filer, der i modsætning til andre sådanne indlæsere kører som en server og eksekverer modtagne moduler i hukommelsen. Som ordlyden antyder, tjener en loader som et værktøj til at indlæse en nyttelast eller den faktiske malware på det allerede kompromitterede system. Den indledende Wslink-kompromisvektor er ikke blevet identificeret.

Den oprindeligt ukendte Wslink-nyttelast blev uploadet til VirusTotal fra Sydkorea kort efter offentliggørelsen af ​​vores blogindlæg og ramte en af ​​vores YARA-regler baseret på Wslinks unikke navn WinorDLL64. Med hensyn til Wslink har ESET-telemetri kun set få registreringer – i Centraleuropa, Nordamerika og Mellemøsten.

WinorDLL64 nyttelast fungerer som en bagdør, der især henter omfattende systeminformation, giver midler til filmanipulation, såsom eksfiltrering, overskrivning og fjernelse af filer, og udfører yderligere kommandoer. Interessant nok kommunikerer den over en forbindelse, der allerede var etableret af Wslink-indlæseren.

I 2021 fandt vi ingen data, der tyder på, at Wslink er et værktøj fra en kendt trusselsaktør. Men efter en omfattende analyse af nyttelasten har vi tilskrevet WinorDLL64 til Lazarus APT-gruppen med lav tillid baseret på den målrettede region og et overlap i både adfærd og kode med kendte Lazarus-prøver.

Aktiv siden mindst 2009, denne berygtede nord-korea-tilpassede gruppe er ansvarlig for højt profilerede hændelser som f.eks. Hack til Sony Pictures Entertainment og titusindvis af millioner-dollar cyberheister i 2016, WannaCryptor (aka WannaCry) udbrud i 2017 og en lang historie med forstyrrende angreb mod Sydkoreansk offentlig og kritisk infrastruktur siden mindst 2011. US-CERT og FBI kalder denne gruppe SKJULT COBRA.

Baseret på vores omfattende viden af denne gruppes aktiviteter og drift, mener vi, at Lazarus består af et stort team, der er systematisk organiseret, velforberedt og består af flere undergrupper, der anvender et stort værktøjssæt. Sidste år, vi opdagede et Lazarus-værktøj der udnyttede CVE-2021-21551 sårbarhed over for en ansat i en luftfartsvirksomhed i Holland og en politisk journalist i Belgien. Det var det første registrerede misbrug af sårbarheden; i kombination førte værktøjet og sårbarheden til, at overvågningen af ​​alle sikkerhedsløsninger på kompromitterede maskiner blev blændet. Vi har også givet en omfattende beskrivelse af strukturen af ​​den virtuelle maskine brugt i prøver af Wslink.

Dette blogindlæg forklarer tilskrivningen af ​​WinorDLL64 til Lazarus og giver en analyse af nyttelasten.

Links til Lazarus

Vi har opdaget overlapninger i både adfærd og kode med Lazarus-eksempler fra Operation GhostSecret og Bankshot implantat beskrevet af McAfee. Beskrivelsen af ​​implantaterne i både GhostSecret- og Bankshot-artikler indeholder overlapninger i funktionaliteten med WinorDLL64, og vi fandt en vis kodeoverlapning i prøverne. I dette blogindlæg vil vi kun bruge FE887FCAB66D7D7F79F05E0266C0649F0114BA7C prøve fra GhostSecret til sammenligning med WinorDLL64 (1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F), medmindre andet er angivet.

Følgende detaljer opsummerer de understøttende fakta for vores ringe tillid til Lazarus:

1. Viktimologi

  • Medforskere fra AhnLab bekræftede sydkoreanske ofre for Wslink i deres telemetri, hvilket er en relevant indikator i betragtning af de traditionelle Lazarus-mål, og at vi kun har observeret få hits.

Figur 1. Rapporteret sydkoreansk offer, hvor mstoned7 er forskeren fra Ahnlab

2. Malware

  • Den seneste GhostSecret-prøve rapporteret af McAfee (FE887FCAB66D7D7F79F05E0266C0649F0114BA7C) er fra februar 2018; vi så den første prøve af Wslink i slutningen af ​​2018, og andre forskere rapporterede hits i august 2018, som de afslørede efter vores offentliggørelse. Derfor blev disse prøver set med relativt kort tid fra hinanden.
  • PE rige overskrifter indikerer, at det samme udviklingsmiljø og projekter af lignende størrelse blev brugt i flere andre kendte Lazarus-prøver (f.eks. 70DE783E5D48C6FBB576BC494BAF0634BC304FD6; 8EC9219303953396E1CB7105CDB18ED6C568E962). Vi fandt dette overlap ved hjælp af følgende regler, der kun dækker disse Wslink- og Lazarus-prøver, hvilket er en indikator med lav vægt. Vi testede dem på VirusTotals retrojagt og vores interne filkorpus.

rich_signature.length == 80 og
pe.rich_signature.toolid(175, 30319) == 7 og
pe.rich_signature.toolid(155, 30319) == 1 og
pe.rich_signature.toolid(158, 30319) == 10 og
pe.rich_signature.toolid(170, 30319) >= 90 og
pe.rich_signature.toolid(170, 30319) <= 108

Denne regel kan oversættes til følgende notation, der er mere læsbar og brugt af VirusTotal, hvor man kan se produktversionen og build-id'et (VS2010 build 30319), antal og type af anvendte kilde-/objektfiler ([LTCG C++] hvor LTCG står for Link Time Code Generation, [ASM], [C]), og antal eksporter ([EXP]) i reglen:

[LTCG C++] VS2010 build 30319 count=7
[EXP] VS2010 build 30319 count=1
[ASM] VS2010 build 30319 count=10
[ C ] VS2010 build 30319 tæller i [ 90 .. 108 ]

  • GhostSecret-artiklen beskrev "en unik dataindsamlings- og implantatinstallationskomponent, der lytter på port 443 for indgående kontrolserverforbindelser", der desuden kørte som en tjeneste. Dette er en nøjagtig beskrivelse af Wslink-downloaderens adfærd, bortset fra portnummeret, som kan variere baseret på konfigurationen. For at opsummere, selvom implementeringen er forskellig, tjener begge det samme formål.
  • Indlæseren er virtualiseret af Oreans' Code Virtualizer, som er en kommerciel beskytter, der bruges hyppigt af Lazarus.
  • Læsseren bruger Hukommelsesmodul bibliotek til at indlæse moduler direkte fra hukommelsen. Biblioteket er ikke almindeligt brugt af malware, men det er ret populært blandt nordkoreanske grupper som Lazarus og Kimsuky.
  • Overlap i koden mellem WinorDLL64 og GhostSecret, som vi fandt under vores analyse. Resultaterne og betydningen af ​​tilskrivning er angivet i tabel 1.

Tabel 1. Ligheder mellem WinorDLL64 og GhostSecret og deres betydning ved at tilskrive begge den samme trusselsaktør

Andre ligheder mellem WinorDLL64 og GhostSecret KIMOs Succeshistorier
Kodeoverlapning i kode ansvarlig for at få processorarkitektur Lav
Kodeoverlap i aktuel katalogmanipulation Lav
Kode overlapper i at få proceslisten Lav
Kodeoverlap i filafsendelse Lav
Adfærdsoverlapning i listeprocesser Lav
Adfærdsoverlapning i aktuel katalogmanipulation Lav
Adfærdsoverlapning i fil- og mappeliste Lav
Adfærdsoverlapning i noteringsmængder Lav
Adfærdsoverlapning i læsning/skrivning af filer Lav
Adfærdsoverlap i skabelsen af ​​processer Lav
Betydelig adfærd overlapper hinanden i sikker fjernelse af filer Lav
Betydelig adfærd overlapper hinanden ved afslutning af processer Lav
Betydelig adfærd overlapper hinanden ved indsamling af systemoplysninger Lav

Kodeoverlapning i filafsendelsesfunktionen er fremhævet i figur 2 og figur 3.

Figur 2. GhostSecret sender en fil

Figur 3. Wslink sender en fil

Teknisk analyse

WinorDLL64 fungerer som en bagdør, der især indhenter omfattende systeminformation, giver midler til filmanipulation og udfører yderligere kommandoer. Interessant nok kommunikerer den over en TCP-forbindelse, der allerede var etableret af dens loader og bruger nogle af loaderens funktioner.

Figur 4. Visualisering af Wslinks kommunikation

Bagdøren er en DLL med en enkelt unavngiven eksport, der accepterer én parameter – en kommunikationsstruktur, der allerede var beskrevet i vores tidligere blogindlæg. Strukturen indeholder en TLS-kontekst – socket, nøgle, IV – og tilbagekald til afsendelse og modtagelse af beskeder krypteret med 256-bit AES-CBC, der gør WinorDLL64 i stand til at udveksle data sikkert med operatøren over en allerede etableret forbindelse.

Følgende fakta får os til at tro med stor tillid til, at biblioteket faktisk er en del af Wslink:

  • Den unikke struktur bruges overalt på den forventede måde, f.eks. leveres TLS-konteksten og andre meningsfulde parametre i den forventede rækkefølge til de korrekte tilbagekald.
  • Navnet på DLL'en er WinorDLL64.dll og Wslinks navn var WinorLoaderDLL64.dll.

WinorDLL64 accepterer flere kommandoer. Figur 5 viser løkken, der modtager og håndterer kommandoer. Hver kommando er bundet til et unikt ID og accepterer en konfiguration, der indeholder yderligere parametre.

Figur 5. Hoveddelen af ​​bagdørens kommando-modtagesløjfe

Kommandolisten med vores etiketter er i figur 6.

Figur 6. Kommandolisten

Tabel 2 indeholder en oversigt over WinorDLL64-kommandoerne, hvor modificerede og gamle kategorier refererer til forholdet til den tidligere dokumenterede GhostSecret-funktionalitet. Vi fremhæver kun væsentlige ændringer i den ændrede kategori.

Tabel 2. Oversigt over bagdørskommandoer

Boligtype Kommando ID Funktionalitet Beskrivelse
Ny 0x03 Udfør en PowerShell-kommando WinorDLL64 instruerer PowerShell-fortolkeren til at køre ubegrænset og læse kommandoer fra standardinput. Bagefter sender bagdøren den specificerede kommando til tolken og sender outputtet til operatøren.
0x09 Komprimer og download en mappe WinorDLL64 itererer rekursivt over en specificeret mappe. Indholdet af hver fil og mappe komprimeres separat og skrives til en midlertidig fil, der efterfølgende sendes til operatøren og derefter fjernes sikkert.
0x0D Afbryd forbindelsen til en session Afbryder forbindelsen til en specificeret logget bruger fra brugerens Remote Desktop Services-session. Kommandoen kan også udføre forskellige funktioner baseret på parameteren.
0x0D Liste sessioner Får forskellige detaljer om alle sessioner på offerets enhed og sender dem til operatøren. Kommandoen kan også udføre forskellige funktioner baseret på parameteren.
0x0E Mål tilslutningstiden Bruger Windows API GetTickCount at måle den tid, der kræves for at oprette forbindelse til en specificeret vært.
Modificeret 0x01 Få systeminfo Får omfattende detaljer om ofrets system og sender dem til operatøren.
0x0A Fjern filer sikkert Overskriver specificerede filer med en blok af tilfældige data, omdøber hver fil til et tilfældigt navn og fjerner dem endelig sikkert én efter én.
0x0C Dræbe processer Afslutter alle processer, hvis navne matcher et medfølgende mønster og/eller med et specifikt PID.
Gammel 0x02/0x0B Opret en proces Opretter en proces enten som den aktuelle eller specificerede bruger og sender eventuelt dens output til operatøren.
0x05 Indstil/hent den aktuelle mappe Forsøg på at indstille og efterfølgende erhverve stien til den aktuelle arbejdsmappe.
0x06 Liste mængder Itererer over drev fra C: til Z: og henter drevtypen og volumennavnet. Kommandoen kan også udføre forskellige funktioner baseret på parameteren.
0x06 Liste filer i en mappe Gentager filer i specificeret mappe og henter information som navne, attributter osv. Kommandoen kan også udføre forskellige funktioner baseret på parameteren.
0x07 Skriv til en fil Downloader og tilføjer den angivne mængde data til den specificerede fil.
0x08 Læs fra en fil Den angivne fil læses og sendes til operatøren.
0x0C Liste processer Indhenter detaljer om alle kørende processer på offerets enhed og sender desuden ID for den aktuelle proces.

Konklusion

Wslinks nyttelast er dedikeret til at give midler til filmanipulation, eksekvering af yderligere kode og indhentning af omfattende information om det underliggende system, som muligvis kan udnyttes senere til lateral bevægelse på grund af specifik interesse for netværkssessioner. Wslink-indlæseren lytter på en port specificeret i konfigurationen og kan betjene yderligere tilslutningsklienter og endda indlæse forskellige nyttelaster.

WinorDLL64 indeholder et overlap i udviklingsmiljøet, adfærden og koden med adskillige Lazarus-eksempler, hvilket indikerer, at det kan være et værktøj fra det store arsenal af denne nordkoreanske APT-gruppe.

ESET Research tilbyder private APT-efterretningsrapporter og datafeeds. For eventuelle forespørgsler om denne service, besøg ESET Threat Intelligence .

IoC'er

SHA-1 ESET-detekteringsnavn Beskrivelse
1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F Win64/Wslink.A Hukommelsesdump af opdaget Wslink-nyttelast WinorDll64.

MITRE ATT&CK teknikker

Dette bord er bygget vha udgave 12 af ATT&CK-rammerne. Vi nævner ikke teknikker fra læsseren igen, kun nyttelasten.

Taktik ID Navn Beskrivelse
Ressourceudvikling T1587.001 Udvikle muligheder: Malware WinorDLL64 er et brugerdefineret værktøj.
Udførelse T1059.001 Kommando- og scriptfortolker: PowerShell WinorDLL64 kan udføre vilkårlige PowerShell-kommandoer.
T1106 Native API WinorDLL64 kan udføre yderligere processer ved hjælp af CreateProcessW , CreateProcessAsUserW API'er.
Forsvarsunddragelse T1134.002 Adgang Token Manipulation: Opret proces med Token WinorDLL64 kan kalde API'er WTSQueryUserToken , CreateProcessAsUserW at oprette en proces under en efterlignet bruger.
T1070.004 Indikatorfjernelse: Filsletning WinorDLL64 kan sikkert fjerne vilkårlige filer.
Discovery T1087.001 Kontoopdagelse: Lokal konto WinorDLL64 kan opregne sessioner og liste tilknyttede bruger- og klientnavne blandt andre detaljer.
T1087.002 Kontoopdagelse: Domænekonto WinorDLL64 kan opregne sessioner og liste tilknyttede domænenavne – blandt andre detaljer.
T1083 Opdagelse af filer og mapper WinorDLL64 kan hente fil- og mappelister.
T1135 Opdagelse af netværksdeling WinorDLL64 kan opdage delte netværksdrev.
T1057 Procesopdagelse WinorDLL64 kan indsamle oplysninger om kørende processer.
T1012 Forespørgselsregister WinorDLL64 kan forespørge i Windows-registreringsdatabasen for at indsamle systemoplysninger.
T1082 Opdagelse af systemoplysninger WinorDLL64 kan hente oplysninger såsom computernavn, OS og seneste service pack-version, processorarkitektur, processornavn og mængden af ​​plads på faste drev.
T1614 Opdagelse af systemplacering WinorDLL64 kan få offerets standard landnavn ved hjælp af GetLocaleInfoW API.
T1614.001 System Location Discovery: System Language Discovery WinorDLL64 kan hente offerets standardsprog ved hjælp af GetLocaleInfoW API.
T1016 Opdagelse af systemnetværkskonfiguration WinorDLL64 kan opregne netværksadapteroplysninger.
T1049 Opdagelse af systemnetværksforbindelser WinorDLL64 kan samle en liste over lytteporte.
T1033 Systemejer/brugeropdagelse WinorDLL64 kan opregne sessioner og liste tilknyttede bruger-, domæne- og klientnavne – blandt andre detaljer.
Samling T1560.002 Arkiver indsamlede data: Arkiver via bibliotek WinorDLL64 kan komprimere og eksfiltrere mapper ved hjælp af quicklz bibliotek.
T1005 Data fra lokalt system WinorDLL64 kan indsamle data på ofrets enhed.
KIMOs Succeshistorier T1531 Fjernelse af kontoadgang WinorDLL64 kan afbryde forbindelsen til en logget bruger fra specificerede sessioner.

Tidsstempel:

Mere fra Vi lever sikkerhed