Worok: Das Gesamtbild PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Worok: Das große Ganze

Diese neue Cyberspionage-Gruppe, die sich hauptsächlich auf Asien konzentriert, verwendet undokumentierte Tools, darunter das steganografische Extrahieren von PowerShell-Payloads aus PNG-Dateien

ESET-Forscher fanden kürzlich gezielte Angriffe, bei denen undokumentierte Tools gegen verschiedene hochkarätige Unternehmen und lokale Regierungen hauptsächlich in Asien eingesetzt wurden. Diese Angriffe wurden von einer bisher unbekannten Spionagegruppe durchgeführt, die wir Worok nennen und die seit mindestens 2020 aktiv ist. Das Toolset von Worok umfasst einen C++-Loader CLRLoad, eine PowerShell-Backdoor PowHeartBeat und einen C#-Loader PNGLoad, der Steganographie verwendet, um versteckte Schadsoftware zu extrahieren Payloads aus PNG-Dateien.

Wer ist Workok?

Während der ProxyShell (CVE-2021-34523) Offenlegung von Schwachstellen Anfang 2021, haben wir beobachtet Aktivität von verschiedenen APT-Gruppen. Einer wies gemeinsame Merkmale auf TA428:

  • Aktivitätszeiten
  • Gezielte Branchen
  • Verwendung von ShadowPad

Der Rest des Toolsets ist sehr unterschiedlich: Beispielsweise nahm TA428 an der teil Abable Desktop-Kompromiss im Jahr 2020. Wir sind der Ansicht, dass die Verbindungen nicht stark genug sind, um Worok als dieselbe Gruppe wie TA428 zu betrachten, aber die beiden Gruppen könnten Tools teilen und gemeinsame Interessen haben. Wir haben uns entschieden, einen Cluster zu erstellen und ihn Workok zu nennen. Der Name wurde nach einem Mutex in einem von der Gruppe verwendeten Loader gewählt. An diese Gruppe wurde dann die weitere Aktivität mit Varianten der gleichen Tools geknüpft. Laut Telemetrie von ESET ist Worok seit Ende 2020 aktiv und ist zum jetzigen Zeitpunkt weiterhin aktiv.

Bereits Ende 2020 zielte Worok auf Regierungen und Unternehmen in mehreren Ländern ab, insbesondere:

  • Ein Telekommunikationsunternehmen in Ostasien
  • Eine Bank in Zentralasien
  • Ein Unternehmen der maritimen Industrie in Südostasien
  • Eine Regierungsbehörde im Nahen Osten
  • Ein privates Unternehmen im südlichen Afrika

Von 2021-05 bis 2022-01 gab es eine erhebliche Unterbrechung der beobachteten Operationen, aber die Workok-Aktivität kehrte 2022-02 zurück und zielte auf:

  • Ein Energieunternehmen in Zentralasien
  • Eine Körperschaft des öffentlichen Sektors in Südostasien

Abbildung 1 zeigt eine visuelle Heatmap der Zielregionen und Branchen.

Abbildung 1. Karte der Zielregionen und Branchen

In Anbetracht der Profile der Opfer und der Tools, die wir gegen diese Opfer eingesetzt sehen, glauben wir, dass das Hauptziel von Worok darin besteht, Informationen zu stehlen.

Technische Analyse

Während die meisten Erstzugriffe unbekannt sind, haben wir in einigen Fällen bis 2021 und 2022 Exploits gesehen, die gegen die ProxyShell-Schwachstellen eingesetzt wurden. In solchen Fällen wurden in der Regel Webshells hochgeladen, nachdem diese Schwachstellen ausgenutzt wurden, um Persistenz im Netzwerk des Opfers zu gewährleisten. Dann verwendeten die Bediener verschiedene Implantate, um weitere Fähigkeiten zu erlangen.

Nachdem der Zugang erlangt worden war, setzten die Betreiber mehrere öffentlich zugängliche Tools zur Aufklärung ein, einschließlich Mimikatz, Regenwurm, ReGeorg und NBTscan, und stellten dann ihre benutzerdefinierten Implantate bereit: einen First-Stage-Loader, gefolgt von einem Second-Stage-.NET-Loader (PNGLoad). Leider konnten wir keine der endgültigen Nutzlasten abrufen. Im Jahr 2021 war der First-Stage-Loader eine CLR-Assembly (CLRLoad), während er 2022 in den meisten Fällen durch eine voll funktionsfähige PowerShell-Hintertür (PowHeartBeat) ersetzt wurde – beide Ausführungsketten sind in Abbildung 2 dargestellt. Diese drei Werkzeuge werden in den folgenden Unterabschnitten ausführlich beschrieben.

Worok: Das Gesamtbild PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Abbildung 2. Bearbeitete Kompromissketten

CLRLoad: CLR-Assembly-Ladeprogramm

CLRLoad ist ein generisches Windows PE, das wir sowohl in 32- als auch in 64-Bit-Versionen gesehen haben. Es ist ein in C++ geschriebener Lader, der die nächste Stufe (PNGLoad) lädt, die a sein muss Common Language Runtime (CLR)-Assembly DLL-Datei. Dieser Code wird aus einer Datei geladen, die sich auf der Festplatte in einem legitimen Verzeichnis befindet, vermutlich um Opfer oder Notfallhelfer zu der Annahme zu verleiten, dass es sich um legitime Software handelt.

Einige CLRLoad-Beispiele beginnen mit der Dekodierung des vollständigen Pfads der Datei, deren Inhalt sie als nächste Stufe laden. Diese Dateipfade sind mit einem Single-Byte-XOR codiert, mit einem anderen Schlüssel in jedem Sample. Dekodiert oder Klartext, diese Dateipfade sind absolut, wobei die folgenden die sind, auf die wir gestoßen sind:

  • C:ProgrammeVMwareVMware ToolsVMware VGAuthxsec_1_5.dll
  • C:ProgrammdateienUltraViewermsvbvm80.dll
  • C:ProgrammeInternet ExplorerJsprofile.dll
  • C:ProgrammeWinRarRarExtMgt.dll
  • C:Programmdateien (x86)Foxit SoftwareFoxit Readerlucenelib.dll

Als nächstes wird ein Mutex erstellt, und wir haben in jedem Sample einen anderen Namen gesehen. Der Loader sucht nach diesem Mutex; Wenn es gefunden wird, wird es beendet, da der Lader bereits ausgeführt wird. In einem der Beispiele ist der mutex Wo0r0KGWhYGO angetroffen, was der Gruppe den Namen Worok gab.

CLRLoad lädt dann eine CLR-Assembly aus dem möglicherweise decodierten Dateipfad. Als nicht verwalteter Code erreicht CLRLoad dies über CorBindToRuntimeEx Windows-API-Aufrufe in 32-Bit-Varianten, oder CLRCreateInstance Anrufe in 64-Bit-Varianten.

PowHeartBeat: PowerShell-Hintertür

PowHeartBeat ist eine voll funktionsfähige Hintertür, die in PowerShell geschrieben ist und mit verschiedenen Techniken wie Komprimierung, Kodierung und Verschlüsselung verschleiert wird. Basierend auf ESET-Telemetrie glauben wir, dass PowHeartBeat CLRLoad in neueren Worok-Kampagnen als Tool zum Starten von PNGLoad ersetzt hat.

Die erste Schicht des Backdoor-Codes besteht aus mehreren Blöcken von base64-codiertem PowerShell-Code. Sobald die Nutzlast rekonstruiert ist, wird sie über ausgeführt IEX. Nach der Dekodierung wird eine weitere Schicht verschleierten Codes ausgeführt, die wir in Abbildung 3 sehen können.

Worok: Das Gesamtbild PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Abbildung 3. Ausschnitt der decodierten Hauptfunktion der zweiten Schicht von PowHeartBeat

Die zweite Schicht der Backdoor entschlüsselt zunächst mit base64 die nächste Schicht ihres Codes, der dann mit entschlüsselt wird Dreifach-DES (CBC-Modus). Nach der Entschlüsselung wird dieser Code mithilfe von dekomprimiert gzip Algorithmus, wodurch die dritte Ebene des PowerShell-Codes entsteht, die die eigentliche Hintertür ist. Es ist in zwei Hauptteile unterteilt: Konfiguration und Handhabung von Backdoor-Befehlen.

Die Hauptschicht des Backdoor-Codes ist ebenfalls in PowerShell geschrieben und verwendet HTTP oder ICMP, um mit dem C&C-Server zu kommunizieren. Es funktioniert wie in Abbildung 4 dargestellt.

Worok: Das Gesamtbild PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Abbildung 4. Funktionsweise von PowHeartBeat

Konfiguration

Die Konfiguration enthält mehrere Felder, darunter Versionsnummer, optionale Proxy-Konfiguration und C&C-Adresse. Tabelle 1 beschreibt die Bedeutung der Konfigurationsfelder in den verschiedenen Versionen, die wir beobachtet haben.

Tabelle 1. Bedeutungen der Konfigurationsfelder

Feldname Beschreibung
nouse / ikuyrtydyfg
(andere Proben)
Ungebraucht.
Kunden ID Client-ID, die für folgende Zwecke verwendet wird:
· Als Wert beim Bau der Cookie-Header für C&C-Kommunikation.
· Als kryptografisches Artefakt für die Verschlüsselung gesendeter Daten.
Version Versionsnummer von PowHeartBeat.
ExecTimes Anzahl der zulässigen Ausführungsversuche bei der Ausgabe von a RunCmd (Befehl läuft) Befehl.
User-Agent Benutzeragent, der für die C&C-Kommunikation verwendet wird.
referer referer Header, der für die C&C-Kommunikation verwendet wird.
AcceptEncoding Ungebraucht.
Cookie-Client-ID
CookieTaskId
CookieTerminalId
Werte, die zum Erstellen der verwendet werden Cookie Header für C&C-Kommunikation.
URLHttps Für die C&C-Kommunikation zu verwendendes Protokoll.
URLDomain
IP Adresse
Domains
Als C&C-Server verwendete URL, Domain(s) oder IP-Adresse. Wenn Domains nicht leer ist, wird statt gewählt IP Adresse. In anderen Fällen, IP Adresse ist genommen
URLSendHeartBeat URL-Pfad, der verwendet wird, wenn die Backdoor den C&C-Server nach Befehlen fragt.
UrlSendResult URL-Pfad, der verwendet wird, wenn die Hintertür die Ergebnisse des Befehls zurück an den C&C-Server sendet.
GetUrl Vollständige URL, die von PowHeartBeat verwendet wird, um Befehle vom C&C-Server anzufordern. Es ist die Verkettung der obigen URL-Elemente.
PutUrl Das gleiche wie GetUrl aber verwendet, um die Ergebnisse des Befehls zurück an den C&C-Server zu senden.
aktuellerPfad Ungebraucht.
ProxyEnableFlag Flag, das angibt, ob die Hintertür einen Proxy verwenden muss oder nicht, um mit dem C&C-Server zu kommunizieren.
Proxymsg Adresse des zu verwendenden Proxys, wenn ProxyEnableFlag eingestellt ist $wahr.
Intervall Zeit in Sekunden, die das Skript zwischen GET-Anfragen ruht.
BasicConfigPath Pfad zu einer optionalen Konfigurationsdatei, die UpTime, Ausfallzeit, StandardIntervall und Domains. Diese Werte werden überschrieben, wenn die Datei vorhanden ist.
UpTime Tageszeit, ab der die Backdoor zu arbeiten beginnt, d. h. sie beginnt, GET-Anfragen an den C&C-Server zu stellen.
Ausfallzeit Tageszeit, bis zu der die Backdoor betrieben werden kann, d. h. die Zeit, zu der sie keine Anfragen mehr an den C&C-Server stellt.
DomainIndex Index des aktuellen Domänennamens, der für die Kommunikation mit dem C&C-Server verwendet werden soll. Falls eine Anfrage eine andere Fehlermeldung zurückgibt als 304 ("Nicht modifiziert"), DomainIndex erhöht.
Geheimer Schlüssel Schlüssel zum Entschlüsseln/Verschlüsselung der Konfiguration. Die Konfiguration wird mit Multiple-Byte-XOR verschlüsselt.
IfLog Ungebraucht.
IfLogFilePath Flag, das angibt, ob die Protokollierung aktiviert ist.
Protokollpfad Pfad der Protokolldatei.
Proxy-Datei Dateipfad der optionalen Proxy-Konfiguration. Wenn es leer ist oder nicht im Dateisystem gefunden wird, ruft die Hintertür die Proxy-Einstellungen des Benutzers aus dem Registrierungswert ab HKCUSoftwareMicrosoftWindowsCurrentVersionInterneteinstellungenProxyServer .
IfConfig Flag, das angibt, ob eine Konfigurationsdatei verwendet werden soll.

Abbildung 5 zeigt ein Beispiel für die aus einem PowHeartBeat-Beispiel extrahierte Konfiguration (SHA-1: 757ABA12D04FD1167528FDD107A441D11CD8C427).

Abbildung 5. Konfigurationsbeispiel

Datenverschlüsselung

PowHeartBeat verschlüsselt Protokolle und zusätzliche Konfigurationsdateiinhalte.

Der Inhalt der Protokolldatei wird durch Multi-Byte-XOR mit einem im Beispiel im Klartext angegebenen Schlüssel verschlüsselt. Interessant, Kunden ID wird als Salt für den Index in das Schlüsselarray verwendet. Der Schlüssel ist ein 256-Byte-Array, das in jedem Beispiel, auf das wir gestoßen sind, identisch war. Zusätzlicher Inhalt der Konfigurationsdatei wird durch Multi-Byte-XOR mit dem Wert von verschlüsselt Geheimer Schlüssel als seinen Schlüssel.

C&C-Kommunikation

PowHeartBeat verwendete HTTP für die C&C-Kommunikation bis Version 2.4 und wechselte dann zu ICMP. In beiden Fällen erfolgt die Kommunikation unverschlüsselt.

HTTP

In einer Endlosschleife sendet die Hintertür eine GET-Anforderung an den C&C-Server und fordert einen zu erteilenden Befehl auf. Die verschlüsselte Antwort wird von der Hintertür entschlüsselt, die den Befehl verarbeitet, und schreibt die Befehlsausgabe in eine Datei, deren Inhalt dann per POST-Anfrage an den C&C-Server gesendet wird.

Das Format der GET-Anfragen ist wie folgt:

Beachten Sie, dass die Anforderung mithilfe der gleichnamigen Konfigurationsfelder erstellt wird.

In der Antwort des C&C-Servers ist das dritte Byte des Inhalts die Befehlskennung, die den von der Hintertür zu verarbeitenden Befehl angibt. Wir nennen es Befehls-ID. Der restliche Inhalt der Antwort wird als Argument an den verarbeiteten Befehl übergeben. Dieser Inhalt wird mit dem in Abbildung 6 gezeigten Algorithmus verschlüsselt. Aufgaben-ID der Wert des nach ihm benannten Cookies ist CookieTaskId's-Wert aus der Konfiguration.

Abbildung 6. Verschlüsselungsalgorithmus für angeforderte Inhaltsdaten

Die Antwort des C&C-Servers enthält außerdem ein weiteres Cookie, dessen Name von der Hintertür angegeben wird CookieTerminalId Konfigurationsvariable. Der Wert dieses Cookies wird in der POST-Anforderung von der Hintertür wiederholt und darf nicht leer sein. Nach Ausführung des Backdoor-Befehls sendet PowHeartBeat das Ergebnis als POST-Request an den C&C-Server. Das Ergebnis wird als Datei mit dem Namen gesendet .png.

ICMP

Ab Version 2.4 von PowHeartBeat wurde HTTP durch ICMP ersetzt, wobei Pakete mit einem Timeout von sechs Sekunden versendet wurden unfragmentiert. Die Kommunikation über ICMP ist höchstwahrscheinlich eine Möglichkeit, der Erkennung zu entgehen.

Es gibt keine größeren Änderungen in den Versionen 2.4 und höher, aber wir haben einige Änderungen im Code bemerkt:

  • PowHeartBeat sendet bei jeder Schleife, die den String enthält, ein Heartbeat-Paket abcdefghijklmnopqrstuvwxyz, bevor Sie einen Befehl anfordern. Dies informiert den C&C-Server darüber, dass die Hintertür bereit ist, Befehle zu empfangen.
  • Anfragen zum Abrufen von Befehlen, die von der Hintertür ausgeführt werden, enthalten die Zeichenfolge abcdefghijklmnop.

Heartbeat-Pakete haben das in Abbildung 7 beschriebene Format.

Worok: Das Gesamtbild PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Abbildung 7. Layout des Heartbeat-Pakets

Die Differenz zwischen Kunden ID und Client-Flag ist, dass Kunden ID unterscheidet sich in jeder Probe, während Client-Flag ist in jeder Probe, die ICMP verwendet, gleich. Herzschlag-Flagge zeigt an, dass die Backdoor einen Heartbeat sendet. Die Antwort vom C&C-Server hat das in Abbildung 8 beschriebene Format.

Worok: Das Gesamtbild PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Abbildung 8. Antwortlayout des C&C-Servers

Flagge Hier wird angezeigt, ob ein Befehl an die Hintertür ausgegeben werden muss. Anforderungen zum Abrufen von Befehlen haben das in Abbildung 9 beschriebene Format.

Worok: Das Gesamtbild PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Abbildung 9. Layout für Anfragen zum Abrufen von Befehlen

Beachten Sie, dass der ICMP-Modus der Hintertür den Empfang einer unbegrenzten Menge an Daten, aufgeteilt in Chunks, und die Variablen ermöglicht Datenlänge, aktuelle Position und Gesamtlänge werden verwendet, um die übertragenen Daten nachzuverfolgen. Antworten auf diese Anforderungen haben das in Abbildung 10 beschriebene Format.

Worok: Das Gesamtbild PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Abbildung 10. Layout von Antworten auf Anfragen zum Abrufen von Befehlen

Wie bei HTTP-Antworten ist die Befehlskennung das dritte Byte von technische Daten.

Nach sieben aufeinanderfolgenden ICMP-Antworten mit leerem oder inkonsistent formatiertem Inhalt gelten Übertragungen zwischen Backdoor und C&C-Server als abgeschlossen.

In Bezug auf die Anforderungen zum Senden des Ergebnisses des ausgegebenen Befehls an den C&C-Server wird der Servermodus in den Postmodus geändert und die letzte Zeichenfolge (abcdefghijklmnop) wird für die Ergebnisdaten geändert.

Backdoor-Befehle

PowHeartBeat hat verschiedene Fähigkeiten, einschließlich Befehls-/Prozessausführung und Dateimanipulation. Tabelle 2 listet alle Befehle auf, die von den verschiedenen analysierten Beispielen unterstützt werden.

Tabelle 2. PowHeartBeat-Befehlsbeschreibungen

Name und Vorname Befehlskennung Beschreibung
Cmd 0x02 Führen Sie einen PowerShell-Befehl aus.
Exe 0x04 Führt einen Befehl als aus Prozessdefinierung.
Datei-Upload 0x06 Laden Sie eine Datei auf den Computer des Opfers hoch. Der Dateiinhalt ist gzip-komprimiert.
Datei download 0x08 Laden Sie eine Datei vom Computer des Opfers herunter und geben Sie Dateipfad, Dateilänge, Erstellungszeit, Zugriffszeiten und Dateiinhalt an den C&C-Server zurück.
Dateiansicht 0x0A Rufen Sie Dateiinformationen eines bestimmten Verzeichnisses ab, insbesondere:
· Dateinamen
· Dateiattribute
· Letzte Schreibzeiten
· Dateiinhalt
DateiLöschen 0x0C Löschen Sie eine Datei.
Datei umbenennen 0x0E Benennen Sie eine Datei um oder verschieben Sie sie.
ChangeDir 0x10 Ändern Sie den aktuellen Arbeitsort der Hintertür.
Info 0x12 Rufen Sie eine Kategorie von Informationen gemäß dem angegebenen Argument ab:
· "Grundinformation": Kunden ID, Version, Hostname, IP-Adressen, explorer.exe Versions- und Größeninformationen, Betriebssystem (Architektur und Flag, das angibt, ob die Maschine ein Server ist), Intervall, aktuelles Verzeichnis, Laufwerksinformationen (Name, Typ, freier Speicherplatz und Gesamtgröße), aktuelle Uhrzeit
· „Zeitintervall-Informationen“: Intervall und aktuelle Uhrzeit
· „Domäneninformationen“: Inhalt der entschlüsselten Konfigurationsdatei
Config 0x14 Aktualisieren Sie den Inhalt der Konfigurationsdatei und laden Sie die Konfiguration neu.
N / A 0x63 Ausgang durch die Hintertür.

Bei Fehlern auf der Backdoor-Seite verwendet die Backdoor eine spezifische Befehlskennung 0x00 in der POST-Anfrage an den C&C-Server und zeigt so an, dass ein Fehler aufgetreten ist.

Beachten Sie, dass die Daten vor dem Zurücksenden der Informationen an den C&C-Server gzip-komprimiert werden.

PNGLoad: Steganografischer Lader

PNGLoad ist die Nutzlast der zweiten Stufe, die von Worok auf kompromittierten Systemen bereitgestellt und laut ESET-Telemetrie entweder von CLRLoad oder PowHeartBeat geladen wird. Obwohl wir keinen Code in PowHeartBeat sehen, der PNGLoad direkt lädt, hat die Hintertür die Möglichkeit, zusätzliche Payloads vom C&C-Server herunterzuladen und auszuführen, was wahrscheinlich dazu führt, dass die Angreifer PNGLoad auf Systemen eingesetzt haben, die mit PowHeartBeat kompromittiert wurden. PNGLoad ist ein Ladeprogramm, das Bytes aus PNG-Dateien verwendet, um eine auszuführende Nutzlast zu erstellen. Es ist eine ausführbare 64-Bit-.NET-Datei – verschleiert mit .NET Reactor – die sich als legitime Software ausgibt. Abbildung 11 zeigt beispielsweise die CLR-Header eines Beispiels, das sich als WinRAR-DLL tarnt.

Worok: Das Gesamtbild PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Abbildung 11. Beispiel einer gefälschten WinRAR-DLL

Nach der Entschleierung ist nur noch eine Klasse vorhanden. In dieser Klasse gibt es eine Hauptpfad Attribut, das den Verzeichnispfad enthält, den die Backdoor einschließlich ihrer Unterverzeichnisse nach Dateien mit a durchsucht . Png Erweiterung, wie in Abbildung 12 gezeigt.

Worok: Das Gesamtbild PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Abbildung 12. . Png Dateiauflistung

. . Png Datei, die durch diese Suche gefunden wurde Hauptpfad wird dann auf steganographisch eingebettete Inhalte geprüft. Zuerst wird das niedrigstwertige Bit der Werte R (Rot), G (Grün), B (Blau) und A (Alpha) jedes Pixels abgerufen und in einem Puffer zusammengestellt. Sollten die ersten acht Bytes dieses Puffers mit der in Abbildung 13 gezeigten magischen Zahl übereinstimmen und der nächste Acht-Byte-Wert, control, nicht null sein, besteht die Datei die steganografische Inhaltsprüfung von PNGLoad. Bei solchen Dateien wird die Verarbeitung mit dem Rest des Puffers fortgesetzt, der mit einem Mehrbyte-XOR entschlüsselt wird, wobei der in PNGLoad gespeicherte Schlüssel verwendet wird SecretKeyBytes -Attribut, und dann wird der entschlüsselte Puffer gzip-dekomprimiert. Als Ergebnis wird ein PowerShell-Skript erwartet, das sofort ausgeführt wird.

Worok: Das Gesamtbild PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Abbildung 13. Format des Puffers, den PNGLoad bei der Verarbeitung erstellt . Png Dateien

Interessanterweise werden von PNGLoad ausgeführte Operationen in einer Datei protokolliert, deren Pfad in der Variablen gespeichert ist Protokolldateipfad. Operationen werden nur protokolliert, wenn eine Datei vorhanden ist, deren Pfad durch die interne Variable angegeben wird IfLogFilePath.

Eine Probe konnten wir nicht beschaffen . Png Datei, die zusammen mit PNGLoad verwendet wird, aber die Funktionsweise von PNGLoad legt nahe, dass es mit gültigen PNG-Dateien funktionieren sollte. Um die schädliche Nutzlast zu verbergen, verwendet Worok Bitmap-Objekte in C#, die nur Pixelinformationen aus Dateien entnehmen, nicht die Dateimetadaten. Das bedeutet, dass Worok seine bösartigen Payloads in gültigen, harmlos aussehenden PNG-Bildern verstecken und sich so vor aller Augen verstecken kann.

Zusammenfassung

Worok ist eine Cyberspionage-Gruppe, die ihre eigenen Tools entwickelt und vorhandene Tools nutzt, um ihre Ziele zu kompromittieren. Wir glauben, dass die Betreiber Informationen von ihren Opfern stehlen wollen, weil sie sich auf hochkarätige Unternehmen in Asien und Afrika konzentrieren und auf verschiedene Sektoren abzielen, sowohl private als auch öffentliche, aber mit besonderem Schwerpunkt auf Regierungsbehörden. Aktivitätszeiten und Toolset weisen auf mögliche Verbindungen zu TA428 hin, aber wir treffen diese Einschätzung mit geringem Vertrauen. Ihr benutzerdefiniertes Toolset umfasst zwei Loader – einen in C++ und einen in C# .NET – und eine PowerShell-Hintertür. Obwohl unsere Sichtbarkeit begrenzt ist, hoffen wir, dass die Aufklärung dieser Gruppe andere Forscher dazu ermutigt, Informationen über diese Gruppe auszutauschen.

Bei Fragen zu unseren auf WeLiveSecurity veröffentlichten Forschungsergebnissen kontaktieren Sie uns bitte unter Bedrohungintel@eset.com.

ESET Research bietet jetzt auch private APT-Geheimdienstberichte und Daten-Feeds an. Bei Fragen zu diesem Service besuchen Sie bitte die ESET Threat Intelligence

IOCs

Mappen

SHA-1 Dateiname Name der ESET-Erkennung Kommentar
3A47185D0735CDECF4C7C2299EB18401BFB328D5 Skript PowerShell/PowHeartBeat.B PowHeartBeat 2.4.3.0003.
27ABB54A858AD1C1FF2863913BDA698D184E180D Skript PowerShell/PowHeartBeat.A PowHeartBeat 2.4.3.0003.
678A131A9E932B9436241402D9727AA7D06A87E3 Skript PowerShell/PowHeartBeat.B PowHeartBeat 2.4.3.0003.
757ABA12D04FD1167528FDD107A441D11CD8C427 Skript PowerShell/PowHeartBeat.B PowHeartBeat 2.1.3.0003.
54700A48D934676FC698675B4CA5F712C0373188 Skript PowerShell/PowHeartBeat.A PowHeartBeat 1.1.3.0002.
C2F53C138CB1B87D8FC9253A7088DB30B25389AF Skript 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 Skript PowerShell/PowHeartBeat.A PowHeartBeat 2.4.3.0003.
4721EEBA13535D1EE98654EFCE6B43B778F13126 vix64.dll MSIL/PNGLLoader.A PNGLoader.
728A6CB7A150141B4250659CF853F39BFDB7A46C RarExtMgt.dll MSIL/PNGLLoader.A PNGLoader.
864E55749D28036704B6EA66555A86527E02AF4A Jsprofile.dll MSIL/PNGLLoader.A PNGLoader.
8DA6387F30C584B5FD3694A99EC066784209CA4C vsxml.dll MSIL/PNGLLoader.A PNGLoader.
AA60FB4293530FBFF00D200C0D44EEB1A17B1C76 xsec_1_5.dll MSIL/PNGLLoader.A PNGLoader.
B2EAEC695DD8BB518C7E24C4F37A08344D6975BE msvbvm80.dll MSIL/PNGLLoader.A PNGLoader.
CDB6B1CAFEE098615508F107814179DEAED1EBCF lucenelib.dll MSIL/PNGLLoader.A PNGLoader.
4F9A43E6CF37FF20AE96E564C93898FDA6787F7D vsstrace.dll Win64/CLRLoad.C CLRLad.
F181E87B0CD6AA4575FD51B9F868CA7B27240610 ncrypt.dll Win32/CLRLoad.A CLRLad.
4CCF0386BDE80C339EFE0CC734CB497E0B08049C ncrypt.dll Win32/CLRLoad.A CLRLad.
5CFC0D776AF023DCFE8EDED5CADA03C6D7F9C244 wlbsctrl.dll Win64/CLRLoad.E CLRLad.
05F19EBF6D46576144276090CC113C6AB8CCEC08 wlbsctrl.dll Win32/CLRLoad.A CLRLad.
A5D548543D3C3037DA67DC0DA47214B2C2B15864 secur32.dll Win64/CLRLoad.H CLRLad.
CBF42DCAF579AF7E6055237E524C0F30507090F3 dbghelp.dll Win64/CLRLoad.C CLRLad.

Dateipfade

Einige der Hauptpfad, Protokolldateipfad und IfLogFilePath Werte, die wir in PNGLoad-Beispielen gefunden haben:

Hauptpfad Protokolldateipfad IfLogFilePath
C:ProgrammeVMwareVMware Tools C:ProgrammeVMwareVMware ToolsVMware VGAuthreadme.txt C:ProgrammeVMwareVMware ToolsVMware VGAuthVMWSU_V1_1.dll
C:ProgrammdateienWinRar C:ProgrammdateienWinRarrarinstall.log C:ProgrammdateienWinRardes.dat
C:ProgrammeUltraViewer C:ProgrammdateienUltraViewer‌CopyRights.dat C:ProgrammeUltraVieweruvcr.dll

Netzwerk

Domain IP
Andere 118.193.78[.]22
Andere 118.193.78[.]57
Flugzeug.Reise-Werbung[.]Agentur 5.183.101[.]9
central.suhypercloud[.]org 45.77.36[.]243

Mutexe

In CLRLoad-Beispielen sind die Mutex-Namen, auf die wir gestoßen sind:

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

Eine umfassende Liste von Indicators of Compromise (IoCs) und Beispielen finden Sie in unser GitHub-Repository.

MITRE ATT&CK-Techniken

Diese Tabelle wurde mit erstellt Version 11 des MITRE ATT&CK-Frameworks.

Taktik ID Name und Vorname Beschreibung
Aufklärung T1592.002 Sammeln Sie Host-Informationen des Opfers: Software PowHeartBeat sammelt sich explorer.exe Informationen.
T1592.001 Sammeln Sie Host-Informationen des Opfers: Hardware PowHeartBeat sammelt Informationen über Laufwerke.
T1590.005 Sammeln Sie Opfernetzwerkinformationen: IP-Adressen PowHeartBeat sammelt IP-Adressen des kompromittierten Computers.
Ressourcenentwicklung T1583.004 Infrastruktur erwerben: Server Worok verwendet seine eigenen C&C-Server.
T1588.002 Besorgen Sie sich Fähigkeiten: Werkzeug Workok setzte mehrere öffentlich verfügbare Tools auf den kompromittierten Computern ein.
T1583.001 Infrastruktur erwerben: Domänen Worok hat registrierte Domains, um die C&C-Kommunikation und -Staging zu erleichtern.
T1588.005 Erwerben Sie Fähigkeiten: Exploits Worok hat die Schwachstelle ProxyShell ausgenutzt.
T1587.001 Entwicklungsfähigkeiten: Malware Worok hat seine eigene Malware entwickelt: CLRLoad, PNGLoad, PowHeartBeat.
T1587.003 Fähigkeiten entwickeln: Digitale Zertifikate Worok hat Let's Encrypt SSL-Zertifikate erstellt, um eine gegenseitige TLS-Authentifizierung für Malware zu ermöglichen.
ausführung T1059.001 Befehls- und Skriptinterpreter: PowerShell PowHeartBeat ist in PowerShell geschrieben.
Beharrlichkeit T1505.003 Serversoftwarekomponente: Web Shell Workok verwendet die Webshell ReGeorg.
Verteidigungsflucht T1140 Enthüllen/Dekodieren von Dateien oder Informationen Worok verwendet verschiedene benutzerdefinierte XOR-basierte Schemata, um Zeichenfolgen und Protokolle in PowHeartBeat, PNGLoad und CLRLoad zu verschlüsseln.
T1036.005 Maskierung: Übereinstimmung mit legitimem Namen oder Ort PNGLoad-Beispiele werden in legitim aussehenden VMWare-Verzeichnissen bereitgestellt.
Zugang zu Anmeldeinformationen T1003.001 Dumping von OS-Anmeldeinformationen: LSASS-Speicher Worok verwendet Mimikatz, um Anmeldeinformationen aus dem LSASS-Speicher auszugeben.
Angewandte F&E T1082 Systeminformationserkennung PowHeartBeat sammelt Betriebssysteminformationen.
T1083 Datei- und Verzeichniserkennung PowHeartBeat kann Dateien und Verzeichnisse auflisten.
T1046 Netzwerkdiensterkennung Work verwendet NbtScan um Netzwerkinformationen über kompromittierte Maschinen zu erhalten.
T1124 Erkennung der Systemzeit PowHeartBeat sammelt die Zeitinformationen des Opfers.
Sammlung T1005 Daten vom lokalen System PowHeartBeat sammelt Daten aus dem lokalen System.
T1560.002 Gesammelte Daten archivieren: Archiv über Bibliothek PowHeartBeat komprimiert Daten gzip, bevor sie an den C&C-Server gesendet werden.
Command and Control T1071.001 Application Layer Protocol: Webprotokolle Einige PowHeartBeat-Varianten verwenden HTTP als Kommunikationsprotokoll mit dem C&C-Server.
T1090.001 Proxy: Interner Proxy PowHeartBeat übernimmt die Proxy-Konfiguration auf dem Computer des Opfers.
T1001.002 Datenverschleierung: Steganographie PNGLoad extrahiert Pixelwerte aus . Png Dateien, um Payloads zu rekonstruieren.
T1573.002 Verschlüsselter Kanal: Asymmetrische Kryptografie PowHeartBeat wickelt die HTTPS-Kommunikation mit dem C&C-Server ab.
T1095 Non-Application-Layer-Protokoll Einige PowHeartBeat-Varianten verwenden ICMP als Kommunikationsprotokoll mit dem C&C-Server.
T1132.001 Datenkodierung: Standardkodierung Worok verwendet XOR-Codierung in PowHeartBeat und PNGLoad.
T1132.002 Datencodierung: Nicht-Standard-Codierung Worok verwendet XOR-Codierungsalgorithmen, die ein zusätzliches Salz verwenden.
Exfiltration T1041 Exfiltration über C2-Kanal PowHeartBeat nutzt seinen C&C-Kommunikationskanal, um Informationen herauszufiltern.

Worok: Das Gesamtbild PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Zeitstempel:

Mehr von Wir leben Sicherheit