Invisible miners: unveiling GHOSTENGINE’s crypto mining operations — Elastic Security Labs

Elastic Security Labs details a multi-module intrusion set (REF4578) that disables security tools to enable crypto mining via the GHOSTENGINE payload, with persistence and backdoor capabilities. The operation relies on vulnerable drivers, PowerShell orchestration, and a suite of modules to download, install, and run the XMRig miner while purging remnants from prior campaigns. #GHOSTENGINE #REF4578 #XMRig #Monero #Avast #IObitUnlockers #smartscreen #TiWorker

Keypoints

  • REF4578 is the intrusion set, with GHOSTENGINE as the primary payload designed to defeat security controls and deploy a Monero miner.
  • GHOSTENGINE uses vulnerable drivers (AVAST aswArPots.sys and IObitUnlockers.sys) to terminate EDR agents and purge security artifacts.
  • The intrusion chain begins with Tiworker.exe masquerading as a legitimate Windows process to start the infection and fetch obfuscated PowerShell payloads.
  • A PowerShell-based downloader (get.png) retrieves modules and a configuration file from the attacker C2, enabling persistence and updates.
  • Persistence is achieved via scheduled tasks (e.g., OneDriveCloudSync, DefaultBrowserUpdate, OneDriveCloudBackup) and a Windows service-based mechanism (oci.dll).
  • The miner component uses XMRig, with a configuration file (config.json) and Monero-related data to monitor payments and pool activity.

MITRE Techniques

  • [T1036] Masquerading – The malware attempts to masquerade TiWorker as the legitimate Windows TiWorker.exe file. – “the execution of a PE file named Tiworker.exe (masquerading as the legitimate Windows TiWorker.exe file) signified the beginning of the REF4578 intrusion.”
  • [T1059.001] PowerShell – It uses a PowerShell-based chain to orchestrate the intrusion and fetch additional payloads. – “downloads and executes a PowerShell script that orchestrates the entire execution flow of the intrusion. Analysis revealed that this binary executes a hardcoded PowerShell command line to retrieve an obfuscated script, get.png, which is used to download further tools, modules, and configurations from the attacker C2.”
  • [T1027] Obfuscated/Compressed Files and Information – The PowerShell one-liner retrieves an obfuscated script. – “a hardcoded PowerShell command line to retrieve an obfuscated script, get.png.”
  • [T1105] Ingress Tool Transfer – get.png is used to download additional tools and configurations from the C2. – “get.png, which is used to download further tools, modules, and configurations from the attacker C2.”
  • [T1071.001] Web Protocols – GHOSTENGINE primarily uses HTTP/HTTPS to download files from the C2. – “GHOSTENGINE is responsible for retrieving and executing modules on the machine. It primarily uses HTTP to download files from a configured domain.”
  • [T1071.004] DNS – The malware uses a hardcoded DNS list to resolve C2 domains. – “To get the current DNS resolution for the C2 domain names, GHOSTENGINE uses a hardcoded list of DNS servers, 1.1.1.1 and 8.8.8.8.”
  • [T1562.001] Impair Defenses – The malware disables Windows Defender and cleans security logs. – “During execution, it attempts to disable Windows Defender and clean the following Windows event log channels.”
  • [T1053.005] Scheduled Task – get.png creates persistence via tasks like OneDriveCloudSync and DefaultBrowserUpdate. – “Next, to establish persistence, get.png creates the following scheduled tasks as SYSTEM: OneDriveCloudSync … every 20 minutes; DefaultBrowserUpdate … every 60 minutes; OneDriveCloudBackup … every 40 minutes.”
  • [T1543.003] Create/Modify System Process (Windows Service) – oci.dll is created as a service DLL and used to spawn get.png. – “The PowerShell script creates the following service DLL (oci.dll), a phantom DLL loaded by msdtc.”
  • [T1055] Process Injection – kill.png injects shellcode into the current process. – “kill.png is a PowerShell script that injects shellcode into the current process, decrypting and loading a PE file into memory.”
  • [T1055.012] Kernel/User Interaction – EDR termination relies on vulnerable drivers to terminate security agents (process termination via IOCTL). – “scans and compares all the running processes with a hardcoded list of known EDR agents. If there are any matches, it first terminates the security agent by leveraging the Avast Anti-Rootkit Driver file aswArPots.sys with the IOCTL 0x7299C004 to terminate the process by PID.”
  • [T1105] Ingress Tool Transfer (loader) – The loader fetches modules and PEs (e.g., get.png, config.txt, etc.). – “get.png downloads all of its modules and various PE files.”
  • [T1037] Microsoft Windows Utilities – The loader uses system utilities and a service to orchestrate loader operations. – “msdtc to run the malicious service DLL C:WindowsSystem32oci.dll every 20 minutes”

Indicators of Compromise

  • [SHA-256] 2fe78941d74d35f721556697491a438bf3573094d7ac091b42e4f59ecbd25753 – C:WindowsFonts smartsscreen.exe (GHOSTENGINE EDR controller module)
  • [SHA-256] 4b5229b3250c8c08b98cb710d6c056144271de099a57ae09f5d2097fc41bd4f1 – C:WindowsSystem32driversaswArPots.sys (Avast vulnerable driver)
  • [SHA-256] 2b33df9aff7cb99a782b252e8eb65ca49874a112986a1c49cd9971210597a8ae – C:WindowsSystem32driversIObitUnlockers.sys (IObit vulnerable driver)
  • [SHA-256] 3ced0552b9ecf3dfecd14cbcc3a0d246b10595d5048d7f0d4690e26ecccc1150 – C:WindowsSystem32oci.dll (Update/Persistence module, 64-bit)
  • [SHA-256] 3b2724f3350cb5f017db361bd7aae49a8dbc6faa7506de6a4b8992ef3fd9d7ab – C:WindowsSystem32oci.dll (Update/Persistence module, 32-bit)
  • [SHA-256] 35eb368c14ad25e3b1c58579ebaeae71bdd8ef7f9ccecfc00474aa066b32a03f – C:WindowsFontstaskhostw.exe (Miner client)
  • [SHA-256] 786591953336594473d171e269c3617d7449876993b508daa9b96eedc12ea1ca – C:WindowsFontsconfig.json (Miner configuration)
  • [SHA-256] 11bd2c9f9e2397c9a16e0990e4ed2cf0679498fe0fd418a3dfdac60b5c160ee5 – C:WindowsFontsWinRing0x64.sys (Miner driver)
  • [SHA-256] aac7f8e174ba66d62620bd07613bac1947f996bb96b9627b42910a1db3d3e22b – C:ProgramDataMicrosoftDeviceSyncSystemSyncTiworker.exe (Initial stager)
  • [SHA-256] 6f3e913c93887a58e64da5070d96dc34d3265f456034446be89167584a0b347e – C:WindowsFontsbackup.png (GHOSTENGINE backdoor)
  • [SHA-256] 7c242a08ee2dfd5da8a4c6bc86231985e2c26c7b9931ad0b3ea4723e49ceb1c1 – C:WindowsFontsget.png (GHOSTENGINE loader)
  • [SHA-256] cc4384510576131c126db3caca027c5d159d032d33ef90ef30db0daa2a0c4104 – download.yrnvtklot[.]com (C2 server domain)
  • [IPv4] 111.90.158[.]40 – C2 server
  • [IPv4] 93.95.225[.]137 – C2 server
  • [Domain] ftp.yrnvtklot[.]com – C2 server domain
  • [Domain] online.yrnvtklot[.]com – C2 server domain

Read more: https://www.elastic.co/security-labs/invisible-miners-unveiling-ghostengine