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.
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.
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.
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.
De commandolijst, met onze labels, staat in figuur 6.
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.
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. |
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- Platoblockchain. Web3 Metaverse Intelligentie. Kennis versterkt. Toegang hier.
- Bron: https://www.welivesecurity.com/2023/02/23/winordll64-backdoor-vast-lazarus-arsenal/
- 1
- 10
- 2011
- 2017
- 2018
- 2021
- 7
- 9
- a
- Over
- misbruik
- Accepteert
- toegang
- accuraat
- verwerven
- Koopt
- activiteiten
- Extra
- Daarnaast
- Voordeel
- LUCHT- EN RUIMTEVAART
- Na
- tegen
- uitgelijnd
- Alles
- al
- Amerika
- onder
- bedragen
- analyse
- en
- verwachte
- uit elkaar
- api
- APIs
- APT
- architectuur
- Archief
- Arsenaal
- dit artikel
- artikelen
- geassocieerd
- Aanvallen
- attributen
- Augustus
- terug
- achterdeur
- gebaseerde
- België
- geloofd wie en wat je bent
- tussen
- Blok
- gebonden
- bouw
- bebouwd
- C + +
- Bellen
- mogelijkheden
- categorieën
- Categorie
- centraal
- centraal Europa
- CGI
- Wijzigingen
- CISA
- klant
- klanten
- code
- verzamelen
- Het verzamelen van
- combinatie van
- commercieel
- algemeen
- Communicatie
- afstand
- vergelijking
- bestanddeel
- uitgebreid
- compromis
- Aangetast
- computer
- vertrouwen
- Configuratie
- BEVESTIGD
- Verbinden
- Wij verbinden
- versterken
- aansluitingen
- aangezien
- bevat
- content
- onder controle te houden
- Land
- deksel
- en je merk te creëren
- Wij creëren
- kritisch
- Actueel
- gewoonte
- gegevens
- toegewijd aan
- Standaard
- beschreven
- beschrijving
- desktop
- gegevens
- Ontwikkeling
- apparaat
- DEED
- anders
- direct
- directories
- Onthul Nu
- ontdekt
- ontdekking
- displays
- verstorend
- domein
- DOMEINNAMEN
- Download
- rit
- storten
- gedurende
- elk
- oosten
- beide
- Werknemer
- in staat stellen
- versleutelde
- Onstpanning
- Milieu
- gevestigd
- etc
- Europa
- Zelfs
- uitwisseling
- uitvoeren
- Voert uit
- uitvoering
- verwacht
- Verklaart
- exporteren
- export
- uitgebreid
- fbi
- Februari
- kameraad
- weinig
- Figuur
- Dien in
- Bestanden
- Tot slot
- VIND DE PLEK DIE PERFECT VOOR JOU IS
- Voornaam*
- vast
- volgend
- gevonden
- Achtergrond
- oppompen van
- functionaliteit
- functies
- verder
- generatie
- krijgen
- het krijgen van
- Groep
- Groep
- Handvaten
- Hoge
- spraakmakend
- Markeer
- Gemarkeerd
- geschiedenis
- Hit
- Hits
- gastheer
- Echter
- HTTPS
- geïdentificeerd
- uitvoering
- in
- aangeven
- geeft aan
- Indicator
- berucht
- informatie
- eerste
- eerste
- invoer
- Intelligentie
- belang
- intern
- IT
- journalist
- sleutel
- bekend
- Korea
- Korean
- labels
- taal
- Groot
- Achternaam*
- Afgelopen jaar
- Laat
- laatste
- Lazarus
- leiden
- LED
- Lengte
- Bibliotheek
- LINK
- Lijst
- opgesomd
- Het luisteren
- vermelding
- Meldingen
- laden
- lader
- lokaal
- plaats
- lang
- Laag
- Machines
- gemaakt
- Hoofd
- malware
- Manipulatie
- Match
- max-width
- Mcafee
- zinvolle
- middel
- maatregel
- Geheugen
- berichten
- Midden
- Midden-Oosten
- macht
- gewijzigd
- Modules
- Grensverkeer
- meer
- meest
- beweging
- naam
- Genoemd
- namen
- Nederland
- netwerk
- noorden
- Noord-Amerika
- in het bijzonder
- aantal
- verkrijgen
- het verkrijgen van
- Aanbod
- Oud
- EEN
- Operations
- operator
- bestellen
- Georganiseerd
- OS
- Overige
- anders-
- uitbraak
- overzicht
- Pakken
- parameter
- parameters
- deel
- passes
- pad
- Patronen
- uitvoeren
- periode
- Foto's
- Plato
- Plato gegevensintelligentie
- PlatoData
- politiek
- Populair
- havens
- PowerShell
- bereid
- die eerder
- privaat
- processen
- Gegevensverwerker
- Product
- projecten
- mits
- biedt
- het verstrekken van
- publiek
- Publicatie
- doel
- willekeurige
- Lees
- ontvangen
- ontvangt
- ontvangende
- opgenomen
- met betrekking tot
- regio
- register
- verwantschap
- relatief
- relevante
- vanop
- verwijdering
- verwijderen
- verwijderd
- het verwijderen van
- gemeld
- Rapporten
- nodig
- onderzoek
- onderzoeker
- onderzoekers
- verantwoordelijk
- Resultaten
- Rijk
- Regel
- reglement
- lopen
- lopend
- dezelfde
- beveiligen
- vast
- veiligheid
- verzending
- afzonderlijk
- dienen
- bedient
- service
- Diensten
- Sessie
- sessies
- reeks
- verscheidene
- Delen
- gedeeld
- Bermuda's
- binnenkort
- betekenis
- aanzienlijke
- gelijk
- overeenkomsten
- sinds
- single
- Maat
- Oplossingen
- sommige
- Zuiden
- Zuid-Korea
- Zuid-Koreaans
- Tussenruimte
- specifiek
- gespecificeerd
- standaard
- staat
- bepaald
- structuur
- Hierop volgend
- dergelijk
- Stelt voor
- samenvatten
- OVERZICHT
- geleverde
- Ondersteuning
- system
- tafel
- doelwit
- doelgerichte
- doelen
- team
- technieken
- tijdelijk
- De
- de Nederland
- hun
- bedreiging
- niet de tijd of
- naar
- teken
- tools
- traditioneel
- voor
- die ten grondslag liggen
- unieke
- NAAM
- geüpload
- us
- .
- Gebruiker
- gebruik maken van
- divers
- groot
- versie
- via
- Slachtoffer
- slachtoffers
- Virtueel
- visualisatie
- volume
- kwetsbaarheid
- gewicht
- welke
- breed
- wil
- ruiten
- bewoordingen
- werkzaam
- zou
- geschreven
- jaar
- zephyrnet