H-Worm es un viejo conocido: un RAT (herramienta de acceso remoto) escrito en VBScript con versiones que datan del año 2013, y diversas formas ejecutables (como script .VBS; .EXE obtenido con vbs2exe; versión Autoit; etc.). Pero, últimamente, sus detecciones en Latinoamérica llamaron nuestra atención.
Esta amenaza es un ejemplo de crimeware "popular", ampliamente distribuido en foros cibercriminales y sitios afines; un malware muy conveniente para script kiddies y principiantes que procuran aventurarse en el cibercrimen.
Como todo RAT, incluye una aplicación que se instala en el sistema de la víctima y un componente de servidor, que permite la administración y el control de los bots o sistemas comprometidos. De ellos extrae diversos tipos de información, como capturas de pantalla o contraseñas, y también les da órdenes como abrir determinados sitios o ejecutar comandos.
Se trata de un paquete simple de modificar, ya que el script en VBS puede ser ofuscado de diferentes formas y ejecutado por Wscript en cualquier versión de Windows; por lo tanto, su espectro de posibles víctimas es bastante amplio.
Detecciones de H-Worm
Una vez que los cibercriminales adquieren el paquete de H-Worm pueden modificarlo para crear su propio payload, es decir, la carga maliciosa que enviarán a sus víctimas en un correo malicioso u otro canal de su elección. Este payload puede tomar diversas formas, y cada una tendrá su propia detección; una de ellas, muy habitual en Latinoamérica, es la de un gusano que analizamos hace un tiempo, detectado por ESET como VBS/Agent.NDH.
Pero es otra de sus formas la que llamó nuestra atención recientemente: es detectada por ESET como VBS/Agent.NLI, y tuvo un crecimiento global significativo en las últimas semanas:
Esta amenaza tuvo mayor incidencia en Chile y Brasil, que acreditan el 45% y 32% de las detecciones globales, respectivamente.
Se propaga en archivos con nombres como “ListaGovernoRF.zip”, “MalhaFinaRF.zip” y “ListaTemer.vbs”, lo que sugiere que el vector de ataque se basa en métodos tradicionales de ingeniería social, como correos de phishing.
Sobre H-Worm
Con el paso de los años, H-Worm fue evolucionando para agregar nuevas funcionalidades. La versión original fue firmada por Houdini, y de ahí viene la "H" de su nombre; pero desde 2015 pasó a manos de MeoIT.
A pesar de que las primeras versiones ya tienen por lo menos cuatro años, según demostró el análisis realizado por FireEye en septiembre de 2013, la estructura básica de H-Worm no fue modificada. La secuencia de comandos posee un bucle principal donde se ejecutan diferentes funciones, dependiendo del parámetro enviado por el servidor de C&C.
En cada ejecución del bucle, el agente (por ejemplo, un malware ejecutado en la máquina de la víctima) envía datos de la máquina infectada al C&C y recibe comandos a través de la función "THANK_GOD_YOU_ARE_HERE".
En las peticiones, los siguientes parámetros se pasan en el campo de user-agent:
Parámetro | Comentario |
---|---|
Disk Volume Serial | VolumeSerialNumber seguido de una string fija (“_Git.Hub” – está la opción de “_MeoIT”, pero nunca es selecionada) |
Hostname | |
Username | |
Sistema Operativo | |
Admin/Non-Admin | |
UAC on/UAC off | |
Versión do .NET | Valor de la clave “HKLM\software\Microsofot\NET Framework Setup\NDP\v2.0.50727\Version” |
RAM | TotalPhysicalMemory en MB TotalPhysicalMemory |
GPU | Lista de Win32_VideoController (caption) |
Clave de registro de Windows | Obtenido de “HKLM\software\Microsoft\Windows NT\CurrentVersion\DigitalProductId” |
Antivirus (AV) | AV instalado en la máquina o “None AV” |
Persistencia | Comprueba si hay persistencia en “HKCU\software\Red_%scriptname%” si UAC está habilitado o “HKLM\software\Red_%scriptname%” si UAC está deshabilitado. Si la persistencia está deshabilitada, la instala en el registro. Retorno: [true|false] |
Fecha y hora |
Tabla 1: Lista de información enviada por H-Worm
Además de los datos que extraía aquella primera versión de Houdini, la actual proporciona información sobre Admin, UAC, .NET, RAM, GPU y clave de registro de Windows. En cuanto a funcionalidades, no hubo grandes modificaciones:
Comando | Descripción | Comunicación |
---|---|---|
execute | Eecuta el parámetro recibido en 'excecute' | |
update | Reemplaza el payload del script y reinicia ejecución en modo batch:
wscript.exe //B %scriptpath% |
|
uninstall |
|
|
send | Descarga de archivos de C&C | POST /is-sending<|>{URL_Archivo} |
site-send | Descarga de archivo de URL | GET /{URL_Archivo} |
recv | Carga de archivo para C&C | POST /is-recving<|>{URL_Archivo} |
enum-driver | Envía información de las unidades de la máquina | POST /is-enum-driver…{DrivePath|DriveType<|>…} |
enum-faf | Envía los atributos de los archivos y carpetas contenidos en un directorio específico | POST /is-enum-faf…{FolderName|(FileSize)|(d|f)|Attributes<|>…} |
cmd-shell | Ejecuta comando de shell recibido y devuelve resultado:
cmd.exe /c $comando |
POST /is-enum-process…{Name|PID|Path<|>…} |
delete | Eliminar el archivo o la carpeta especificada | POST /is-cmd-shell…{Result} |
exit-process | Termina el proceso especificado por parámetro | |
sleep | Pausa ejecución por tiempo determinado |
Tabla 2: Lista de comandos de H-Worm [comparar con versión de 2013]
Otra característica agregada es la verificación de procesos en ejecución utilizados para monitorear la ejecución de otros procesos. Si se detecta alguna de estas herramientas de análisis, la ejecución del script es finalizada.
Es importante resaltar que a pesar de que el payload corresponda a H-Worm, la mayoría de las veces el script es ofuscado. En el caso del archivo ListaTemer.VBS, se utilizaron dos niveles de ofuscación.
En el primer nivel, el payload es una cadena en unicode. Para ejecutarlo, la string es decodificada carácter por carácter en un VBScript , y al final se ejecuta con la llamada Execute(S) (línea 18).
Al decodificar el payload, se obtiene otro VBScript que también está ofuscado. Sin embargo, en este caso el payload está codificado en varias cadenas hexadecimales (1510 líneas en total).
Si te interesa analizar malware, en ambos casos el script puede ser desofuscado fácilmente cambiando su ejecución por la escritura de un archivo conteniendo el payload.
El fragmento de código añadido para hacer el dump del código original de la amenaza se muestra a continuación:
Set objFSO = CreateObject(“Scripting.FileSystemObject”) outfile = Set obfFile = objFSO.CreateTextFile(outFile,True,True) objFile.Write &vbCrLf objFile.Close |
Conclusión
Este caso es interesante para ver cómo las familias de malware evolucionan y resurgen a lo largo del tiempo. En el caso de H-Worm, además de ser compatible con diversas versiones de Windows (incluyendo Windows 10 desde 2015, como se ve en la figura), el hecho de que es muy simple obtenerlo y utilizarlo lo hace una opción codiciada por script kiddies.
Por las notas de actualización disponibles en los foros, parece que la versión analizada de H-Worm data de 2015. Aun así, vemos que las detecciones de esta amenaza han tenido un gran crecimiento últimamente, lo que significa que los cibercriminales no descartan recurrir a viejos paquetes de herramientas de crimeware si prueban ser efectivos para realizar ataques.
Una posible explicación es el hecho de que estas herramientas, a pesar de ser susceptibles a la detección y el bloqueo, todavía tienen una alta tasa de éxito, ya que las víctimas no tienen un nivel de protección adecuado. Todavía debemos seguir concientizando sobre la existencia de engaños y amenazas informáticas, así como de los métodos para evitar ser víctima de ellos.
Por lo tanto, con el fin de evitar que un atacante tenga acceso remoto a tu máquina, es importante que estés atento a los ataques basados en ingeniería social como el que vimos en este caso, y que hagas uso de soluciones de seguridad confiables con altos niveles de detección proactiva.
Indicadores de Compromiso (IoC)
Detección de ESET | Hashes (SHA1) |
---|---|
VBS/Agent.NLI | 190c9bf8d5caa75189bd7267625f9a7cb625c910 |
URL contactadas |
---|
hxxp://workinrarhost.ddns.com.br:5091 |
Sigue leyendo: Controlando Herramientas de Acceso Remoto en ambientes corporativos