Worok: Het grote plaatje PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Worok: Het grote plaatje

Deze nieuwe cyberspionagegroep is voornamelijk gericht op Azië en gebruikt ongedocumenteerde tools, waaronder het steganografisch extraheren van PowerShell-payloads uit PNG-bestanden

ESET-onderzoekers hebben onlangs gerichte aanvallen gevonden die ongedocumenteerde tools gebruikten tegen verschillende spraakmakende bedrijven en lokale overheden, voornamelijk in Azië. Deze aanvallen werden uitgevoerd door een voorheen onbekende spionagegroep die we Worok hebben genoemd en die actief is sinds ten minste 2020. De toolset van Worok omvat een C++ loader CLRLoad, een PowerShell backdoor PowHeartBeat en een C# loader PNGLoad die steganografie gebruikt om verborgen kwaadaardige payloads van PNG-bestanden.

Wie is Worok?

Tijdens de ProxyShell (CVE-2021-34523) openbaarmaking van kwetsbaarheden begin 2021, hebben we waargenomen activiteit van verschillende APT-groepen. De ene vertoonde kenmerken die gemeenschappelijk zijn met TA428:

  • Activiteitstijden
  • Getargete branches
  • Gebruik van ShadowPad

De rest van de toolset is heel anders: TA428 nam bijvoorbeeld deel aan de In staat Desktop-compromis in 2020. We zijn van mening dat de banden niet sterk genoeg zijn om Worok als dezelfde groep als TA428 te beschouwen, maar de twee groepen kunnen instrumenten delen en gemeenschappelijke belangen hebben. We besloten een cluster te maken en noemden het Worok. De naam is gekozen na een mutex in een lader die door de groep wordt gebruikt. Verdere activiteit met varianten van dezelfde tools werd vervolgens aan deze groep gekoppeld. Volgens de telemetrie van ESET is Worok actief sinds eind 2020 en blijft het actief op het moment van schrijven.

Eind 2020 richtte Worok zich op overheden en bedrijven in meerdere landen, met name:

  • Een telecommunicatiebedrijf in Oost-Azië
  • Een bank in Centraal-Azië
  • Een maritiem industriebedrijf in Zuidoost-Azië
  • Een overheidsinstantie in het Midden-Oosten
  • Een privébedrijf in zuidelijk Afrika

Er was een aanzienlijke onderbreking in de waargenomen operaties van 2021-05 tot 2022-01, maar de Worok-activiteit keerde terug in 2022-02, gericht op:

  • Een energiebedrijf in Centraal-Azië
  • Een entiteit in de publieke sector in Zuidoost-Azië

Afbeelding 1 geeft een visuele heatmap weer van de beoogde regio's en verticalen.

Afbeelding 1. Kaart van de beoogde regio's en verticale markten

Gezien de profielen van de doelwitten en de tools die we hebben zien inzetten tegen deze slachtoffers, denken we dat het belangrijkste doel van Worok is om informatie te stelen.

Technische analyse

Hoewel de meeste initiële toegangen onbekend zijn, hebben we in sommige gevallen tot 2021 en 2022 exploits gezien tegen de ProxyShell-kwetsbaarheden. In dergelijke gevallen zijn er doorgaans webshells geüpload na misbruik van deze kwetsbaarheden, om persistentie in het netwerk van het slachtoffer te bieden. Vervolgens gebruikten de operators verschillende implantaten om meer mogelijkheden te krijgen.

Nadat toegang was verkregen, implementeerden de operators meerdere, openbaar beschikbare tools voor verkenning, waaronder: Mimikatz, Regenworm, ReGeorg en NBTscan, en implementeerden vervolgens hun aangepaste implantaten: een loader van de eerste fase, gevolgd door een .NET-loader van de tweede fase (PNGLoad). Helaas hebben we geen van de laatste payloads kunnen ophalen. In 2021 was de lader van de eerste trap een CLR-assemblage (CLRLoad), terwijl deze in 2022 in de meeste gevallen is vervangen door een volledig uitgeruste PowerShell-achterdeur (PowHeartBeat) - beide uitvoeringsketens zijn afgebeeld in figuur 2. Deze drie instrumenten worden in de volgende paragrafen in detail beschreven.

Worok: Het grote plaatje PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Figuur 2. Werk compromisketens

CLRLoad: CLR-assemblagelader

CLRLoad is een generieke Windows PE die we hebben gezien in zowel 32- als 64-bits versies. Het is een loader geschreven in C++ die de volgende fase laadt (PNGLoad), die a . moet zijn Common Language Runtime (CLR)-assemblage DLL-bestand. Die code wordt geladen vanuit een bestand dat zich op schijf in een legitieme map bevindt, vermoedelijk om slachtoffers of incidentresponders te misleiden door te denken dat het legitieme software is.

Sommige CLRLoad-voorbeelden beginnen met het decoderen van het volledige pad van het bestand waarvan ze de inhoud zullen laden als de volgende stap. Deze bestandspaden zijn gecodeerd met een single-byte XOR, met in elk voorbeeld een andere sleutel. Gedecodeerd of in leesbare tekst, deze bestandspaden zijn absoluut, met de volgende die we zijn tegengekomen:

  • C:ProgrammabestandenVMwareVMware ToolsVMware VGAuthxsec_1_5.dll
  • C: Programmabestanden UltraViewermsvbvm80.dll
  • C:ProgrammabestandenInternet ExplorerJsprofile.dll
  • C: ProgrammabestandenWinRarRarExtMgt.dll
  • C: Programmabestanden (x86) Foxit Software Foxit Readerlucenelib.dll

Vervolgens wordt een mutex gemaakt en hebben we in elk voorbeeld een andere naam gezien. De lader controleert op deze mutex; indien gevonden, wordt het afgesloten, omdat de lader al actief is. In een van de voorbeelden, de mutex Wo0r0KGWhYGO werd aangetroffen, wat de groep de naam Worok gaf.

CLRLoad laadt vervolgens een CLR-assembly van het mogelijk gedecodeerde bestandspad. Als onbeheerde code bereikt CLRLoad dit via CorBindToRuntimeEx Windows API-aanroepen in 32-bits varianten, of CLRCreateInstance oproepen in 64-bits varianten.

PowHeartBeat: PowerShell-achterdeur

PowHeartBeat is een volledig uitgeruste achterdeur die is geschreven in PowerShell, verdoezeld met behulp van verschillende technieken zoals compressie, codering en codering. Op basis van ESET-telemetrie denken we dat PowHeartBeat CLRLoad heeft vervangen in recentere Worok-campagnes als de tool die werd gebruikt om PNGLoad te starten.

De eerste laag van de achterdeurcode bestaat uit meerdere brokken base64-gecodeerde PowerShell-code. Zodra de payload is gereconstrueerd, wordt deze uitgevoerd via IEX. Eenmaal gedecodeerd, wordt een andere laag versluierde code uitgevoerd, die we kunnen zien in figuur 3.

Worok: Het grote plaatje PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Figuur 3. Fragment van de gedecodeerde hoofdfunctie van de tweede laag van PowHeartBeat

De tweede laag van de backdoor first base64 decodeert de volgende laag van zijn code, die vervolgens wordt gedecodeerd met Drievoudige DES (CBC-modus). Na de decodering wordt deze code gedecomprimeerd met behulp van de gzip algoritme, waardoor de derde laag PowerShell-code wordt verkregen, de eigenlijke achterdeur. Het is verdeeld in twee hoofdonderdelen: configuratie en het afhandelen van achterdeurcommando's.

De hoofdlaag van backdoor-code is ook geschreven in PowerShell en gebruikt HTTP of ICMP om te communiceren met de C&C-server. Het werkt zoals weergegeven in figuur 4.

Worok: Het grote plaatje PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Afbeelding 4. De werking van PowHeartBeat

Configuratie

De configuratie bevat meerdere velden, waaronder versienummer, optionele proxyconfiguratie en C&C-adres. Tabel 1 beschrijft de betekenis van de configuratievelden in de verschillende versies die we hebben waargenomen.

Tabel 1. Betekenissen van configuratievelden

Veldnaam Omschrijving
nouse / ikuyrtydyfg
(andere monsters)
ongebruikt.
Klant identificatie Klant-ID, gebruikt voor de volgende doeleinden:
· Als een waarde bij het construeren van de Cookiekop voor C&C-communicatie.
· Als cryptografisch artefact voor verzonden gegevensversleuteling.
Versie Versienummer van PowHeartBeat.
ExecTimes Aantal toegestane uitvoeringspogingen bij het uitgeven van een a RunCmd (opdracht wordt uitgevoerd) opdracht.
gebruikersagent User-agent gebruikt voor C&C-communicatie.
Referer Referer header gebruikt voor C&C-communicatie.
AccepterenCodering ongebruikt.
CookieClientId
CookieTaskId
CookieTerminalId
Waarden die zijn gebruikt om de . te construeren Cookiebleid header voor C&C-communicatie.
URLHttps Protocol te gebruiken voor C&C-communicatie.
UrlDomein
IP adres
domeinen
URL, domein(en) of IP-adres gebruikt als de C&C-server. Als domeinen is niet leeg, het is gekozen in plaats van IP adres. In andere gevallen, IP adres is bezet.
UrlVerzendHeartBeat URL-pad dat wordt gebruikt wanneer de achterdeur de C&C-server om opdrachten vraagt.
UrlSendResultaat URL-pad dat wordt gebruikt wanneer de achterdeur de resultaten van de opdracht terugstuurt naar de C&C-server.
GetUrl Volledige URL, gebruikt door PowHeartBeat om opdrachten van de C&C-server op te vragen. Het is de aaneenschakeling van de bovenstaande URL-elementen.
PutUrl Hetzelfde als GetUrl maar gebruikt om de resultaten van de opdracht terug te sturen naar de C&C-server.
huidige pad ongebruikt.
ProxyEnableFlag Vlag die aangeeft of de achterdeur een proxy moet gebruiken of niet om te communiceren met de C&C-server.
Proxymsg Adres van de te gebruiken proxy als ProxyEnableFlag is ingesteld op $waar.
interval Tijd in seconden dat het script slaapt tussen GET-verzoeken.
Basisconfiguratiepad Pad naar een optioneel configuratiebestand met: UpTime, uitvaltijd, Standaardinterval en domeinen. Die waarden worden overschreven als het bestand aanwezig is.
UpTime Tijd van de dag waarop de achterdeur begint te werken, wat betekent dat het GET-verzoeken begint te doen aan de C&C-server.
uitvaltijd Tijdstip waarop de achterdeur kan werken, d.w.z. het tijdstip waarop hij stopt met het doen van verzoeken aan de C&C-server.
DomeinIndex Index van de huidige domeinnaam die moet worden gebruikt voor communicatie met de C&C-server. In het geval dat een verzoek een andere foutmelding geeft dan 304 ("Niet aangepast"), DomeinIndex is verhoogd.
Geheime sleutel Sleutel die wordt gebruikt om de configuratie te ontsleutelen/versleutelen. Configuratie is versleuteld met multiple-byte XOR.
AlsLog ongebruikt.
IfLogFilePath Vlag die aangeeft of logboekregistratie is ingeschakeld.
logpad Pad van het logbestand.
ProxyBestand Bestandspad van de optionele proxyconfiguratie. Als het leeg is of niet wordt gevonden in het bestandssysteem, haalt de achterdeur de proxy-instellingen van de gebruiker op uit de registerwaarde HKCUSoftwareMicrosoftWindowsHuidige versieInternetinstellingenProxyServer .
AlsConfig Vlag die aangeeft of een configuratiebestand moet worden gebruikt.

Afbeelding 5 toont een voorbeeld van de configuratie die is geëxtraheerd uit een PowHeartBeat-monster (SHA-1: 757ABA12D04FD1167528FDD107A441D11CD8C427).

Afbeelding 5. Configuratievoorbeeld

Data encryptie

PowHeartBeat versleutelt logboeken en aanvullende inhoud van configuratiebestanden.

De inhoud van het logbestand wordt versleuteld via een XOR van meerdere bytes met een sleutel die in het voorbeeld in leesbare tekst is opgegeven. interessant, klant identificatie wordt gebruikt als een zout voor de index in de sleutelarray. De sleutel is een array van 256 bytes, die identiek was in elk voorbeeld dat we tegenkwamen. Aanvullende inhoud van het configuratiebestand wordt versleuteld via multiple-byte XOR met de waarde from Geheime sleutel als zijn sleutel.

C&C communicatie

PowHeartBeat gebruikte HTTP voor C&C-communicatie tot versie 2.4 en schakelde toen over op ICMP. In beide gevallen is de communicatie niet versleuteld.

HTTP

In een oneindige lus stuurt de achterdeur een GET-verzoek naar de C&C-server, waarin wordt gevraagd om een ​​opdracht te geven. Het versleutelde antwoord wordt ontsleuteld door de achterdeur, die de opdracht verwerkt, en de uitvoer van de opdracht naar een bestand schrijft waarvan de inhoud vervolgens via een POST-verzoek naar de C&C-server wordt gestuurd.

Het formaat van de GET-verzoeken is als volgt:

Merk op dat het verzoek is opgebouwd met behulp van de gelijknamige configuratievelden.

In het antwoord van de C&C-server is de derde byte van de inhoud de opdracht-ID die aangeeft welke opdracht door de achterdeur moet worden verwerkt. We noemen het commando_id. De resterende inhoud van het antwoord wordt als argument doorgegeven aan de opdracht die wordt verwerkt. Deze inhoud is versleuteld met het algoritme dat wordt getoond in figuur 6, taak-ID zijnde de waarde van de cookie die vernoemd is naar CookieTaskId's waarde uit de configuratie.

Afbeelding 6. Versleutelingsalgoritme voor inhoudsgegevens

Het antwoord van de C&C-server bevat ook nog een cookie, waarvan de naam wordt gespecificeerd door de backdoor's CookieTerminalId configuratie variabele. De waarde van deze cookie wordt herhaald in het POST-verzoek van de achterdeur en mag niet leeg zijn. Na het uitvoeren van het backdoor-commando stuurt PowHeartBeat het resultaat als een POST-verzoek naar de C&C-server. Het resultaat wordt verzonden als een bestand waarvan de naam is .png.

ICMP

Vanaf versie 2.4 van PowHeartBeat werd HTTP vervangen door ICMP, verzonden pakketten met een time-out van zes seconden en ongefragmenteerd. Communicatie via ICMP is hoogstwaarschijnlijk een manier om detectie te omzeilen.

Er is geen grote verandering in versie 2.4 en hoger, maar we hebben enkele wijzigingen in de code opgemerkt:

  • PowHeartBeat verzendt een hartslagpakket bij elke lus die de string bevat abcdefghijklmnopqrstuvwxyz, voordat u een opdracht aanvraagt. Dit informeert de C&C-server dat de achterdeur klaar is om commando's te ontvangen.
  • Verzoeken om opdrachten uitgevoerd te krijgen door de achterdeur bevatten de string abcdefghijklmnop.

Heartbeat-pakketten hebben het formaat dat wordt beschreven in Afbeelding 7.

Worok: Het grote plaatje PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Afbeelding 7. Lay-out van Heartbeat-pakket

Het verschil tussen klant identificatie en klant vlag dat klant identificatie verschilt in elk monster, terwijl: klant vlag is hetzelfde in elk monster dat ICMP gebruikt. hartslag vlag geeft aan dat de achterdeur een hartslag stuurt. Het antwoord van de C&C-server heeft het formaat dat wordt beschreven in Afbeelding 8.

Worok: Het grote plaatje PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Afbeelding 8. C&C-serverresponslay-out

vlag hier geeft aan of er een commando moet worden gegeven aan de achterdeur. Verzoeken om opdrachten te krijgen hebben de indeling die wordt beschreven in Afbeelding 9.

Worok: Het grote plaatje PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Afbeelding 9. Lay-out voor verzoeken om opdrachten te krijgen

Merk op dat de ICMP-modus van de achterdeur het mogelijk maakt om een ​​onbeperkte hoeveelheid gegevens te ontvangen, verdeeld in brokken, en de variabelen gegevenslengte:, huidige positie en totale lengte worden gebruikt om de verzonden gegevens bij te houden. De antwoorden op deze verzoeken hebben het formaat dat wordt beschreven in afbeelding 10.

Worok: Het grote plaatje PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Afbeelding 10. Lay-out van antwoorden op verzoeken om opdrachten te krijgen

Net als bij HTTP-antwoorden is de opdracht-ID de derde byte van gegevens.

Na zeven opeenvolgende ICMP-antwoorden met lege of inconsistent geformatteerde inhoud, worden de overdrachten tussen de achterdeur en de C&C-server als voltooid beschouwd.

Wat betreft de verzoeken om het resultaat van het gegeven commando naar de C&C-server te sturen, wordt de servermodus gewijzigd in de postmodus en de laatste string (abcdefghijklmnop) wordt gewijzigd voor de resultaatgegevens.

Achterdeur commando's

PowHeartBeat heeft verschillende mogelijkheden, waaronder het uitvoeren van opdrachten/processen en bestandsmanipulatie. Tabel 2 geeft een overzicht van alle opdrachten die door de verschillende geanalyseerde monsters worden ondersteund.

Tabel 2. Beschrijvingen van PowHeartBeat-opdrachten

Naam Opdracht-ID Omschrijving
Cmd 0x02 Voer een PowerShell-opdracht uit.
Exe 0x04 Voer een opdracht uit als a .
Bestand upload 0x06 Upload een bestand naar de slachtoffermachine. Bestandsinhoud is gzip-gecomprimeerd.
Bestand download 0x08 Download een bestand van de slachtoffermachine en retourneer bestandspad, bestandslengte, aanmaaktijd, toegangstijden en bestandsinhoud naar de C&C-server.
Bestandsweergave 0x0A Verkrijg bestandsinformatie van een specifieke map, in het bijzonder:
· Bestandsnamen
· Bestandskenmerken
· Laatste schrijftijden
· Bestandsinhoud
BestandVerwijderen 0x0C Een bestand verwijderen.
Bestand Hernoemen 0x0E Hernoem of verplaats een bestand.
WijzigDir 0x10 Wijzig de huidige werklocatie van de achterdeur.
Info 0x12 Verkrijg een informatiecategorie volgens het opgegeven argument:
· "Basis informatie": Klant identificatie, Versie, hostnaam, IP-adressen, explorer.exe informatie over versie en grootte, besturingssysteem (architectuur en vlag die aangeven of de machine een server is), interval, huidige map, schijfinformatie (naam, type, vrije ruimte en totale grootte), huidige tijd
· “Tijdsintervalinformatie”: interval en huidige tijd
· "Domeininformatie": gedecodeerde inhoud van het configuratiebestand
Config 0x14 Werk de inhoud van het configuratiebestand bij en laad de configuratie opnieuw.
NB 0x63 Achterdeur uitgang.

In het geval van fouten aan de backdoor-kant, gebruikt de backdoor een specifieke opdracht-ID 0x00 in het POST-verzoek aan de C&C-server, wat aangeeft dat er een fout is opgetreden.

Merk op dat voordat de informatie teruggestuurd wordt naar de C&C-server, de gegevens gzip-gecomprimeerd zijn.

PNGLoad: Steganografische lader

PNGLoad is de payload van de tweede fase die door Worok wordt ingezet op gecompromitteerde systemen en, volgens ESET-telemetrie, wordt geladen door CLRLoad of PowHeartBeat. Hoewel we in PowHeartBeat geen code zien die PNGLoad rechtstreeks laadt, heeft de achterdeur de mogelijkheid om extra payloads van de C&C-server te downloaden en uit te voeren, wat waarschijnlijk is hoe de aanvallers PNGLoad hebben geïmplementeerd op systemen die zijn gecompromitteerd met PowHeartBeat. PNGLoad is een loader die bytes uit PNG-bestanden gebruikt om een ​​payload te maken die moet worden uitgevoerd. Het is een 64-bits .NET uitvoerbaar bestand – versluierd met .NET-reactor – die zich voordoet als legitieme software. Afbeelding 11 toont bijvoorbeeld de CLR-headers van een voorbeeld dat zich voordoet als een WinRAR-DLL.

Worok: Het grote plaatje PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Afbeelding 11. Voorbeeld van een nep WinRAR DLL

Eenmaal onthecht, is er slechts één klasse aanwezig. In deze klas is er een Hoofdpad attribuut dat het directorypad bevat dat de achterdeur zoekt, inclusief de subdirectories, naar bestanden met a . Png extensie, zoals weergegeven in afbeelding 12.

Worok: Het grote plaatje PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Figuur 12. . Png bestandslijst

Elke . Png bestand gevonden door deze zoekopdracht van Hoofdpad wordt vervolgens gecontroleerd op steganografisch ingesloten inhoud. Eerst wordt het minst significante bit van de R (rood), G (groen), B (blauw) en A (alfa) waarden van elke pixel opgehaald en in een buffer geassembleerd. Als de eerste acht bytes van die buffer overeenkomen met het magische getal dat te zien is in figuur 13 en de volgende waarde van acht bytes, control, niet-null is, doorstaat het bestand de steganografische inhoudscontrole van PNGLoad. Voor dergelijke bestanden gaat de verwerking door met de rest van de buffer gedecodeerd met een multi-byte XOR, met behulp van de sleutel die is opgeslagen in PNGLoad's GeheimeKeyBytes attribuut, en vervolgens wordt de gedecodeerde buffer gzip-gedecomprimeerd. Het resultaat is naar verwachting een PowerShell-script dat onmiddellijk wordt uitgevoerd.

Worok: Het grote plaatje PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Afbeelding 13. Formaat van buffer die PNGLoad maakt op basis van verwerking . Png bestanden

Interessant is dat bewerkingen die door PNGLoad worden uitgevoerd, worden vastgelegd in een bestand waarvan het pad is opgeslagen in de variabele Logbestandpad. Bewerkingen worden alleen gelogd als er een bestand aanwezig is waarvan het pad is gespecificeerd door de interne variabele IfLogFilePath.

We hebben geen monster kunnen verkrijgen . Png gebruikt samen met PNGLoad, maar de manier waarop PNGLoad werkt, suggereert dat het zou moeten werken met geldige PNG-bestanden. Om de kwaadaardige lading te verbergen, gebruikt Worok Bitmap-objecten in C#, die alleen pixelinformatie uit bestanden halen, niet de metadata van het bestand. Dit betekent dat Worok zijn kwaadaardige payloads kan verbergen in geldige, onschuldig ogende PNG-afbeeldingen en zich dus in het volle zicht kan verbergen.

Conclusie

Worok is een cyberspionagegroep die zijn eigen tools ontwikkelt en bestaande tools gebruikt om zijn doelen in gevaar te brengen. Het stelen van informatie van hun slachtoffers is wat wij denken dat de operators nastreven, omdat ze zich richten op spraakmakende entiteiten in Azië en Afrika, gericht op verschillende sectoren, zowel privé als publiek, maar met een specifieke nadruk op overheidsinstanties. Activiteitstijden en toolset wijzen op mogelijke banden met TA428, maar we maken deze beoordeling met weinig vertrouwen. Hun aangepaste toolset omvat twee laders - één in C++ en één in C# .NET - en één PowerShell-backdoor. Hoewel onze zichtbaarheid beperkt is, hopen we dat het belichten van deze groep andere onderzoekers zal aanmoedigen om informatie over deze groep te delen.

Neem voor vragen over ons onderzoek gepubliceerd op WeLiveSecurity contact met ons op via: bedreigingintel@eset.com.

ESET Research biedt nu ook privé APT-intelligentierapporten en datafeeds. Voor vragen over deze service, bezoek de ESET-bedreigingsinformatie pagina.

IOCs

Bestanden

SHA-1 Bestandsnaam ESET-detectienaam Opmerking
3A47185D0735CDECF4C7C2299EB18401BFB328D5 script PowerShell/PowHeartBeat.B PowHeartBeat 2.4.3.0003.
27ABB54A858AD1C1FF2863913BDA698D184E180D script PowerShell/PowHeartBeat.A PowHeartBeat 2.4.3.0003.
678A131A9E932B9436241402D9727AA7D06A87E3 script PowerShell/PowHeartBeat.B PowHeartBeat 2.4.3.0003.
757ABA12D04FD1167528FDD107A441D11CD8C427 script PowerShell/PowHeartBeat.B PowHeartBeat 2.1.3.0003.
54700A48D934676FC698675B4CA5F712C0373188 script PowerShell/PowHeartBeat.A PowHeartBeat 1.1.3.0002.
C2F53C138CB1B87D8FC9253A7088DB30B25389AF script PowerShell/PowHeartBeat.A PowHeartBeat 1.1.3.0002.
C2F1954DE11F72A46A4E823DE767210A3743B205 tmp.ps1 PowerShell/PowHeartBeat.B PowHeartBeat 2.4.3.0004.
CE430A27DF87A6952D732B4562A7C23BEF4602D1 tmp.ps1 PowerShell/PowHeartBeat.A PowHeartBeat 2.1.3.0004.
EDE5AB2B94BA85F28D5EE22656958E4ECD77B6FF script PowerShell/PowHeartBeat.A PowHeartBeat 2.4.3.0003.
4721EEBA13535D1EE98654EFCE6B43B778F13126 vix64.dll MSIL/PNGLoader.A PNGLoader.
728A6CB7A150141B4250659CF853F39BFDB7A46C RarExtMgt.dll MSIL/PNGLoader.A PNGLoader.
864E55749D28036704B6EA66555A86527E02AF4A Jsprofile.dll MSIL/PNGLoader.A PNGLoader.
8DA6387F30C584B5FD3694A99EC066784209CA4C vssxml.dll MSIL/PNGLoader.A PNGLoader.
AA60FB4293530FBFF00D200C0D44EEB1A17B1C76 xsec_1_5.dll MSIL/PNGLoader.A PNGLoader.
B2EAEC695DD8BB518C7E24C4F37A08344D6975BE msvbvm80.dll MSIL/PNGLoader.A PNGLoader.
CDB6B1CAFEE098615508F107814179DEAED1EBCF lucenelib.dll MSIL/PNGLoader.A PNGLoader.
4F9A43E6CF37FF20AE96E564C93898FDA6787F7D vsstrace.dll Win64/CRLLoad.C CLR laden.
F181E87B0CD6AA4575FD51B9F868CA7B27240610 ncrypt.dll Win32/CRLLoad.A CLR laden.
4CCF0386BDE80C339EFE0CC734CB497E0B08049C ncrypt.dll Win32/CRLLoad.A CLR laden.
5CFC0D776AF023DCFE8EDED5CADA03C6D7F9C244 wlbsctrl.dll Win64/CRLLoad.E CLR laden.
05F19EBF6D46576144276090CC113C6AB8CCEC08 wlbsctrl.dll Win32/CRLLoad.A CLR laden.
A5D548543D3C3037DA67DC0DA47214B2C2B15864 secur32.dll Win64/CRLLoad.H CLR laden.
CBF42DCAF579AF7E6055237E524C0F30507090F3 dbghelp.dll Win64/CRLLoad.C CLR laden.

Bestandspaden

Enkele Hoofdpad, Logbestandpad en IfLogFilePath waarden die we tegenkwamen in PNGLoad-voorbeelden:

Hoofdpad Logbestandpad IfLogFilePath
C:ProgrammabestandenVMwareVMware Tools C:ProgrammabestandenVMwareVMware ToolsVMware VGAuthreadme.txt C:ProgrammabestandenVMwareVMware ToolsVMware VGAuthVMWSU_V1_1.dll
C: Programmabestanden WinRar C: ProgrammabestandenWinRarrarinstall.log C: ProgrammabestandenWinRardes.dat
C:ProgrammabestandenUltraViewer C:Program FilesUltraViewer (CopyRights.dat) C: Programmabestanden UltraVieweruvcr.dll

Netwerk

Domein IP
Geen 118.193.78[.]22
Geen 118.193.78[.]57
vliegtuig.travel-commercials[.]agentschap 5.183.101[.]9
central.suhypercloud[.]org 45.77.36[.]243

Mutexen

In CLRLoad-voorbeelden zijn de mutex-namen die we tegenkwamen:

aB82UduGX0EX
ad8TbUIZl5Ga
Mr2PJVxbIBD4
oERiQtKLgPgK
U37uxsCsA4Xm
Wo0r0KGWhYGO
xBUjQR2vxYTz
zYCLBWekRX3t
3c3401ad-e77d-4142-8db5-8eb5483d7e41
9xvzMsaWqxMijn

Een uitgebreide lijst van Indicators of Compromise (IoC's) en voorbeelden is te vinden in: onze GitHub-repository.

MITRE ATT&CK-technieken

Deze tafel is gemaakt met behulp van versie 11 van het MITRE ATT&CK-raamwerk.

Tactiek ID Naam Omschrijving
verkenning T1592.002 Verzamel informatie over de host van het slachtoffer: Software PowHeartBeat verzamelt explorer.exe's informatie.
T1592.001 Verzamel informatie over de host van het slachtoffer: Hardware PowHeartBeat verzamelt informatie over schijven.
T1590.005 Informatie over slachtoffernetwerk verzamelen: IP-adressen PowHeartBeat verzamelt IP-adressen van de besmette computer.
Ontwikkeling van hulpbronnen T1583.004 Infrastructuur verwerven: Server Worok gebruikt zijn eigen C&C-servers.
T1588.002 Mogelijkheden verkrijgen: Tool Worok implementeerde meerdere openbaar beschikbare tools op de gecompromitteerde machines.
T1583.001 Infrastructuur verwerven: domeinen Worok heeft domeinen geregistreerd om de communicatie en enscenering van C&C te vergemakkelijken.
T1588.005 Mogelijkheden verkrijgen: Exploits Worok heeft gebruik gemaakt van de ProxyShell-kwetsbaarheid.
T1587.001 Ontwikkelmogelijkheden: Malware Worok heeft zijn eigen malware ontwikkeld: CLRLoad, PNGLoad, PowHeartBeat.
T1587.003 Ontwikkelmogelijkheden: digitale certificaten Worok heeft Let's Encrypt SSL-certificaten gemaakt om wederzijdse TLS-authenticatie voor malware mogelijk te maken.
Uitvoering T1059.001 Opdracht- en scriptinterpreter: PowerShell PowHeartBeat is geschreven in PowerShell.
Volharding T1505.003 Serversoftwarecomponent: Web Shell Worok gebruikt de webshell ReGeorg.
verdediging ontduiking T1140 Deobfuscate/decodeer bestanden of informatie Worok gebruikt verschillende aangepaste XOR-gebaseerde schema's om strings en logs in PowHeartBeat, PNGLoad en CLRLoad te versleutelen.
T1036.005 Maskerade: match legitieme naam of locatie PNGLoad-voorbeelden worden geïmplementeerd in legitiem ogende VMWare-mappen.
Toegang tot inloggegevens T1003.001 Dumping van OS-referenties: LSASS-geheugen Worok gebruikt Mimikatz om referenties uit het LSASS-geheugen te dumpen.
De reis van mijn leven T1082 Ontdekking van systeeminformatie PowHeartBeat verzamelt informatie over het besturingssysteem.
T1083 Bestands- en directorydetectie PowHeartBeat kan bestanden en mappen weergeven.
T1046 Ontdekking van netwerkservices Worok gebruikt NbtScan om netwerkinformatie over gecompromitteerde machines te verkrijgen.
T1124 Detectie van systeemtijd PowHeartBeat verzamelt de tijdinformatie van het slachtoffer.
Collectie T1005 Gegevens van lokaal systeem PowHeartBeat verzamelt gegevens van het lokale systeem.
T1560.002 Verzamelde gegevens archiveren: archiveren via bibliotheek PowHeartBeat gzip comprimeert gegevens voordat deze naar de C&C-server worden verzonden.
Command and Control T1071.001 Applicatielaagprotocol: webprotocollen Sommige PowHeartBeat-varianten gebruiken HTTP als communicatieprotocol met de C&C-server.
T1090.001 Proxy: Interne Proxy PowHeartBeat verwerkt de proxyconfiguratie op de computer van het slachtoffer.
T1001.002 Gegevensverduistering: Steganografie PNGLoad haalt pixelwaarden uit . Png bestanden om payloads te reconstrueren.
T1573.002 Versleuteld kanaal: asymmetrische cryptografie PowHeartBeat verwerkt HTTPS-communicatie met de C&C-server.
T1095 Niet-toepassingslaagprotocol Sommige PowHeartBeat-varianten gebruiken ICMP als communicatieprotocol met de C&C-server.
T1132.001 Gegevenscodering: standaardcodering Worok gebruikt XOR-codering in PowHeartBeat en PNGLoad.
T1132.002 Gegevenscodering: niet-standaardcodering Worok gebruikt XOR-coderingsalgoritmen die gebruik maken van een extra zout.
exfiltratie T1041 Exfiltratie via C2-kanaal PowHeartBeat gebruikt zijn C&C-communicatiekanaal om informatie te exfiltreren.

Worok: Het grote plaatje PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Tijdstempel:

Meer van We leven veiligheid