WinorDLL64: En bakdörr från den stora Lazarus-arsenalen?

WinorDLL64: En bakdörr från den stora Lazarus-arsenalen?

Källnod: 1975596

Den riktade regionen, och överlappning i beteende och kod, tyder på att verktyget används av den ökända Nordkorea-justerade APT-gruppen

ESET-forskare har upptäckt en av nyttolasten av Wslink-nedladdare som vi upptäckte redan 2021. Vi döpte denna nyttolast WinorDLL64 baserat på dess filnamn WinorDLL64.dll. Wslink, som hade filnamnet WinorLoaderDLL64.dll, är en loader för Windows-binärfiler som, till skillnad från andra sådana loaders, körs som en server och exekverar mottagna moduler i minnet. Som ordalydelsen antyder fungerar en laddare som ett verktyg för att ladda en nyttolast, eller den faktiska skadliga programvaran, till det redan komprometterade systemet. Den initiala Wslink-kompromissvektorn har inte identifierats.

Den från början okända Wslink-nyttolasten laddades upp till VirusTotal från Sydkorea kort efter publiceringen av vårt blogginlägg, och träffade en av våra YARA-regler baserad på Wslinks unika namn WinorDLL64. När det gäller Wslink har ESET-telemetri bara sett några få upptäckter – i Centraleuropa, Nordamerika och Mellanöstern.

Smakämnen WinorDLL64 nyttolast fungerar som en bakdörr som framför allt samlar in omfattande systeminformation, tillhandahåller medel för filmanipulation, såsom exfiltrering, överskrivning och borttagning av filer, och exekverar ytterligare kommandon. Intressant nog kommunicerar den över en anslutning som redan upprättats av Wslink-lastaren.

Under 2021 hittade vi ingen data som skulle tyda på att Wslink är ett verktyg från en känd hotaktör. Men efter en omfattande analys av nyttolasten har vi tillskrivit WinorDLL64 till Lazarus APT-gruppen med lågt förtroende baserat på målregionen och en överlappning i både beteende och kod med kända Lazarus-prover.

Denna ökända Nordkorea-anslutna grupp har varit aktiv sedan åtminstone 2009 och är ansvarig för högprofilerade incidenter som både Hacka Sony Pictures Entertainment och tiotals-miljoner-dollar cyberheister 2016, den WannaCryptor (aka WannaCry) utbrott 2017, och en lång historia av störande attacker mot Sydkoreansk offentlig och kritisk infrastruktur sedan åtminstone 2011. US-CERT och FBI kallar denna grupp Gömd COBRA.

Baserat på vår omfattande kunskap av verksamheten och verksamheten i denna grupp tror vi att Lazarus består av ett stort team som är systematiskt organiserat, väl förberedda och består av flera undergrupper som använder en stor verktygsuppsättning. Förra året, vi upptäckte ett Lazarus-verktyg som utnyttjade CVE‑2021‑21551 sårbarhet för att rikta in sig på en anställd på ett flygbolag i Nederländerna och en politisk journalist i Belgien. Det var det första registrerade missbruket av sårbarheten; i kombination ledde verktyget och sårbarheten till att övervakningen av alla säkerhetslösningar på komprometterade maskiner förblindades. Vi gav också en omfattande beskrivning av den virtuella maskinens struktur används i prover av Wslink.

Det här blogginlägget förklarar tillskrivningen av WinorDLL64 till Lazarus och ger en analys av nyttolasten.

Länkar till Lazarus

Vi har upptäckt överlappningar i både beteende och kod med Lazarus-prover från Operation GhostSecret och Bankshot implantat beskrivs av McAfee. Beskrivningen av implantaten i både GhostSecret- och Bankshot-artiklar innehåller överlappningar i funktionaliteten med WinorDLL64 och vi hittade viss kodöverlappning i proverna. I det här blogginlägget kommer vi endast att använda FE887FCAB66D7D7F79F05E0266C0649F0114BA7C prov från GhostSecret för jämförelse mot WinorDLL64 (1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F), om inte annat anges.

Följande detaljer sammanfattar de stödjande fakta för vårt låga förtroende för Lazarus:

1. Viktimologi

  • Andra forskare från AhnLab bekräftade sydkoreanska offer för Wslink i deras telemetri, vilket är en relevant indikator med tanke på de traditionella Lazarus-målen och att vi bara har observerat ett fåtal träffar.

Figur 1. Rapporterat sydkoreanskt offer, där mstoned7 är forskaren från Ahnlab

2. Skadlig programvara

  • Det senaste GhostSecret-exemplet rapporterat av McAfee (FE887FCAB66D7D7F79F05E0266C0649F0114BA7C) är från februari 2018; vi såg det första provet av Wslink i slutet av 2018 och andra forskare rapporterade träffar i augusti 2018, som de avslöjade efter vår publicering. Därför sågs dessa prover med en relativt kort tidsperiod från varandra.
  • Smakämnen PE rika rubriker indikerar att samma utvecklingsmiljö och projekt av liknande storlek användes i flera andra kända Lazarus-prover (t.ex. 70DE783E5D48C6FBB576BC494BAF0634BC304FD6; 8EC9219303953396E1CB7105CDB18ED6C568E962). Vi hittade denna överlappning med hjälp av följande regler som endast täcker dessa Wslink- och Lazarus-prover, vilket är en indikator med låg vikt. Vi testade dem VirusTotals retrojakt och vår interna filkorpus.

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

Denna regel kan översättas till följande notation som är mer läsbar och används av VirusTotal, där man kan se produktversionen och build-ID (VS2010 bygg 30319), antal och typ av käll-/objektfiler som används ([LTCG C++] där LTCG står för Link Time Code Generation, [ASM], [C]), och antal exporter ([EXP]) i regeln:

[LTCG C++] VS2010 build 30319 count=7
[EXP] VS2010 build 30319 count=1
[ASM] VS2010 build 30319 count=10
[ C ] VS2010 bygger 30319 räknas in [ 90 .. 108 ]

  • GhostSecret-artikeln beskrev "en unik datainsamlings- och implantatinstallationskomponent som lyssnar på port 443 för inkommande kontrollserveranslutningar" som dessutom kördes som en tjänst. Detta är en korrekt beskrivning av Wslink-nedladdarens beteende, förutom portnumret, som kan variera beroende på konfigurationen. För att sammanfatta det, även om implementeringen är olika, tjänar båda samma syfte.
  • Laddaren virtualiseras av Oreans Code Virtualizer, som är ett kommersiellt skydd som används ofta av Lazarus.
  • Lastaren använder Minnesmodul bibliotek för att ladda moduler direkt från minnet. Biblioteket används inte ofta av skadlig programvara, men det är ganska populärt bland Nordkorea-anslutna grupper som Lazarus och Kimsuky.
  • Överlappning i koden mellan WinorDLL64 och GhostSecret som vi hittade under vår analys. Resultaten och signifikansen i tillskrivningen anges i tabell 1.

Tabell 1. Likheter mellan WinorDLL64 och GhostSecret och deras betydelse för att tillskriva båda till samma hotaktör

Andra likheter mellan WinorDLL64 och GhostSecret Inverkan
Kodöverlappning i kod ansvarig för att få processorarkitektur Låg
Kodöverlappning i aktuell katalogmanipulation Låg
Kodöverlappning för att få processlistan Låg
Kodöverlappning vid filsändning Låg
Beteende överlappar varandra i listningsprocesser Låg
Beteendeöverlappning vid aktuell katalogmanipulation Låg
Beteende överlappar varandra i fil- och kataloglistning Låg
Beteende överlappar i noteringsvolymer Låg
Beteende överlappar varandra i läsning/skrivande av filer Låg
Beteende överlappar varandra i att skapa processer Låg
Betydande beteende överlappar varandra vid säker borttagning av filer Låg
Betydande beteendeöverlappning vid avslutning av processer Låg
Betydande beteendeöverlappning vid insamling av systeminformation Låg

Kodöverlappning i filsändningsfunktionen är markerad i figur 2 och figur 3.

Figur 2. GhostSecret skickar en fil

Figur 3. Wslink skickar en fil

Teknisk analys

WinorDLL64 fungerar som en bakdörr som framför allt samlar in omfattande systeminformation, tillhandahåller medel för filmanipulation och exekverar ytterligare kommandon. Intressant nog kommunicerar den över en TCP-anslutning som redan upprättats av dess laddare och använder några av laddarens funktioner.

Figur 4. Visualisering av Wslinks kommunikation

Bakdörren är en DLL med en enda namnlös export som accepterar en parameter – en struktur för kommunikation som redan beskrevs i vår föregående blogginlägg. Strukturen innehåller en TLS-kontext – socket, nyckel, IV – och callbacks för att skicka och ta emot meddelanden krypterade med 256-bitars AES-CBC som gör att WinorDLL64 kan utbyta data säkert med operatören över en redan etablerad anslutning.

Följande fakta får oss att tro med stor tillförsikt att biblioteket verkligen är en del av Wslink:

  • Den unika strukturen används överallt på det förväntade sättet, t.ex. levereras TLS-kontexten och andra meningsfulla parametrar i förväntad ordning till korrekta callbacks.
  • Namnet på DLL är WinorDLL64.dll och Wslink hette WinorLoaderDLL64.dll.

WinorDLL64 accepterar flera kommandon. Figur 5 visar slingan som tar emot och hanterar kommandon. Varje kommando är bundet till ett unikt ID och accepterar en konfiguration som innehåller ytterligare parametrar.

Figur 5. Huvuddelen av bakdörrens kommandomottagningsslinga

Kommandolistan, med våra etiketter, finns i figur 6.

Figur 6. Kommandolistan

Tabell 2 innehåller en sammanfattning av WinorDLL64-kommandona, där modifierade och gamla kategorier hänvisar till förhållandet till den tidigare dokumenterade GhostSecret-funktionaliteten. Vi lyfter bara fram betydande förändringar i den modifierade kategorin.

Tabell 2. Översikt över bakdörrskommandon

Kategori Kommando-ID Funktionalitet Beskrivning
Nya 0x03 Kör ett PowerShell-kommando WinorDLL64 instruerar PowerShell-tolken att köra obegränsat och att läsa kommandon från standardindata. Efteråt skickar bakdörren det angivna kommandot till tolken och skickar utdata till operatören.
0x09 Komprimera och ladda ner en katalog WinorDLL64 itererar rekursivt över en specificerad katalog. Innehållet i varje fil och katalog komprimeras separat och skrivs till en temporär fil som sedan skickas till operatören och sedan tas bort på ett säkert sätt.
0x0D Koppla från en session Kopplar bort en angiven inloggad användare från användarens session för Remote Desktop Services. Kommandot kan också utföra olika funktioner baserat på parametern.
0x0D Lista sessioner Skaffar olika detaljer om alla sessioner på offrets enhet och skickar dem till operatören. Kommandot kan också utföra olika funktioner baserat på parametern.
0x0E Mät anslutningstiden Använder Windows API Gettickcount för att mäta den tid som krävs för att ansluta till en specificerad värd.
Ändrad 0x01 Få systeminfo Skaffar omfattande information om offrets system och skickar dem till operatören.
0x0A Ta bort filer säkert Skriver över specificerade filer med ett block av slumpmässiga data, byter namn på varje fil till ett slumpmässigt namn och tar slutligen säkert bort dem en efter en.
0x0C Döda processer Avslutar alla processer vars namn matchar ett medföljt mönster och/eller med ett specifikt PID.
Gamla 0x02/0x0B Skapa en process Skapar en process antingen som aktuell eller specificerad användare och skickar eventuellt dess utdata till operatören.
0x05 Ställ in/hämta aktuell katalog Försöker att ställa in och därefter hämta sökvägen till den aktuella arbetskatalogen.
0x06 Lista volymer Itererar över enheter från C: till Z: och hämtar enhetstyp och volymnamn. Kommandot kan också utföra olika funktioner baserat på parametern.
0x06 Lista filer i en katalog Itererar över filer i specificerad katalog och hämtar information som namn, attribut etc. Kommandot kan också utföra olika funktioner baserat på parametern.
0x07 Skriv till en fil Laddar ner och lägger till den angivna mängden data till angiven fil.
0x08 Läs från en fil Den angivna filen läses och skickas till operatören.
0x0C Lista processer Får information om alla pågående processer på offrets enhet och skickar dessutom ID för den aktuella processen.

Slutsats

Wslinks nyttolast är dedikerad till att tillhandahålla medel för filmanipulering, exekvering av ytterligare kod och att erhålla omfattande information om det underliggande systemet som eventuellt kan utnyttjas senare för lateral rörelse, på grund av specifikt intresse för nätverkssessioner. Wslink-lastaren lyssnar på en port som anges i konfigurationen och kan betjäna ytterligare anslutande klienter och till och med ladda olika nyttolaster.

WinorDLL64 innehåller en överlappning i utvecklingsmiljön, beteendet och koden med flera Lazarus-exempel, vilket indikerar att det kan vara ett verktyg från den stora arsenalen av denna nordkoreanska APT-grupp.

ESET Research erbjuder privata APT-underrättelserapporter och dataflöden. För eventuella frågor om denna tjänst, besök ESET Threat Intelligence sida.

IOCS

SHA-1 ESET-detekteringsnamn Beskrivning
1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F Win64/Wslink.A Minnesdump av upptäckt Wslink-nyttolast WinorDll64.

MITER ATT & CK tekniker

Detta bord byggdes med hjälp av version 12 av ATT&CK-ramverket. Vi nämner inte tekniker från lastaren igen, bara nyttolasten.

Taktik ID Namn Beskrivning
Resursutveckling T1587.001 Utveckla förmågor: Malware WinorDLL64 är ett anpassat verktyg.
Utförande T1059.001 Kommando- och skripttolk: PowerShell WinorDLL64 kan köra godtyckliga PowerShell-kommandon.
T1106 Native API WinorDLL64 kan köra ytterligare processer med hjälp av CreateProcessW och CreateProcessAsUserW API: er.
Försvarsflykt T1134.002 Access Token Manipulation: Skapa process med Token WinorDLL64 kan anropa API:er WTSQueryUserToken och CreateProcessAsUserW för att skapa en process under en efterbildad användare.
T1070.004 Indikatorborttagning: Filradering WinorDLL64 kan säkert ta bort godtyckliga filer.
Discovery T1087.001 Kontoupptäckt: Lokalt konto WinorDLL64 kan räkna upp sessioner och lista associerade användar- och klientnamn, bland annat.
T1087.002 Kontoupptäckt: Domänkonto WinorDLL64 kan räkna upp sessioner och lista associerade domännamn – bland annat.
T1083 Arkiv- och katalogupptäckt WinorDLL64 kan få fil- och kataloglistor.
T1135 Upptäckt av nätverksdelning WinorDLL64 kan upptäcka delade nätverksenheter.
T1057 Processupptäckt WinorDLL64 kan samla in information om pågående processer.
T1012 Fråga registret WinorDLL64 kan fråga Windows-registret för att samla in systeminformation.
T1082 Systeminformation upptäckt WinorDLL64 kan hämta information som datornamn, OS och senaste service pack-version, processorarkitektur, processornamn och mängd utrymme på fasta enheter.
T1614 Systemplats upptäckt WinorDLL64 kan få offrets standardlandsnamn med hjälp av GetLocaleInfoW API.
T1614.001 System Location Discovery: System Language Discovery WinorDLL64 kan få offrets standardspråk med hjälp av GetLocaleInfoW API.
T1016 System Network Configuration Discovery WinorDLL64 kan räkna upp information om nätverkskort.
T1049 System Network Connections Discovery WinorDLL64 kan samla en lista över lyssningsportar.
T1033 Systemägare/användarupptäckt WinorDLL64 kan räkna upp sessioner och lista associerade användar-, domän- och klientnamn – bland annat.
Samling T1560.002 Arkivera insamlade data: Arkivera via bibliotek WinorDLL64 kan komprimera och exfiltrera kataloger med hjälp av quicklz bibliotek.
T1005 Data från lokalt system WinorDLL64 kan samla in data på offrets enhet.
Inverkan T1531 Ta bort kontoåtkomst WinorDLL64 kan koppla bort en inloggad användare från angivna sessioner.

Tidsstämpel:

Mer från Vi lever säkerhet