WinorDLL64: En bakdør fra det enorme Lazarus-arsenalet?

WinorDLL64: En bakdør fra det enorme Lazarus-arsenalet?

Kilde node: 1975596

Den målrettede regionen, og overlapping i oppførsel og kode, antyder at verktøyet brukes av den beryktede Nord-Korea-justerte APT-gruppen

ESET-forskere har oppdaget en av nyttelastene til Wslink-nedlaster som vi avdekket tilbake i 2021. Vi kalte denne nyttelasten WinorDLL64 basert på filnavnet WinorDLL64.dll. Wslink, som hadde filnavnet WinorLoaderDLL64.dll, er en laster for Windows-binærfiler som, i motsetning til andre slike lastere, kjører som en server og kjører mottatte moduler i minnet. Som ordlyden antyder, fungerer en laster som et verktøy for å laste en nyttelast, eller den faktiske skadelige programvaren, på det allerede kompromitterte systemet. Den første Wslink-kompromissvektoren er ikke identifisert.

Den opprinnelig ukjente Wslink-nyttelasten ble lastet opp til VirusTotal fra Sør-Korea kort tid etter publiseringen av blogginnlegget vårt, og traff en av YARA-reglene våre basert på Wslinks unike navn WinorDLL64. Når det gjelder Wslink, har ESET-telemetri bare sett noen få deteksjoner – i Sentral-Europa, Nord-Amerika og Midtøsten.

De WinorDLL64 nyttelast fungerer som en bakdør som spesielt henter inn omfattende systeminformasjon, gir midler for filmanipulering, som eksfiltrering, overskriving og fjerning av filer, og utfører ytterligere kommandoer. Interessant nok kommuniserer den over en forbindelse som allerede var etablert av Wslink-lasteren.

I 2021 fant vi ingen data som tyder på at Wslink er et verktøy fra en kjent trusselaktør. Etter en omfattende analyse av nyttelasten har vi imidlertid tilskrevet WinorDLL64 til Lazarus APT-gruppen med lav selvtillit basert på målregionen og en overlapping i både atferd og kode med kjente Lazarus-prøver.

Denne beryktede Nord-Korea-tilpassede gruppen har vært aktiv siden minst 2009 og er ansvarlig for høyprofilerte hendelser som både Sony Pictures Entertainment hack og titalls millioner dollar cyberheister i 2016den WannaCryptor (aka WannaCry) utbrudd i 2017, og en lang historie med forstyrrende angrep mot Sørkoreansk offentlig og kritisk infrastruktur siden minst 2011. US-CERT og FBI kaller denne gruppen SKJULT KOBRA.

Basert på vår mye kunnskap av aktivitetene og driften til denne gruppen, mener vi at Lazarus består av et stort team som er systematisk organisert, godt forberedt og består av flere undergrupper som bruker et stort verktøysett. I fjor, vi oppdaget et Lasarus-verktøy som utnyttet CVE-2021-21551 sårbarhet for å målrette en ansatt i et luftfartsselskap i Nederland, og en politisk journalist i Belgia. Det var det første registrerte misbruket av sårbarheten; i kombinasjon førte verktøyet og sårbarheten til at overvåkingen av alle sikkerhetsløsninger på kompromitterte maskiner ble blendet. Vi ga også en omfattende beskrivelse av strukturen til den virtuelle maskinen brukt i prøver av Wslink.

Dette blogginnlegget forklarer tilskrivningen av WinorDLL64 til Lazarus og gir en analyse av nyttelasten.

Lenker til Lasarus

Vi har oppdaget overlapp i både atferd og kode med Lazarus-eksempler fra Operasjon GhostSecret og Bankshot implantat beskrevet av McAfee. Beskrivelsen av implantatene i både GhostSecret- og Bankshot-artikler inneholder overlapp i funksjonaliteten med WinorDLL64 og vi fant noe kodeoverlapping i prøvene. I dette blogginnlegget vil vi kun bruke FE887FCAB66D7D7F79F05E0266C0649F0114BA7C prøve fra GhostSecret for sammenligning mot WinorDLL64 (1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F), med mindre annet er spesifisert.

Følgende detaljer oppsummerer støttefakta for vår lave tillit til Lasarus:

1. Viktimologi

  • Medforskere fra AhnLab bekreftet sørkoreanske ofre for Wslink i deres telemetri, som er en relevant indikator med tanke på de tradisjonelle Lazarus-målene og at vi kun har observert noen få treff.

Figur 1. Rapportert sørkoreansk offer, der mstoned7 er forskeren fra Ahnlab

2. malware

  • Den siste GhostSecret-prøven rapportert av McAfee (FE887FCAB66D7D7F79F05E0266C0649F0114BA7C) er fra februar 2018; vi så den første prøven av Wslink i slutten av 2018, og andre forskere rapporterte treff i august 2018, som de avslørte etter publiseringen vår. Derfor ble disse prøvene oppdaget med relativt kort tid fra hverandre.
  • De PE rike overskrifter indikerer at det samme utviklingsmiljøet og prosjekter av lignende størrelse ble brukt i flere andre kjente Lazarus-prøver (f.eks. 70DE783E5D48C6FBB576BC494BAF0634BC304FD6; 8EC9219303953396E1CB7105CDB18ED6C568E962). Vi fant denne overlappingen ved å bruke følgende regler som kun dekker disse Wslink- og Lazarus-prøvene, som er en indikator med lav vekt. Vi testet dem på VirusTotals retrojakt og vårt 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 regelen kan oversettes til følgende notasjon som er mer lesbar og brukt av VirusTotal, hvor man kan se produktversjonen og bygge-IDen (VS2010 bygg 30319), antall og type kilde/objektfiler som er brukt ([LTCG C++] der LTCG står for Link Time Code Generation, [ASM], [C]), og antall eksporter ([EXP]) i regelen:

[LTCG C++] VS2010 build 30319 count=7
[EXP] VS2010 build 30319 count=1
[ASM] VS2010 build 30319 count=10
[ C ] VS2010 bygge 30319 teller i [ 90 .. 108 ]

  • GhostSecret-artikkelen beskrev "en unik datainnsamlings- og implantasjonsinstallasjonskomponent som lytter på port 443 for innkommende kontrollserverforbindelser" som i tillegg kjørte som en tjeneste. Dette er en nøyaktig beskrivelse av Wslink-nedlasterens atferd, bortsett fra portnummeret, som kan variere basert på konfigurasjonen. For å oppsummere, selv om implementeringen er forskjellig, tjener begge samme formål.
  • Lasteren er virtualisert av Oreans' Code Virtualizer, som er en kommersiell beskytter som brukes ofte av Lasarus.
  • Lasteren bruker Minnemodul bibliotek for å laste moduler direkte fra minnet. Biblioteket brukes ikke ofte av skadelig programvare, men det er ganske populært blant Nord-Korea-justerte grupper som Lazarus og Kimsuky.
  • Overlapp i koden mellom WinorDLL64 og GhostSecret som vi fant under vår analyse. Resultatene og betydningen i attribusjon er oppført i tabell 1.

Tabell 1. Likheter mellom WinorDLL64 og GhostSecret og deres betydning for å tilskrive begge til samme trusselaktør

Andre likheter mellom WinorDLL64 og GhostSecret Påvirkning
Kodeoverlapping i kode ansvarlig for å få prosessorarkitektur Lav
Kodeoverlapping i gjeldende katalogmanipulering Lav
Kode overlapper for å få prosesslisten Lav
Kodeoverlapping i filsending Lav
Atferd overlapper i listeprosesser Lav
Atferdsoverlapping i gjeldende katalogmanipulering Lav
Atferd overlapper i fil- og katalogoppføring Lav
Atferdsoverlapping i oppføringsvolumer Lav
Atferdsoverlapping i lesing/skriving av filer Lav
Atferd overlapper i å skape prosesser Lav
Betydelig atferd overlapper i sikker fjerning av filer Lav
Betydelig atferd overlapper hverandre ved avslutning av prosesser Lav
Betydelig atferd overlapper i innsamling av systeminformasjon Lav

Kodeoverlapping i filsendingsfunksjonaliteten er uthevet i figur 2 og figur 3.

Figur 2. GhostSecret sender en fil

Figur 3. Wslink sender en fil

Teknisk analyse

WinorDLL64 fungerer som en bakdør som mest bemerkelsesverdig innhenter omfattende systeminformasjon, gir midler for filmanipulering og utfører tilleggskommandoer. Interessant nok kommuniserer den over en TCP-forbindelse som allerede var etablert av lasteren og bruker noen av lasterens funksjoner.

Figur 4. Visualisering av Wslinks kommunikasjon

Bakdøren er en DLL med en enkelt navngitt eksport som godtar én parameter – en struktur for kommunikasjon som allerede var beskrevet i vår forrige blogginnlegg. Strukturen inneholder en TLS-kontekst – socket, nøkkel, IV – og tilbakeringinger for å sende og motta meldinger kryptert med 256-bit AES-CBC som gjør at WinorDLL64 kan utveksle data sikkert med operatøren over en allerede etablert tilkobling.

Følgende fakta får oss til å tro med stor tillit at biblioteket faktisk er en del av Wslink:

  • Den unike strukturen brukes overalt på den forventede måten, f.eks. leveres TLS-konteksten og andre meningsfulle parametere i forventet rekkefølge til riktig tilbakeringing.
  • Navnet på DLL-en er WinorDLL64.dll og Wslinks navn var WinorLoaderDLL64.dll.

WinorDLL64 godtar flere kommandoer. Figur 5 viser løkken som mottar og håndterer kommandoer. Hver kommando er bundet til en unik ID og godtar en konfigurasjon som inneholder flere parametere.

Figur 5. Hoveddelen av bakdørens kommando-mottaksløkke

Kommandolisten, med våre etiketter, er i figur 6.

Figur 6. Kommandolisten

Tabell 2 inneholder et sammendrag av WinorDLL64-kommandoene, der modifiserte og gamle kategorier refererer til forholdet til den tidligere dokumenterte GhostSecret-funksjonaliteten. Vi fremhever kun vesentlige endringer i den modifiserte kategorien.

Tabell 2. Oversikt over bakdørskommandoer

Kategori Kommando ID Funksjonalitet Beskrivelse
Ny 0x03 Utfør en PowerShell-kommando WinorDLL64 instruerer PowerShell-tolken til å kjøre ubegrenset og lese kommandoer fra standardinndata. Etterpå sender bakdøren den angitte kommandoen til tolken og sender utdata til operatøren.
0x09 Komprimer og last ned en katalog WinorDLL64 itererer rekursivt over en spesifisert katalog. Innholdet i hver fil og katalog komprimeres separat og skrives til en midlertidig fil som etterpå sendes til operatøren og deretter fjernes på en sikker måte.
0x0D Koble fra en økt Kobler en spesifisert pålogget bruker fra brukerens Remote Desktop Services-økt. Kommandoen kan også utføre forskjellig funksjonalitet basert på parameteren.
0x0D List opp økter Innhenter ulike detaljer om alle økter på offerets enhet og sender dem til operatøren. Kommandoen kan også utføre forskjellig funksjonalitet basert på parameteren.
0x0E Mål tilkoblingstiden Bruker Windows API GetTickCount for å måle tiden som kreves for å koble til en spesifisert vert.
Modifisert 0x01 Få systeminformasjon Skaffer seg omfattende detaljer om offerets system og sender dem til operatøren.
0x0A Fjern filer på en sikker måte Overskriver spesifiserte filer med en blokk med tilfeldige data, gir nytt navn til hver fil til et tilfeldig navn og fjerner dem til slutt sikkert én etter én.
0x0C Drep prosesser Avslutter alle prosesser hvis navn samsvarer med et medfølgende mønster og/eller med en spesifikk PID.
Gammel 0x02/0x0B Lag en prosess Oppretter en prosess enten som gjeldende eller spesifisert bruker og sender eventuelt utdata til operatøren.
0x05 Sett/hent gjeldende katalog Forsøker å angi og deretter hente banen til gjeldende arbeidskatalog.
0x06 Liste opp volumer Itererer over stasjoner fra C: til Å: og henter stasjonstypen og volumnavnet. Kommandoen kan også utføre forskjellig funksjonalitet basert på parameteren.
0x06 List filer i en katalog Itererer over filer i spesifisert katalog og henter informasjon som navn, attributter osv. Kommandoen kan også utføre forskjellig funksjonalitet basert på parameteren.
0x07 Skriv til en fil Laster ned og legger til den oppgitte mengden data til spesifisert fil.
0x08 Les fra en fil Den angitte filen leses og sendes til operatøren.
0x0C List opp prosesser Skaffer seg detaljer om alle kjørende prosesser på offerets enhet og sender i tillegg ID for gjeldende prosess.

konklusjonen

Wslinks nyttelast er dedikert til å gi midler for filmanipulering, utførelse av ytterligere kode og innhenting av omfattende informasjon om det underliggende systemet som muligens kan utnyttes senere for sideveis bevegelse, på grunn av spesifikk interesse for nettverksøkter. Wslink-lasteren lytter på en port spesifisert i konfigurasjonen og kan betjene flere tilkoblingsklienter, og til og med laste ulike nyttelaster.

WinorDLL64 inneholder en overlapping i utviklingsmiljøet, atferden og koden med flere Lazarus-eksempler, noe som indikerer at det kan være et verktøy fra det enorme arsenalet til denne Nord-Korea-justerte APT-gruppen.

ESET Research tilbyr private APT-etterretningsrapporter og datafeeder. For eventuelle spørsmål om denne tjenesten, besøk ESET Threat Intelligence side.

IoCs

SHA-1 ESET-deteksjonsnavn Beskrivelse
1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F Win64/Wslink.A Minnedump av oppdaget Wslink-nyttelast WinorDll64.

MITRE ATT&CK-teknikker

Dette bordet ble bygget vha versjon 12 av ATT&CK-rammeverket. Vi nevner ikke teknikker fra lasteren igjen, kun nyttelasten.

taktikk ID Navn Beskrivelse
Ressursutvikling T1587.001 Utvikle evner: Skadelig programvare WinorDLL64 er et tilpasset verktøy.
Gjennomføring T1059.001 Kommando- og skripttolk: PowerShell WinorDLL64 kan utføre vilkårlige PowerShell-kommandoer.
T1106 Innfødt API WinorDLL64 kan utføre ytterligere prosesser ved å bruke CreateProcessW og CreateProcessAsUserW APIer.
Forsvarsunndragelse T1134.002 Access Token Manipulation: Lag prosess med Token WinorDLL64 kan kalle APIer WTSQueryUserToken og CreateProcessAsUserW å opprette en prosess under en etterlignet bruker.
T1070.004 Indikatorfjerning: Filsletting WinorDLL64 kan sikkert fjerne vilkårlige filer.
Discovery T1087.001 Kontooppdagelse: Lokal konto WinorDLL64 kan telle opp økter og liste tilknyttede bruker- og klientnavn, blant andre detaljer.
T1087.002 Kontooppdagelse: Domenekonto WinorDLL64 kan telle opp økter og liste tilknyttede domenenavn – blant andre detaljer.
T1083 Fil- og katalogoppdagelse WinorDLL64 kan få fil- og katalogoppføringer.
T1135 Oppdagelse av nettverksdeling WinorDLL64 kan oppdage delte nettverksstasjoner.
T1057 Prosessoppdagelse WinorDLL64 kan samle informasjon om kjørende prosesser.
T1012 Spørringsregister WinorDLL64 kan spørre Windows-registeret for å samle systeminformasjon.
T1082 Oppdagelse av systeminformasjon WinorDLL64 kan hente informasjon som datamaskinnavn, OS og siste oppdateringspakkeversjon, prosessorarkitektur, prosessornavn og mengde plass på faste stasjoner.
T1614 Oppdagelse av systemplassering WinorDLL64 kan få offerets standard landnavn ved å bruke GetLocaleInfoW API.
T1614.001 System Location Discovery: System Language Discovery WinorDLL64 kan hente offerets standardspråk ved å bruke GetLocaleInfoW API.
T1016 Oppdagelse av systemnettverkskonfigurasjon WinorDLL64 kan telle nettverkskortinformasjon.
T1049 Oppdagelse av systemnettverkstilkoblinger WinorDLL64 kan samle en liste over lytteporter.
T1033 Systemeier/brukeroppdagelse WinorDLL64 kan telle opp økter og liste tilknyttede bruker-, domene- og klientnavn – blant andre detaljer.
Samling T1560.002 Arkiver innsamlede data: Arkiver via bibliotek WinorDLL64 kan komprimere og eksfiltrere kataloger ved hjelp av quicklz bibliotek.
T1005 Data fra lokalt system WinorDLL64 kan samle inn data på offerets enhet.
Påvirkning T1531 Fjerning av kontotilgang WinorDLL64 kan koble en pålogget bruker fra spesifiserte økter.

Tidstempel:

Mer fra Vi lever sikkerhet