Analysis by: Carlos Villegas Madrid

ALIASES:

Trojan.Win64.CoinMiner (IKARUS)

 PLATFORM:

Windows

 OVERALL RISK RATING:
 DAMAGE POTENTIAL:
 DISTRIBUTION POTENTIAL:
 REPORTED INFECTION:
 INFORMATION EXPOSURE:

  • Threat Type: Coinminer

  • Destructiveness: No

  • Encrypted:

  • In the wild: Yes

  OVERVIEW

This Coinminer arrives on a system as a file dropped by other malware or as a file downloaded unknowingly by users when visiting malicious sites.

It does not have any propagation routine.

It does not have any backdoor routine.

It uses the system's central processing unit (CPU) and/or graphical processing unit (GPU) resources to mine cryptocurrency.

  TECHNICAL DETAILS

File Size: 2,074,112 bytes
File Type: EXE
Memory Resident: Yes
Initial Samples Received Date: 31 Mar 2023
Payload: Connects to URLs/IPs, Creates files, Drops files, Modifies files, Executes files

Arrival Details

This Coinminer arrives on a system as a file dropped by other malware or as a file downloaded unknowingly by users when visiting malicious sites.

Installation

This Coinminer adds the following folders:

  • %User Profile%\Windows Security
  • %User Profile%\Windows Security\Update
  • %User Profile%\AppData\Roaming\Google\Libs

(Note: %User Profile% is the current user's profile folder, which is usually C:\Documents and Settings\{user name} on Windows 2000(32-bit), XP, and Server 2003(32-bit), or C:\Users\{user name} on Windows Vista, 7, 8, 8.1, 2008(64-bit), 2012(64-bit) and 10(64-bit).)

It drops the following files:

  • %User Profile%\AppData\Roaming\Google\Libs\g.log
  • %User Profile%\Windows Security\Update\winsvrupd.exe → dropped copy of itself

(Note: %User Profile% is the current user's profile folder, which is usually C:\Documents and Settings\{user name} on Windows 2000(32-bit), XP, and Server 2003(32-bit), or C:\Users\{user name} on Windows Vista, 7, 8, 8.1, 2008(64-bit), 2012(64-bit) and 10(64-bit).)

It adds the following processes:

  • %System%\WindowsPowerShell\v1.0\powershell.exe <#fwjcobfk#> {powershell command}
  • "%System%\schtasks.exe" /create /f /sc onlogon /rl highest /tn GoogleUpdateTaskMachine /tr "'%User Profile%\Windows Security\Update\winsvrupd.exe'"
  • %System%\WindowsPowerShell\v1.0\powershell.exe <#boaqiqu#> {powershell command}
  • "%System%\schtasks.exe" /run /tn GoogleUpdateTaskMachine
  • %System%\cmd.exe /c wmic PaTH Win32_VideoController GET Name, VideoProcessor > "%User Profile%\appData\Roaming\Google\Libs\g.log"
  • wmic PaTH Win32_VideoController GET Name, VideoProcessor
  • %System%\cmd.exe {encrypted strings}

(Note: %System% is the Windows system folder, where it usually is C:\Windows\System32 on all Windows operating system versions.. %User Profile% is the current user's profile folder, which is usually C:\Documents and Settings\{user name} on Windows 2000(32-bit), XP, and Server 2003(32-bit), or C:\Users\{user name} on Windows Vista, 7, 8, 8.1, 2008(64-bit), 2012(64-bit) and 10(64-bit).)

It injects codes into the following process(es):

  • cmd.exe

Propagation

This Coinminer does not have any propagation routine.

Backdoor Routine

This Coinminer does not have any backdoor routine.

Rootkit Capabilities

This Coinminer does not have rootkit capabilities.

Information Theft

This Coinminer gathers the following data:

  • System Information
  • Video Processor

Other Details

This Coinminer does the following:

  • It checks if the current user has administrator privileges.
  • It checks if the version of Windows is less than 6.2 (which corresponds to Windows 8).
  • It creates a scheduled task.
    • Task Name: GoogleUpdateTaskMachine
    • Trigger: At log on
    • Action: "%User Profile%\Windows Security\Update\winsvrupd.exe"
  • If scheduled task creation fails, it will create an autorun registry to execute its drop copy.
  • Uses the embedded configuration for its coin mining routine:
    • Algo = rx/0
    • URL = 185.{BLOCKED}:5151 → used as mining pool
    • User = "{BLOCKED}BUvYC98"
    • Password = "x"
    • Cpu max threads hint = 20
    • Cinit version = "3.1.0"
    • Cinit id = "{BLOCKED}zfyp"
  • Supported Algorithms:
    • cn
    • cn/0
    • cn/1
    • cn/2
    • cn/r
    • cn/fast
    • cn/half
    • cn/xao
    • cn/rto
    • cn/rwz
    • cn/zls
    • cn/double
    • cn/ccx
    • cn-lite
    • cn-lite/0
    • cn-lite/1
    • cn-heavy
    • cn-heavy/0
    • cn-heavy/tube
    • cn-heavy/xhv
    • cn-pico
    • cn-pico/tlo
    • cn/upx2
    • cn/gpu
    • rx
    • rx/0
    • rx/wow
    • rx/arq
    • rx/graft
    • rx/sfx
    • rx/keva
    • argon2
    • argon2/chukwa
    • argon2/chukwav2
    • argon2/ninja
    • kawpow

It accepts the following parameters:

  • -o or --url=URL -URL of mining server
  • -a or --algo=ALGO -mining algorithm
  • --coin=COIN -specify coin instead of algorithm
  • -u or --user=USERNAME -username for mining server
  • -p or --pass=PASSWORD -password for mining server
  • -O or --userpass=U:P -username:password pair for mining server
  • -x or --proxy=HOST:PORT -connect through a SOCKS5 proxy
  • -k or --keepalive -send keepalive packet for prevent timeout (needs pool support)
  • --nicehash -enable nicehash support
  • --rig-id=ID -rig identifier for pool-side statistics (needs pool support)
  • --tls -enable SSL/TLS support (needs pool support)
  • --tls-fingerprint=HEX -pool TLS certificate fingerprint for strict certificate pinning
  • --daemon -use daemon RPC instead of pool for solo mining
  • --daemon-poll-interval=N -daemon poll interval in milliseconds (default: 1000)
  • --self-select=URL -self-select block templates from URL
  • -r or --retries=N -number of times to retry before switch to backup server (default: 5)
  • -R or --retry-pause=N -time to pause between retries (default: 5)
  • --user-agent -set custom user-agent string for pool
  • --donate-level=N -donate level, default 1% (1 minute in 100 minutes)
  • --donate-over-proxy=N -control donate over xmrig-proxy feature
  • --no-cpu -disable CPU mining backend
  • -t or --threads=N -number of CPU threads. Proper CPU affinity required for some optimizations.
  • --cpu-affinity -set process affinity to CPU core(s), mask 0x3 for cores 0 and 1
  • -v or --av=N -algorithm variation, 0 auto select
  • --cpu-priority -set process priority (0 idle, 2 normal to 5 highest)
  • --cpu-max-threads-hint=N -maximum CPU threads count (in percentage) hint for autoconfig
  • --cpu-memory-pool=N -number of 2 MB pages for persistent memory pool, -1 (auto), 0 (disable)
  • --cpu-no-yield -prefer maximum hashrate rather than system response/stability
  • --no-huge-pages -disable huge pages support
  • --hugepage-size=N -custom hugepage size in kB (Linux only)
  • --asm=ASM -ASM optimizations, possible values: auto, none, intel, ryzen, bulldozer
  • --randomx-init=N -thread count to initialize RandomX dataset
  • --randomx-no-numa -disable NUMA support for RandomX
  • --randomx-mode=MODE -RandomX mode: auto, fast, light
  • --randomx-1gb-pages -use 1GB hugepages for RandomX dataset (Linux only)
  • --randomx-wrmsr=N -write custom value(s) to MSR registers or disable MSR mod (-1)
  • --randomx-no-rdmsr -disable reverting initial MSR values on exit
  • --astrobwt-max-size=N -skip hashes with large stage 2 size, default: 550, min: 400, max: 1200
  • --astrobwt-avx2 -enable AVX2 optimizations for AstroBWT algorithm
  • --opencl -enable OpenCL mining backend
  • --opencl-devices=N -comma separated list of OpenCL devices to use
  • --opencl-platform=N -OpenCL platform index or name
  • --opencl-loader=PATH -path to OpenCL-ICD-Loader (OpenCL.dll or libOpenCL.so)
  • --opencl-no-cache -disable OpenCL cache
  • --print-platforms -print available OpenCL platforms and exit
  • --cuda -enable CUDA mining backend
  • --cuda-loader=PATH -path to CUDA plugin (xmrig-cuda.dll or libxmrig-cuda.so)
  • --cuda-devices=N -comma separated list of CUDA devices to use
  • --cuda-bfactor-hint=N -bfactor hint for autoconfig (0-12)
  • --cuda-bsleep-hint -bsleep hint for autoconfig
  • --no-nvml -disable NVML (NVIDIA Management Library) support
  • --api-worker-id=ID -custom worker-id for API
  • --api-id=ID -custom instance ID for API
  • --http-host=HOST -bind host for HTTP API (default: 127.0.0.1)
  • --http-port=N -bind port for HTTP API
  • --http-access-token=T -access token for HTTP API
  • --http-no-restricted -enable full remote access to HTTP API (only if access token set)
  • -S or --syslog -use system log for output messages
  • -l or --log-file=FILE -log all output to a file
  • --print-time=N -print hashrate report every N seconds
  • --health-print-time=N -print health report every N seconds
  • --no-color -disable colored output
  • --verbose -verbose output
  • -c or --config=FILE -load a JSON-format configuration file
  • -B or --background -run the miner in the background
  • -V or --version -output version information and exit
  • -h or --help -display this help and exit
  • --dry-run -test configuration and exit
  • --export-topology -export hwloc topology to a XML file and exit
  • --title set -custom console window title
  • --no-title -disable setting console window title

It does not exploit any vulnerability.

It uses the system's central processing unit (CPU) and/or graphical processing unit (GPU) resources to mine cryptocurrency. This behavior makes the system run abnormally slow.

  SOLUTION

Minimum Scan Engine: 9.800
FIRST VSAPI PATTERN FILE: 18.396.06
FIRST VSAPI PATTERN DATE: 20 Apr 2023
VSAPI OPR PATTERN File: 18.397.00
VSAPI OPR PATTERN Date: 21 Apr 2023

Step 1

Before doing any scans, Windows 7, Windows 8, Windows 8.1, and Windows 10 users must disable System Restore to allow full scanning of their computers.

Step 2

Note that not all files, folders, and registry keys and entries are installed on your computer during this malware's/spyware's/grayware's execution. This may be due to incomplete installation or other operating system conditions. If you do not find the same files/folders/registry information, please proceed to the next step.

Step 3

Restart in Safe Mode

[ Learn More ]

Step 4

Identify and terminate files detected as Coinminer.Win64.MALXMR.TIAOODHW

[ Learn More ]
  1. Windows Task Manager may not display all running processes. In this case, please use a third-party process viewer, preferably Process Explorer, to terminate the malware/grayware/spyware file. You may download the said tool here.
  2. If the detected file is displayed in either Windows Task Manager or Process Explorer but you cannot delete it, restart your computer in safe mode. To do this, refer to this link for the complete steps.
  3. If the detected file is not displayed in either Windows Task Manager or Process Explorer, continue doing the next steps.

Step 5

Deleting Scheduled Tasks

The following {Task Name} - {Task to be run} listed should be used in the steps identified below:  

  • Task Name: GoogleUpdateTaskMachine
  • Task to be run: %User Profile%\Windows Security\Update\winsvrupd.exe

For Windows 2000, Windows XP, and Windows Server 2003:

  1. Open the Windows Scheduled Tasks. Click Start>Programs>Accessories>
    System Tools>Scheduled Tasks.
  2. Locate each {Task Name} values listed above in the Name column.
  3. Right-click on the said file(s) with the aforementioned value.
  4. Click on Properties. In the Run field, check for the listed {Task to be run}.
  5. If the strings match the list above, delete the task.

For Windows Vista, Windows 7, Windows Server 2008, Windows 8, Windows 8.1, and Windows Server 2012:

  1. Open the Windows Task Scheduler. To do this:
    • On Windows Vista, Windows 7, and Windows Server 2008, click Start, type taskschd.msc in the Search input field, then press Enter.
    • On Windows 8, Windows 8.1, and Windows Server 2012, right-click on the lower left corner of the screen, click Run, type taskschd.msc, then press Enter.
  2. In the left panel, click Task Scheduler Library.
  3. In the upper-middle panel, locate each {Task Name} values listed above in the Name column.
  4. In the lower-middle panel, click the Actions tab. In the Details column, check for the {Task to be run} string.
  5. If the said string is found, delete the task.

Step 6

Search and delete these files

[ Learn More ]
There may be some files that are hidden. Please make sure you check the Search Hidden Files and Folders checkbox in the "More advanced options" option to include all hidden files and folders in the search result.
  • %User Profile%\AppData\Roaming\Google\Libs\g.log
  • %User Profile%\Windows Security\Update\winsvrupd.exe

Step 7

Search and delete this folder

[ Learn More ]
Please make sure you check the Search Hidden Files and Folders checkbox in the More advanced options option to include all hidden folders in the search result.
  • %User Profile%\Windows Security\Update
  • %User Profile%\Windows Security
  • %User Profile%\AppData\Roaming\Google\Libs

Step 8

Restart in normal mode and scan your computer with your Trend Micro product for files detected as Coinminer.Win64.MALXMR.TIAOODHW. If the detected files have already been cleaned, deleted, or quarantined by your Trend Micro product, no further step is required. You may opt to simply delete the quarantined files. Please check this Knowledge Base page for more information.


Did this description help? Tell us how we did.