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.png
herunter 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\Fonts
erstellt.
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-DLLC:\Windows\System32\oci.dll
alle 20 Minuten (siehe unten) - DefaultBrowserUpdate zum Ausführen von
C:\Users\Public\run.bat,
, das dasget.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.txt
herunter, 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:
Pfad | Typ | Beschreibung |
---|---|---|
C:\Windows\System32\drivers\aswArPots.sys | Kernel-Treiber | Anfälliger Treiber von Avast |
C:\Windows\System32\drivers\IObitUnlockers.sys | Kernel-Treiber | Anfälliger Treiber von IObit |
C:\Windows\Fonts\curl.exe | PE ausführbare Datei | Wird verwendet, um Dateien über cURL herunterzuladen |
C:\Windows\Fonts\smartsscreen.exe | PE ausführbare Datei | Core Payload (GHOSTENGINE), deren Hauptzweck darin besteht, die Sicherheitsinstrumentierung zu deaktivieren, die Erstinfektion abzuschließen und den Miner auszuführen. |
C:\Windows\System32\oci.dll | Dienst-DLL | Persistence/updates module |
backup.png | Powershell-Skript | Backdoor module |
kill.png | Powershell-Skript | Ein 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- 0x222124
zu löschen.
smartscreen.exe
lädt dann das XMRig-Client-Mining-Programm (WinRing0x64.png
) vom C2-Server als taskhostw.png
herunter. Schließlich führt es XMRig, seine Treiber und die Konfigurationsdatei config.json
aus, 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 msdtc
geladen 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.
- Befehls- und Skriptinterpreter: PowerShell
- Befehls- und Skriptinterpreter: Windows-Befehlsshell
- Geplanter Task/Job: Geplanter Task
- Entfernen von Indikatoren: Löschen Sie Windows-Ereignisprotokolle
- Maskerade
- Prozessinjektion
- Prozess-Erkennung
- Exfiltration über C2-Kanal
- Datenkodierung
- Übernahme von Ressourcen
- Dienstbeendung
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:
- Verdächtige PowerShell-Downloads
- Dienststeuerung, die über den Skriptinterpreter erzeugt wird
- Lokale geplante Aufgabenerstellung
- Prozessausführung aus einem ungewöhnlichen Verzeichnis
- Svchost spawnt Cmd
- Ungewöhnliche Eltern-Kind-Beziehung
- Löschen von Windows-Ereignisprotokollen
- Manipulation durch Microsoft Windows Defender
- Potenzielle Privilegienausweitung über fehlende DLL
- Binäre Maskierung über einen nicht vertrauenswürdigen Pfad
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.
Observable | Typ | Name | Referenz |
---|---|---|---|
2fe78941d74d35f721556697491a438bf3573094d7ac091b42e4f59ecbd25753 | SHA-256 | C:\Windows\Fonts\smartsscreen.exe | GHOSTENGINE EDR Controller-Modul |
4b5229b3250c8c08b98cb710d6c056144271de099a57ae09f5d2097fc41bd4f1 | SHA-256 | C:\Windows\System32\drivers\aswArPots.sys | Anfälliger Avast-Treiber |
2b33df9aff7cb99a782b252e8eb65ca49874a112986a1c49cd9971210597a8ae | SHA-256 | C:\Windows\System32\drivers\IObitUnlockers.sys | Iobit-anfälliger Treiber |
3ced0552b9ecf3dfecd14cbcc3a0d246b10595d5048d7f0d4690e26ecccc1150 | SHA-256 | C:\Windows\System32\oci.dll | Update/Persistenz-Modul (64-Bit) |
3b2724f3350cb5f017db361bd7aae49a8dbc6faa7506de6a4b8992ef3fd9d7ab | SHA-256 | C:\Windows\System32\oci.dll | Update-/Persistenzmodul (32-Bit) |
35eb368c14ad25e3b1c58579ebaeae71bdd8ef7f9ccecfc00474aa066b32a03f | SHA-256 | C:\Windows\Fonts\taskhostw.exe | Miner-Client |
786591953336594473d171e269c3617d7449876993b508daa9b96eedc12ea1ca | SHA-256 | C:\Windows\Fonts\config.json | Miner-Konfigurationsdatei |
11bd2c9f9e2397c9a16e0990e4ed2cf0679498fe0fd418a3dfdac60b5c160ee5 | SHA-256 | C:\Windows\Fonts\WinRing0x64.sys | Miner-Fahrer |
aac7f8e174ba66d62620bd07613bac1947f996bb96b9627b42910a1db3d3e22b | SHA-256 | C:\ProgramData\Microsoft\DeviceSync\SystemSync\Tiworker.exe | Ersteinstufung |
6f3e913c93887a58e64da5070d96dc34d3265f456034446be89167584a0b347e | SHA-256 | backup.png | GHOSTENGINE Backdoor-Modul |
7c242a08ee2dfd5da8a4c6bc86231985e2c26c7b9931ad0b3ea4723e49ceb1c1 | SHA-256 | get.png | GHOSTENGINE Lader |
cc4384510576131c126db3caca027c5d159d032d33ef90ef30db0daa2a0c4104 | SHA-256 | kill.png | GHOSTENGINE EDR-Terminierungsmodul |
download.yrnvtklot[.]com | Domain | C2-Server | |
111.90.158[.]40 | IPv4-ADDR | C2-Server | |
ftp.yrnvtklot[.]com | Domain | C2-Server | |
93.95.225[.]137 | IPv4-ADDR | C2-Server | |
online.yrnvtklot[.]com | Domain | C2-Server |
Referenzen
In der obigen Studie wurde auf Folgendes Bezug genommen: