WinorDLL64: een achterdeur uit het enorme Lazarus-arsenaal?

WinorDLL64: een achterdeur uit het enorme Lazarus-arsenaal?

Bronknooppunt: 1975596

De beoogde regio en overlap in gedrag en code suggereren dat de tool wordt gebruikt door de beruchte Noord-Koreaanse APT-groep

ESET-onderzoekers hebben een van de payloads van de Wslink-downloader die we in 2021 ontdekten. We noemden deze payload WinorDLL64 op basis van de bestandsnaam WinorDLL64.dll. Wslink, die de bestandsnaam WinorLoaderDLL64.dll, is een loader voor Windows-binaries die, in tegenstelling tot andere dergelijke loaders, draait als een server en ontvangen modules in het geheugen uitvoert. Zoals de bewoording suggereert, dient een loader als een hulpmiddel om een ​​payload, of de daadwerkelijke malware, op het reeds gecompromitteerde systeem te laden. De initiële Wslink-compromisvector is niet geïdentificeerd.

De aanvankelijk onbekende Wslink-payload werd kort na de publicatie van onze blogpost geüpload naar VirusTotal vanuit Zuid-Korea en raakte een van onze YARA-regels op basis van de unieke naam van Wslink WinorDLL64. Met betrekking tot Wslink heeft ESET-telemetrie slechts een paar detecties gezien – in Centraal-Europa, Noord-Amerika en het Midden-Oosten.

De WinorDLL64 payload dient als een achterdeur die met name uitgebreide systeeminformatie verwerft, middelen biedt voor bestandsmanipulatie, zoals het exfiltreren, overschrijven en verwijderen van bestanden, en aanvullende opdrachten uitvoert. Interessant is dat het communiceert via een verbinding die al tot stand is gebracht door de Wslink-lader.

In 2021 hebben we geen gegevens gevonden die suggereren dat Wslink een tool is van een bekende bedreigingsactor. Echter, na een uitgebreide analyse van de lading hebben we die toegewezen WinorDLL64 naar de Lazarus APT-groep met weinig vertrouwen op basis van de beoogde regio en een overlap in zowel gedrag als code met bekende Lazarus-voorbeelden.

Deze beruchte Noord-Koreaanse groep is actief sinds minstens 2009 en is verantwoordelijk voor spraakmakende incidenten zoals de Sony Pictures Entertainment-hack en tientallen miljoenen dollars cyberroof in 2016 WannaCryptor (ook bekend als WannaCry) uitbraak in 2017, en een lange geschiedenis van ontwrichtende aanvallen tegen Zuid-Koreaanse openbare en kritieke infrastructuur sinds minstens 2011. US-CERT en de FBI noemen deze groep VERBORGEN COBRA.

Gebaseerd op onze uitgebreide kennis van de activiteiten en operaties van deze groep, geloven we dat Lazarus bestaat uit een groot team dat systematisch is georganiseerd, goed voorbereid en bestaat uit verschillende subgroepen die een grote toolset gebruiken. Vorig jaar wij ontdekte een Lazarus-tool dat profiteerde van de CVE-2021-21551 kwetsbaarheid om een ​​medewerker van een ruimtevaartbedrijf in Nederland en een politiek journalist in België als doelwit te nemen. Het was het eerste geregistreerde misbruik van de kwetsbaarheid; de combinatie van de tool en de kwetsbaarheid leidde tot verblinding van de monitoring van alle beveiligingsoplossingen op gecompromitteerde machines. We hebben ook een uitgebreide beschrijving van de structuur van de virtuele machine gebruikt in monsters van Wslink.

Deze blogpost legt de toeschrijving van WinorDLL64 aan Lazarus uit en geeft een analyse van de payload.

Links naar Lazarus

We hebben overlappingen ontdekt in zowel gedrag als code met Lazarus-samples van Operatie GhostSecret en Bankshot-implantaat beschreven door McAfee. De beschrijving van de implantaten in zowel GhostSecret- als Bankshot-artikelen bevat overlappingen in de functionaliteit met WinorDLL64 en we vonden enige code-overlap in de voorbeelden. In deze blogpost gebruiken we alleen de FE887FCAB66D7D7F79F05E0266C0649F0114BA7C voorbeeld van GhostSecret voor vergelijking met WinorDLL64 (1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F), tenzij anders aangegeven.

De volgende details vatten de ondersteunende feiten samen voor onze toeschrijving van weinig vertrouwen aan Lazarus:

1. Victimologie

  • Collega-onderzoekers van AhnLab bevestigden Zuid-Koreaanse slachtoffers van Wslink in hun telemetrie, wat een relevante indicator is gezien de traditionele Lazarus-doelen en dat we slechts een paar treffers hebben waargenomen.

Figuur 1. Gerapporteerd Zuid-Koreaans slachtoffer, waarbij mstoned7 de onderzoeker van Ahnlab is

2. malware

  • Het nieuwste GhostSecret-voorbeeld gerapporteerd door McAfee (FE887FCAB66D7D7F79F05E0266C0649F0114BA7C) is van februari 2018; we zagen de eerste steekproef van Wslink eind 2018 en collega-onderzoekers meldden hits in augustus 2018, die ze na onze publicatie bekendmaakten. Daarom werden deze monsters met een relatief korte periode van elkaar gespot.
  • De PE-rijke headers geven aan dat dezelfde ontwikkelomgeving en projecten van vergelijkbare omvang werden gebruikt in verschillende andere bekende Lazarus-samples (bijv. 70DE783E5D48C6FBB576BC494BAF0634BC304FD6; 8EC9219303953396E1CB7105CDB18ED6C568E962). We hebben deze overlap gevonden met behulp van de volgende regels die alleen van toepassing zijn op deze Wslink- en Lazarus-voorbeelden, wat een indicator is met een laag gewicht. We hebben ze getest Retrohunt van VirusTotal en ons interne dossiercorpus.

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

Deze regel kan worden vertaald naar de volgende notatie die beter leesbaar is en wordt gebruikt door VirusTotal, waar men de productversie en build-ID kan zien (VS2010 bouwt 30319), aantal en type gebruikte bron-/objectbestanden ([LTCG C++] waarbij LTCG staat voor Link Time Code Generation, [ASM], [ C ]), en aantal exporten ([EXP]) in de regel:

[LTCG C++] VS2010 build 30319 aantal=7
[EXP] VS2010 build 30319 aantal=1
[ASM] VS2010 build 30319 aantal=10
[ C ] VS2010 build 30319 tel in [ 90 .. 108 ]

  • Het GhostSecret-artikel beschreef "een unieke component voor gegevensverzameling en implantatie-installatie die luistert op poort 443 voor inkomende controleserververbindingen" die bovendien als een service draaide. Dit is een nauwkeurige beschrijving van het gedrag van de Wslink-downloader, afgezien van het poortnummer, dat kan variëren op basis van de configuratie. Kortom, ook al is de implementatie anders, beide dienen hetzelfde doel.
  • De loader is gevirtualiseerd door Oreans' Code Virtualizer, een commerciële beschermer die wordt gebruikt vaak door Lazarus.
  • De lader gebruikt de Geheugenmodule bibliotheek om modules rechtstreeks uit het geheugen te laden. De bibliotheek wordt niet vaak gebruikt door malware, maar is behoorlijk populair onder Noord-Koreaanse groepen zoals Lazarus en Kimsuky.
  • Overlap in de code tussen WinorDLL64 en GhostSecret die we tijdens onze analyse hebben gevonden. De resultaten en de significantie in attributie staan ​​vermeld in tabel 1.

Tabel 1. Overeenkomsten tussen WinorDLL64 en GhostSecret en hun belang bij het toeschrijven van beide aan dezelfde bedreigingsactor

Andere overeenkomsten tussen WinorDLL64 en GhostSecret Impact
Code-overlap in code die verantwoordelijk is voor processorarchitectuur Laag
Code-overlap bij huidige directorymanipulatie Laag
Code overlapt bij het ophalen van de proceslijst Laag
Code-overlapping bij het verzenden van bestanden Laag
Gedragsoverlapping in noteringsprocessen Laag
Gedragsoverlapping bij huidige directorymanipulatie Laag
Gedrag overlapt in bestands- en directorylijst Laag
Gedragsoverlap in lijstvolumes Laag
Gedragsoverlap bij het lezen/schrijven van bestanden Laag
Gedrag overlap in het creëren van processen Laag
Aanzienlijke overlap in gedrag bij het veilig verwijderen van bestanden Laag
Aanzienlijke gedragsoverlap bij beëindiging van processen Laag
Aanzienlijke gedragsoverlap bij het verzamelen van systeeminformatie Laag

Code-overlapping in de functionaliteit voor het verzenden van bestanden wordt gemarkeerd in Afbeelding 2 en Afbeelding 3.

Figuur 2. GhostSecret verzendt een bestand

Figuur 3. Wslink verzendt een bestand

Technische analyse

WinorDLL64 dient als een achterdeur die met name uitgebreide systeeminformatie verwerft, middelen biedt voor bestandsmanipulatie en aanvullende opdrachten uitvoert. Interessant is dat het communiceert via een TCP-verbinding die al tot stand is gebracht door de lader en sommige van de functies van de lader gebruikt.

Figuur 4. Visualisatie van de communicatie van Wslink

De achterdeur is een DLL met een enkele naamloze export die één parameter accepteert – een structuur voor communicatie die al werd beschreven in onze vorige blogpost. De structuur bevat een TLS-context – socket, key, IV – en callbacks voor het verzenden en ontvangen van berichten versleuteld met 256-bit AES-CBC waarmee WinorDLL64 veilig gegevens kan uitwisselen met de operator via een reeds bestaande verbinding.

De volgende feiten doen ons met groot vertrouwen geloven dat de bibliotheek inderdaad deel uitmaakt van Wslink:

  • De unieke structuur wordt overal op de verwachte manier gebruikt, de TLS-context en andere betekenisvolle parameters worden bijvoorbeeld in de verwachte volgorde aangeleverd bij de juiste callbacks.
  • De naam van de DLL is WinorDLL64.dll en Wslinks naam was WinorLoaderDLL64.dll.

WinorDLL64 accepteert verschillende opdrachten. Afbeelding 5 toont de lus die opdrachten ontvangt en afhandelt. Elke opdracht is gebonden aan een uniek ID en accepteert een configuratie die aanvullende parameters bevat.

Figuur 5. Het grootste deel van de commando-ontvangstlus van de achterdeur

De commandolijst, met onze labels, staat in figuur 6.

Figuur 6. De commandolijst

Tabel 2 bevat een samenvatting van de WinorDLL64-opdrachten, indien gewijzigd, en oude categorieën verwijzen naar de relatie met de eerder gedocumenteerde GhostSecret-functionaliteit. We markeren alleen significante wijzigingen in de gewijzigde categorie.

Tabel 2. Overzicht van achterdeuropdrachten

Categorie Opdracht-ID Functionaliteit Omschrijving
New 0x03 Voer een PowerShell-opdracht uit WinorDLL64 instrueert de PowerShell-interpreter om onbeperkt uit te voeren en opdrachten van standaardinvoer te lezen. Daarna geeft de achterdeur het opgegeven commando door aan de tolk en stuurt de uitvoer naar de operator.
0x09 Comprimeer en download een map WinorDLL64 itereert recursief over een opgegeven map. De inhoud van elk bestand en elke map wordt apart gecomprimeerd en weggeschreven naar een tijdelijk bestand dat daarna naar de operator wordt gestuurd en vervolgens veilig wordt verwijderd.
0x0D Een sessie verbreken Verbreekt de verbinding van een opgegeven aangemelde gebruiker met de Remote Desktop Services-sessie van de gebruiker. De opdracht kan ook verschillende functies uitvoeren op basis van de parameter.
0x0D Maak een lijst van sessies Verzamelt verschillende details over alle sessies op het apparaat van het slachtoffer en stuurt deze naar de operator. De opdracht kan ook verschillende functies uitvoeren op basis van de parameter.
0x0E Meet de verbindingstijd Maakt gebruik van de Windows-API GetTickCount om de tijd te meten die nodig is om verbinding te maken met een opgegeven host.
Gewijzigd 0x01 Systeeminformatie opvragen Verzamelt uitgebreide details over het systeem van het slachtoffer en stuurt deze naar de operator.
0x0A Bestanden veilig verwijderen Overschrijft gespecificeerde bestanden met een blok willekeurige gegevens, hernoemt elk bestand naar een willekeurige naam en verwijdert ze uiteindelijk veilig een voor een.
0x0C Dood processen Beëindigt alle processen waarvan de naam overeenkomt met een geleverd patroon en/of met een specifieke PID.
Oud 0x02/0x0B Creëer een proces Creëert een proces als de huidige of gespecificeerde gebruiker en stuurt optioneel de uitvoer naar de operator.
0x05 Huidige map instellen/ophalen Pogingen om het pad van de huidige werkdirectory in te stellen en vervolgens te verwerven.
0x06 Maak een lijst van volumes Itereert over schijven van C: tot Z: en verwerft het schijftype en de volumenaam. De opdracht kan ook verschillende functies uitvoeren op basis van de parameter.
0x06 Maak een lijst van bestanden in een map Itereert over bestanden in de opgegeven map en verkrijgt informatie zoals namen, attributen, enz. De opdracht kan ook verschillende functies uitvoeren op basis van de parameter.
0x07 Naar een bestand schrijven Downloadt en voegt de opgegeven hoeveelheid gegevens toe aan het opgegeven bestand.
0x08 Lezen uit een bestand Het gespecificeerde bestand wordt gelezen en naar de operator gestuurd.
0x0C Maak een lijst van processen Verkrijgt details over alle actieve processen op het apparaat van het slachtoffer en stuurt bovendien de ID van het huidige proces.

Conclusie

De payload van Wslink is bedoeld om middelen te bieden voor bestandsmanipulatie, uitvoering van verdere code en het verkrijgen van uitgebreide informatie over het onderliggende systeem die mogelijk later kan worden gebruikt voor laterale verplaatsing, vanwege specifieke interesse in netwerksessies. De Wslink-lader luistert op een poort die is opgegeven in de configuratie en kan extra verbindende clients bedienen en zelfs verschillende payloads laden.

WinorDLL64 bevat een overlap in de ontwikkelomgeving, het gedrag en de code met verschillende Lazarus-samples, wat aangeeft dat het een hulpmiddel zou kunnen zijn uit het enorme arsenaal van deze Noord-Koreaanse APT-groep.

ESET Research biedt privé APT-inlichtingenrapporten en datafeeds. Voor vragen over deze service kunt u terecht op de ESET-bedreigingsinformatie pagina.

IoC's

SHA-1 ESET-detectienaam Omschrijving
1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F Win64/Wslink.A Geheugendump van ontdekte Wslink-payload WinorDll64.

MITRE ATT&CK-technieken

Deze tafel is gemaakt met behulp van versie 12 van het ATT&CK-raamwerk. Technieken van de lader noemen we niet nog een keer, alleen het laadvermogen.

Tactiek ID Naam Omschrijving
Ontwikkeling van hulpbronnen T1587.001 Ontwikkelmogelijkheden: Malware WinorDLL64 is een aangepaste tool.
Uitvoering T1059.001 Opdracht- en scriptinterpreter: PowerShell WinorDLL64 kan willekeurige PowerShell-opdrachten uitvoeren.
T1106 Native API WinorDLL64 kan verdere processen uitvoeren met behulp van de CreateProcesW en AanmakenProcesAlsGebruikerW API's.
verdediging ontduiking T1134.002 Toegang tot tokenmanipulatie: proces maken met token WinorDLL64 kan API's aanroepen WTSQueryUserToken en AanmakenProcesAlsGebruikerW om een ​​proces te creëren onder een geïmiteerde gebruiker.
T1070.004 Indicator verwijderen: verwijderen van bestanden WinorDLL64 kan willekeurige bestanden veilig verwijderen.
De reis van mijn leven T1087.001 Accountdetectie: lokaal account WinorDLL64 kan onder meer sessies opsommen en bijbehorende gebruikers- en clientnamen weergeven.
T1087.002 Accountdetectie: domeinaccount WinorDLL64 kan onder meer sessies opsommen en bijbehorende domeinnamen weergeven.
T1083 Bestands- en directorydetectie WinorDLL64 kan bestands- en directoryvermeldingen verkrijgen.
T1135 Ontdekking van netwerkshares WinorDLL64 kan gedeelde netwerkstations ontdekken.
T1057 Procesopsporing WinorDLL64 kan informatie verzamelen over lopende processen.
T1012 Query register WinorDLL64 kan het Windows-register doorzoeken om systeeminformatie te verzamelen.
T1082 Ontdekking van systeeminformatie WinorDLL64 kan informatie verkrijgen zoals de computernaam, het besturingssysteem en de nieuwste versie van het servicepack, de processorarchitectuur, de processornaam en de hoeveelheid ruimte op vaste schijven.
T1614 Detectie van systeemlocatie WinorDLL64 kan de standaard landnaam van het slachtoffer verkrijgen met behulp van de GetLocalInfoW API.
T1614.001 Systeemlocatiedetectie: systeemtaaldetectie WinorDLL64 kan de standaardtaal van het slachtoffer verkrijgen met behulp van de GetLocalInfoW API.
T1016 Detectie van systeemnetwerkconfiguratie WinorDLL64 kan informatie over netwerkadapters opsommen.
T1049 Detectie van systeemnetwerkverbindingen WinorDLL64 kan een lijst met luisterende poorten verzamelen.
T1033 Systeemeigenaar/gebruiker detectie WinorDLL64 kan sessies opsommen en de bijbehorende gebruikers-, domein- en clientnamen weergeven, naast andere details.
Collectie T1560.002 Verzamelde gegevens archiveren: archiveren via bibliotheek WinorDLL64 kan mappen comprimeren en exfiltreren met behulp van de snellz bibliotheek.
T1005 Gegevens van lokaal systeem WinorDLL64 kan gegevens verzamelen op het apparaat van het slachtoffer.
Impact T1531 Accounttoegang verwijderen WinorDLL64 kan een aangemelde gebruiker loskoppelen van gespecificeerde sessies.

Tijdstempel:

Meer van We leven veiligheid