Ataque LNK en Múltiples Etapas Utiliza Blockchain TON para Entregar un Backdoor en Node.js
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Un sofisticado ataque de múltiples etapas utiliza archivos LNK maliciosos entregados a través de phishing para desplegar un backdoor basado en Node.js. El malware se basa en la técnica EtherHiding al consultar la blockchain TON para obtener sus direcciones de comando y control, facilitando las actualizaciones de infraestructura para los operadores. También utiliza métodos avanzados de evasión, incluyendo un intérprete de máquina virtual de bytecode personalizado y scripts PowerShell fuertemente ofuscados.
Investigación
El equipo de Investigación de Amenazas Gestionadas de LevelBlue descubrió la campaña a través de alertas de seguridad vinculadas a archivos ZIP y archivos LNK sospechosos. Los analistas deofuscaron comandos de PowerShell que usaban lógica bitwise y aritmética para reconstruir URL maliciosas. También examinaron un intérprete de máquina virtual JavaScript personalizado utilizado para ejecutar bytecode cifrado y rastrearon la recuperación de comando y control a transacciones en la blockchain TON.
Mitigación
Las organizaciones deberían restringir la ejecución de archivos LNK de fuentes no confiables y monitorizar el comportamiento sospechoso de PowerShell, especialmente comandos que involucren lógica bitwise o cálculos de enteros grandes. Debería usarse un fuerte filtrado de correos electrónicos para bloquear enlaces maliciosos, y los defensores deberían observar instalaciones o ejecuciones no autorizadas de Node.js. Restringir el acceso a APIs relacionadas con el blockchain para procesos inusuales también podría interrumpir la recuperación de comando y control.
Respuesta
Si se detecta esta actividad, aisle los endpoints afectados y termine los procesos sospechosos node.exe o procesos de PowerShell inmediatamente. Realice forense de memoria para recuperar el bytecode de JavaScript descifrado e identifique los dominios de comando y control específicos que están siendo consultados. Revise las claves Run del registro para detectar persistencia no autorizada y escanee las exclusiones de Windows Defender creadas por el malware.
Flujo de Ataque
Detecciones
Posibles Puntos de Persistencia [ASEPs – Software/NTUSER Hive] (vía registry_event)
Ver
Powershell ejecutando archivo en directorio sospechoso usando política de ejecución omisión (vía cmdline)
Ver
Binario de NodeJS ejecutándose desde una ubicación poco común (vía cmdline)
Ver
Llamar a métodos sospechosos .NET desde Powershell (vía powershell)
Ver
Cambios sospechosos en las preferencias de Windows Defender (vía powershell)
Ver
Posible descarga de NodeJs por proceso sospechoso (vía dns_query)
Ver
Ejecución de PowerShell y Node.js ofuscada a través de archivo LNK [Creación de proceso de Windows]
Ver
Ejecución de Simulación
Prerrequisito: La comprobación preliminar de Telemetría y Línea de Base debe haber pasado.
Justificación: Esta sección detalla la ejecución precisa de la técnica del adversario (TTP) diseñada para activar la regla de detección. Los comandos y la narrativa DEBEN reflejar directamente los TTP identificados y tener como objetivo generar la telemetría exacta esperada por la lógica de detección. Ejemplos abstractos o no relacionados llevarán a un diagnóstico erróneo.
-
Narrativa del Ataque y Comandos: El adversario busca establecer un backdoor en el sistema. Para evadir la detección, utilizan un archivo LNK que ejecuta un comando de PowerShell. En lugar de una URL clara, usan
-band 255and-shr 8para manipular grandes valores enteros que, cuando se procesan, reconstruyen una URL que apunta a una carga maliciosa. Una vez que la carga útil se recupera o prepara, el proceso de PowerShell generanode.exepara ejecutar el backdoor basado en JavaScript, mezclándose con la actividad legítima del desarrollador en la máquina. -
Script de Prueba de Regresión:
# Simulación de la cadena de ejecución PowerShell ofuscada -> Node.js # Este script imita los argumentos de línea de comandos específicos requeridos por la regla de detección. $jsPayload = "console.log('Conexión C2 Establecida');" # Paso 1: Simular la etapa de ofuscación de PowerShell (como aparecería en la línea de comandos del proceso) # En un ataque real, este sería el comando activado por el archivo LNK. $simulatedPSCommand = "powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -band 255 -shr 8 -Command `"`$url = [Convert]::ToString([bigint]123456789); iwr `$url | iex`"" # Paso 2: Simular la ejecución subsiguiente de Node.js como parte de la misma cadena # Usamos Start-Process para simular la relación padre-hijo Start-Process "powershell.exe" -ArgumentList "-NoProfile -Command `"$simulatedPSCommand; node.exe $jsPayload`"" -
Comandos de Limpieza:
# No se crearon archivos persistentes con esta simulación, # pero nos aseguramos de que cualquier proceso de nodo generado sea terminado. Stop-Process -Name "node" -ErrorAction SilentlyContinue Stop-Process -Name "powershell" -ErrorAction SilentlyContinue