Unsichtbare Miner: Enthüllung der Krypto-Mining-Aktivitäten von GHOSTENGINE

Elastic Security Labs hat REF4578 identifiziert, ein Intrusion-Set, das mehrere bösartige Module enthält und anfällige Treiber nutzt, um bekannte Sicherheitslösungen (EDRs) für Krypto-Mining zu deaktivieren.

25 Minuten LesezeitAngriffsmuster
Unsichtbare Miner: Enthüllung der Krypto-Mining-Aktivitäten von GHOSTENGINE

Präambel

Elastic Security Labs hat ein Intrusion Set identifiziert, das mehrere bösartige Module enthält und anfällige Treiber nutzt, um bekannte Sicherheitslösungen (EDRs) für Krypto-Mining zu deaktivieren. Darüber hinaus entdeckte das Team Möglichkeiten, Persistenz zu etablieren, eine zuvor undokumentierte Hintertür zu installieren und einen Krypto-Miner auszuführen. Wir bezeichnen dieses Intrusionsset als REF4578 und die primäre Nutzlast als GHOSTENGINE (die tangentale Forschung des Teams von Antiy hat Teile dieses Intrusionssets HIDDENSHOVEL genannt).

Wichtigste Erkenntnisse

  • Malware-Autoren haben viele Notfall- und Duplizierungsmechanismen eingebaut
  • GHOSTENGINE nutzt verwundbare Treiber, um bekannte EDR-Agenten zu beenden und zu löschen, die wahrscheinlich den eingesetzten und bekannten Coin-Miner stören würden
  • Diese Kampagne war ungewöhnlich komplex, um sowohl die Installation als auch die Persistenz des XMRIG-Miners zu gewährleisten

Code-Analyse

On May 6, 2024, at 14:08:33 UTC, the execution of a PE file named Tiworker.exe (masquerading as the legitimate Windows TiWorker.exe file) signified the beginning of the REF4578 intrusion. The following alerts were captured in telemetry, indicating a known vulnerable driver was deployed.

Nach der Ausführung lädt diese Datei ein PowerShell-Skript herunter und führt es aus, das den gesamten Ausführungsablauf des Eindringlings orchestriert. Die Analyse ergab, dass diese Binärdatei eine hartcodierte PowerShell-Befehlszeile ausführt, um ein verschleiertes Skript abzurufen, get.png, das zum Herunterladen weiterer Tools, Module und Konfigurationen vom Angreifer C2 verwendet wird – wie im Screenshot unten dargestellt.

GHOSTENGINE

GHOSTENGINE ist für das Abrufen und Ausführen von Modulen auf der Maschine verantwortlich. Es verwendet hauptsächlich HTTP, um Dateien von einer konfigurierten Domäne herunterzuladen, mit einer Backup-IP für den Fall, dass Domänen nicht verfügbar sind. Darüber hinaus wird FTP als sekundäres Protokoll mit eingebetteten Anmeldeinformationen verwendet. Im Folgenden finden Sie eine Zusammenfassung des Ausführungsablaufs:

Dieses Skript lädt clearn.pngherunter und führt es aus, eine Komponente, die entwickelt wurde, um das System von Überresten früherer Infektionen zu säubern, die zur gleichen Familie, aber zu einer anderen Kampagne gehören. Es entfernt schädliche Dateien unter C:\Program Files\Common Files\System\ado und C:\PROGRA~1\COMMON~1\System\ado\ und entfernt die folgenden geplanten Aufgaben nach Namen:

  • Microsoft Assist Job
  • System Help Center Job
  • SystemFlushDns
  • SystemFlashDnsSrv

Hinweise auf diese geplanten Aufgabenartefakte können Indikatoren für eine frühere Infektion sein.

Während der Ausführung wird versucht, Windows Defender zu deaktivieren und die folgenden Windows-Ereignisprotokollkanäle zu bereinigen:

  • Application
  • Security
  • Setup
  • System
  • Forwarded Events
  • Microsoft-Windows-Diagnostics-Performance
  • Microsoft-Windows-AppModel-Runtime/Operational
  • Microsoft-Windows-Winlogon/Operational

get.png Deaktiviert Windows Defender, aktiviert Remotedienste und löscht den Inhalt von:

  • C:\Windows\Temp\
  • C:\Windows\Logs\
  • C:\$Recycle.Bin\
  • C:\windows\ZAM.krnl.trace

get.png überprüft auch, ob das C:\ Volume über mindestens 10 MB freien Speicherplatz zum Herunterladen von Dateien verfügt, und speichert sie in C:\Windows\Fonts. Wenn nicht, wird versucht, große Dateien aus dem System zu löschen, bevor es nach einem anderen geeigneten Volume mit ausreichend Speicherplatz sucht und einen Ordner unter $RECYCLE.BIN\Fontserstellt.

Um die aktuelle DNS-Auflösung für die C2-Domainnamen zu erhalten, verwendet GHOSTENGINE eine fest codierte Liste von DNS-Servern, 1.1.1.1 und 8.8.8.8.

Um die Persistenz einzurichten, erstellt get.png als Nächstes die folgenden geplanten Aufgaben wie SYSTEM:

  • OneDriveCloudSync mit msdtc zum Ausführen der bösartigen Dienst-DLL C:\Windows\System32\oci.dll alle 20 Minuten (siehe unten)
  • DefaultBrowserUpdate zum Ausführen von C:\Users\Public\run.bat, , das das get.png Skript herunterlädt und alle 60 Minuten ausführt
  • OneDriveCloudBackup zur Ausführung von C:\Windows\Fonts\smartsscreen.exe alle 40 Minuten

get.png Beendet alle curl.exe Prozesse und alle PowerShell-Prozesse mit *get.png* in der Befehlszeile, mit Ausnahme des aktuellen Prozesses. Auf diese Weise können Sie jede gleichzeitig ausgeführte Instanz der Malware beenden.

Dieses Skript lädt dann config.txtherunter, eine JSON-Datei, die die Hashes der abgerufenen PE-Dateien enthält. Diese Datei überprüft, ob aktualisierte Binärdateien heruntergeladen werden sollen, indem sie die Hashes der zuvor heruntergeladenen Dateien von früheren Infektionen überprüft.

Schließlich lädt get.png alle seine Module und verschiedene PE-Dateien herunter. Nachfolgend finden Sie eine Tabelle mit einer Beschreibung der einzelnen heruntergeladenen Dateien:

PfadTypBeschreibung
C:\Windows\System32\drivers\aswArPots.sysKernel-TreiberAnfälliger Treiber von Avast
C:\Windows\System32\drivers\IObitUnlockers.sysKernel-TreiberAnfälliger Treiber von IObit
C:\Windows\Fonts\curl.exePE ausführbare DateiWird verwendet, um Dateien über cURL herunterzuladen
C:\Windows\Fonts\smartsscreen.exePE ausführbare DateiCore Payload (GHOSTENGINE), deren Hauptzweck darin besteht, die Sicherheitsinstrumentierung zu deaktivieren, die Erstinfektion abzuschließen und den Miner auszuführen.
C:\Windows\System32\oci.dllDienst-DLLPersistence/updates module
backup.pngPowershell-SkriptBackdoor module
kill.pngPowershell-SkriptEin PowerShell-Skript, das eine PE-Datei injiziert und ausführt, die für das Beenden von Sicherheitssensoren verantwortlich ist

GHOSTENGINE-Module

GHOSTENGINE setzt mehrere Module ein, die Sicherheitstools manipulieren, eine Hintertür erstellen und nach Software-Updates suchen können.

EDR-Agent-Controller und Miner-Modul: smartsscreen.exe

Dieses Modul beendet in erster Linie alle aktiven EDR-Agent-Prozesse, bevor ein Krypto-Miner heruntergeladen und installiert wird.

Die Malware scannt und vergleicht alle laufenden Prozesse mit einer fest codierten Liste bekannter EDR-Agenten. Wenn Übereinstimmungen vorhanden sind, wird zunächst der Sicherheitsagent beendet, indem die Avast Anti-Rootkit-Treiberdatei genutzt wird, die mit dem IOCTL- 0x7299C004 aswArPots.sys wird, um den Prozess nach PID zu beenden.

smartscreen.exe wird dann verwendet, um die Binärdatei des Sicherheitsagenten mit einem anderen anfälligen Treiber, iobitunlockers.sys von IObit, mit dem IOCTL- 0x222124zu löschen.

smartscreen.exe lädt dann das XMRig-Client-Mining-Programm (WinRing0x64.png) vom C2-Server als taskhostw.pngherunter. Schließlich führt es XMRig, seine Treiber und die Konfigurationsdatei config.jsonaus, um den Mining-Prozess zu starten.

Update/Persistence module: oci.dll

Das PowerShell-Skript erstellt eine Dienst-DLL (oci.dll), eine Phantom-DLL, die von msdtcgeladen wird. Die Architektur der DLL variiert je nach Computer. Es kann 32-Bit oder 64-Bit sein. Seine Hauptfunktion besteht darin, Systempersistenz zu erstellen und Updates von den C2-Servern herunterzuladen, indem das get.png Skript vom C2 heruntergeladen und ausgeführt wird.

Jedes Mal, wenn der msdtc Dienst gestartet wird, lädt er oci.dll , um den PowerShell-Einzeiler zu erzeugen, der get.png ausführt:

Modul zur Beendigung des EDR-Agenten: kill.png

kill.png ist ein PowerShell-Skript, das Shellcode in den aktuellen Prozess einfügt, eine PE-Datei entschlüsselt und in den Arbeitsspeicher lädt.

Dieses Modul ist in C++ geschrieben, und die Autoren haben Redundanz in seinen Betrieb integriert. Diese Redundanz zeigt sich in der Replikation der Technik, die in smartsscreen.exe zum Beenden und Löschen von EDR-Agent-Binärdateien verwendet wird. Es sucht kontinuierlich nach neuen Prozessen.

Powershell-Backdoor-Modul: backup.png

Das PowerShell-Skript funktioniert wie eine Hintertür, die die Ausführung von Remotebefehlen auf dem System ermöglicht. Es sendet kontinuierlich ein Base64-codiertes JSON-Objekt mit einer eindeutigen ID, die aus der aktuellen Uhrzeit und dem Computernamen abgeleitet wird, während auf base64-codierte Befehle gewartet wird. Die Ergebnisse dieser Befehle werden dann zurückgesendet.

In diesem Beispiel ist eyJpZCI6IjE3MTU2ODYyNDA3MjYyNiIsImhvc3QiOiJhbmFseXNpcyJ9 das Base64-codierte JSON-Objekt:

$ echo "eyJpZCI6IjE3MTU2ODYyNDA3MjYyNiIsImhvc3QiOiJhbmFseXNpcyJ9" | base64 -D
{"id":"171568624072626","host":"analysis"}

Miner-Konfiguration

XMRig ist ein legitimer Krypto-Miner, und sie haben die Verwendung der Konfigurationsdatei und die Elemente hier dokumentiert. Wie zu Beginn dieser Veröffentlichung erwähnt, bestand das ultimative Ziel des REF4578 Intrusion Sets darin, Zugang zu einer Umgebung zu erhalten und einen persistenten Monero-Krypto-Miner, XMRig, einzusetzen.

Wir extrahierten die Konfigurationsdatei aus dem Miner, was enorm wertvoll war, da sie es uns ermöglichte, über die Monero-Zahlungs-ID zu berichten und die Worker- und Pool-Statistiken, die geschürfte Kryptowährung, Transaktions-IDs und Abhebungen zu verfolgen.

Nachfolgend finden Sie einen Auszug aus der REF4578 XMRig-Konfigurationsdatei:

{
    "autosave": false,
    "background": true,
    "colors": true,

...truncated...

    "donate-level": 0,
    "donate-over-proxy": 0,
    "pools": [
        {
            "algo": "rx/0",
            "coin": "monero",
            "url": "pool.supportxmr[.]com:443",
            "user": "468ED2Qcchk4shLbD8bhbC3qz2GFXqjAUWPY3VGbmSM2jfJw8JpSDDXP5xpkMAHG98FHLmgvSM6ZfUqa9gvArUWP59tEd3f",
            "keepalive": true,
            "tls": true

...truncated...

    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36",
    "verbose": 0,
    "watch": true,
    "pause-on-battery": false,
    "pause-on-active": false
}

Monero-Zahlungs-ID

Monero ist eine Blockchain-Kryptowährung, die sich auf Verschleierung und Fungibilität konzentriert, um Anonymität und Privatsphäre zu gewährleisten. Die Zahlungs-ID ist ein beliebiger und optionaler Transaktionsanhang, der aus 32 Byte (64 Hexadezimalzeichen) bzw. 8 Byte (bei integrierten Adressen) besteht.

Mit der Zahlungs-ID aus dem obigen Konfigurationsauszug (468ED2Qcchk4shLbD8bhbC3qz2GFXqjAUWPY3VGbmSM2jfJw8JpSDDXP5xpkMAHG98FHLmgvSM6ZfUqa9gvArUWP59tEd3f) können wir die Worker- und Pool-Statistiken auf einer der in der Konfiguration aufgeführten Monero Mining Pool-Standorteanzeigen.

Darüber hinaus können wir die Transaktions-Hashes sehen, die wir im Monero-Blockchain-Explorer nachschlagen können. Beachten Sie, dass die Transaktionen zwar vier Monate zurückliegen, dies jedoch nur den potenziellen monetären Gewinn dieses bestimmten Mitarbeiters und Kontos anzeigt.

Mit dem Blockchain Explorer und einem der Transaktions-Hashes , die wir von der Zahlungs-ID erhalten haben, können wir den öffentlichen Schlüssel sehen, den Betrag abheben und wann. Beachten Sie, dass diese öffentlichen Schlüssel mit Einmaladressen oder Stealth-Adressen verwendet werden, mit denen der Angreifer dann einen privaten Schlüssel verwenden würde, um das Geld zu entsperren.

In the above example for transaction 7c106041de7cc4c86cb9412a43cb7fc0a6ad2c76cfdb0e03a8ef98dd9e744442 we can see that there was a withdrawal of 0.109900000000 XMR (the abbreviation for Monero) totaling $14.86 USD. The Monerao Mining Pool site shows four transactions of approximately the same amount of XMR, totaling approximately $60.70 USD (January - March 2024).

Zum Zeitpunkt der Veröffentlichung dieser Studie gibt es immer noch aktive Miner, die mit der REF4578 Payment ID verbunden sind.

Obwohl diese spezielle Zahlungs-ID kein großer Verdiener zu sein scheint, ist es offensichtlich, dass REF4578 dieses Eindringlingsset erfolgreich betreiben könnten. Andere Opfer dieser Kampagne könnten unterschiedliche Zahlungs-IDs haben, die zur Verfolgung von Eindringlingen verwendet werden, die für eine größere Gesamtausbeute kombiniert werden könnten.

Malware und MITRE ATT&CK

Elastic verwendet das MITRE ATT&CK-Framework , um gängige Taktiken, Techniken und Verfahren zu dokumentieren, die Bedrohungen gegen Unternehmensnetzwerke einsetzen.

Taktiken

Taktiken stellen das Warum einer Technik oder Untertechnik dar. Es ist das taktische Ziel des Gegners: der Grund für die Ausführung einer Aktion.

Techniken

Techniken stellen dar, wie ein Angreifer ein taktisches Ziel erreicht, indem er eine Aktion ausführt.

Entschärfung von GHOSTENGINE

Erkennung

Das erste Ziel der GHOSTENGINE-Malware besteht darin, Endpunkt-Sicherheitslösungen außer Gefecht zu setzen und bestimmte Windows-Ereignisprotokolle zu deaktivieren, wie z. B. Sicherheits- und Systemprotokolle, die die Prozesserstellung und die Registrierung von Diensten aufzeichnen. Daher ist es wichtig, der Erkennung und Prävention dieser ersten Maßnahmen Priorität einzuräumen:

  • Suspicious PowerShell Execution (Verdächtige PowerShell-Ausführung)
  • Ausführung aus ungewöhnlichen Verzeichnissen
  • Erhöhen von Berechtigungen auf Systemintegrität
  • Bereitstellen anfälliger Treiber und Einrichten zugehöriger Kernelmodusdienste.

Sobald die anfälligen Treiber geladen sind, verringern sich die Erkennungsmöglichkeiten erheblich, und Unternehmen müssen kompromittierte Endpunkte finden, die die Übertragung von Protokollen an ihr SIEM einstellen.

Netzwerkverkehr kann generiert und identifizierbar sein, wenn DNS-Eintragsabfragen auf bekannte Miningpool-Domänen über bekannte Ports wie HTTP (80) und HTTPS (443) verweisen. Stratum ist auch ein weiteres beliebtes Netzwerkprotokoll für Miner, standardmäßig über Port 4444.

Die Analyse dieses Intrusion Sets ergab die folgenden Erkennungsregeln und Verhaltenspräventionsereignisse:

Verhütung

Schutz vor bösartigen Dateien:

Prävention von Shellcode-Injektionen:

Verhinderung der Erstellung anfälliger Treiberdateien (Windows.VulnDriver.ArPot und Windows.VulnDriver.IoBitUnlocker )

YARA

Elastic Security hat YARA-Regeln erstellt, um diese Aktivität zu identifizieren.

Beobachtungen

Alle Observables stehen auch im ECS- und STIX-Format zum Download zur Verfügung.

Die folgenden Observablen wurden in dieser Studie diskutiert.

ObservableTypNameReferenz
2fe78941d74d35f721556697491a438bf3573094d7ac091b42e4f59ecbd25753SHA-256C:\Windows\Fonts\smartsscreen.exeGHOSTENGINE EDR Controller-Modul
4b5229b3250c8c08b98cb710d6c056144271de099a57ae09f5d2097fc41bd4f1SHA-256C:\Windows\System32\drivers\aswArPots.sysAnfälliger Avast-Treiber
2b33df9aff7cb99a782b252e8eb65ca49874a112986a1c49cd9971210597a8aeSHA-256C:\Windows\System32\drivers\IObitUnlockers.sysIobit-anfälliger Treiber
3ced0552b9ecf3dfecd14cbcc3a0d246b10595d5048d7f0d4690e26ecccc1150SHA-256C:\Windows\System32\oci.dllUpdate/Persistenz-Modul (64-Bit)
3b2724f3350cb5f017db361bd7aae49a8dbc6faa7506de6a4b8992ef3fd9d7abSHA-256C:\Windows\System32\oci.dllUpdate-/Persistenzmodul (32-Bit)
35eb368c14ad25e3b1c58579ebaeae71bdd8ef7f9ccecfc00474aa066b32a03fSHA-256C:\Windows\Fonts\taskhostw.exeMiner-Client
786591953336594473d171e269c3617d7449876993b508daa9b96eedc12ea1caSHA-256C:\Windows\Fonts\config.jsonMiner-Konfigurationsdatei
11bd2c9f9e2397c9a16e0990e4ed2cf0679498fe0fd418a3dfdac60b5c160ee5SHA-256C:\Windows\Fonts\WinRing0x64.sysMiner-Fahrer
aac7f8e174ba66d62620bd07613bac1947f996bb96b9627b42910a1db3d3e22bSHA-256C:\ProgramData\Microsoft\DeviceSync\SystemSync\Tiworker.exeErsteinstufung
6f3e913c93887a58e64da5070d96dc34d3265f456034446be89167584a0b347eSHA-256backup.pngGHOSTENGINE Backdoor-Modul
7c242a08ee2dfd5da8a4c6bc86231985e2c26c7b9931ad0b3ea4723e49ceb1c1SHA-256get.pngGHOSTENGINE Lader
cc4384510576131c126db3caca027c5d159d032d33ef90ef30db0daa2a0c4104SHA-256kill.pngGHOSTENGINE EDR-Terminierungsmodul
download.yrnvtklot[.]comDomainC2-Server
111.90.158[.]40IPv4-ADDRC2-Server
ftp.yrnvtklot[.]comDomainC2-Server
93.95.225[.]137IPv4-ADDRC2-Server
online.yrnvtklot[.]comDomainC2-Server

Referenzen

In der obigen Studie wurde auf Folgendes Bezug genommen: