La campaña SmartApeSG impulsa Remcos RAT, NetSupport RAT, StealC y Sectop RAT (ArechClient2)
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
La campaña SmartApeSG se basa en una página de CAPTCHA falsa combinada con un script ClickFix para distribuir varias amenazas de acceso remoto, incluidas Remcos RAT, NetSupport RAT, StealC y Sectop RAT. El compromiso inicial pone en marcha una cadena de infección en etapas en la que cada carga útil se comunica con su propio servidor de comando y control. La entrega se realiza a través de archivos comprimidos que abusan del DLL side-loading para ejecutar el malware. El informe también incluye indicadores de apoyo como dominios, direcciones IP, rutas de archivos y hashes de archivos.
Investigación
El analista registró por primera vez tráfico del script ClickFix a las 17:11 UTC, y las comunicaciones de Remcos RAT comenzaron un minuto después a las 17:12 UTC. El tráfico de NetSupport RAT apareció cuatro minutos después de eso, StealC se observó aproximadamente una hora después, y Sectop RAT surgió aproximadamente una hora y dieciocho minutos después de StealC. Los investigadores recuperaron artefactos de archivos tanto de directorios de usuario como de sistema y los relacionaron con los archivos maliciosos específicos utilizados en la cadena.
Mitigación
Los defensores deben bloquear los dominios y direcciones IP maliciosos conocidos, al tiempo que vigilan la ejecución de archivos HTA y la extracción sospechosa de archivos comprimidos en las rutas de perfil de usuario. Las protecciones de navegador y correo electrónico deben reforzarse para reducir la exposición a click-jacking y la entrega de CAPTCHA falsas. Las reglas de detección en el endpoint también deben ser ajustadas para identificar el comportamiento de DLL side-loading y procesos RAT inesperados.
Respuesta
Si se encuentran algunos de los indicadores listados, aísle el host afectado, detenga los procesos maliciosos y recoja imágenes de memoria y disco para un análisis forense. Realice un barrido amplio de IOCs en todo el entorno, actualice los controles de firewall para bloquear los endpoints C2 identificados y restablezca cualquier credencial potencialmente comprometida.
«graph TB
%% Definiciones de clase
classDef action fill:#99ccff
classDef technique fill:#ffcc99
classDef malware fill:#ff9999
classDef process fill:#cccccc
%% Nodos
victim_visits[«Acción – La víctima visita un sitio web comprometido donde un CAPTCHA falso inyecta un script malicioso»]
class victim_visits action
tech_user_exec_link[«Técnica – T1204.001 Ejecución por Usuario: Enlace Malicioso
Descripción: La víctima interactúa con un enlace malicioso que lleva a la ejecución de código»]
class tech_user_exec_link technique
tech_user_exec_copy[«Técnica – T1204.004 Ejecución por Usuario: Copiar y Pegar Malicioso
Descripción: El código malicioso se copia al portapapeles y se pega para ejecutar»]
class tech_user_exec_copy technique
clickfix_script[«Herramienta – Nombre: script ClickFix (malicioso)»]
class clickfix_script malware
hta_creation[«Acción – Archivo HTA malicioso escrito en %AppData%post.hta»]
class hta_creation action
tech_mshta[«Técnica – T1218.005 Ejecución de Proxy de Binario del Sistema: Mshta
Descripción: Mshta se usa para ejecutar archivos HTA»]
class tech_mshta technique
tech_user_exec_file[«Técnica – T1204.002 Ejecución por Usuario: Archivo Malicioso
Descripción: La víctima ejecuta un archivo malicioso»]
class tech_user_exec_file technique
hta_execution[«Proceso – mshta.exe ejecuta post.hta»]
class hta_execution process
download_payload[«Acción – HTA descarga cargas comprimidas (ZIP o RAR) desde servidor remoto»]
class download_payload action
tech_web_protocol[«Técnica – T1071.001 Protocolo de Capa de Aplicación: Protocolos Web
Descripción: Uso de HTTP/HTTPS para transferencia de datos»]
class tech_web_protocol technique
malware_remcos[«Malware – Remcos RAT»]
class malware_remcos malware
malware_netsupport[«Malware – NetSupport RAT»]
class malware_netsupport malware
malware_stealc[«Malware – StealC»]
class malware_stealc malware
malware_sectop[«Malware – Sectop RAT»]
class malware_sectop malware
tech_dll_sideloading[«Técnica – T1574.001 Secuestro del Flujo de Ejecución: DLL Side-Loading
Descripción: DLLs maliciosos son cargados en ejecutables legítimos»]
class tech_dll_sideloading technique
c2_bidirectional[«Técnica – T1102.002 Servicio Web: Comunicación Bidireccional
Descripción: RAT se comunica con C2 usando servicios web bidireccionales»]
class c2_bidirectional technique
c2_oneway[«Técnica – T1102.003 Servicio Web: Comunicación Unidireccional
Descripción: RAT envía datos a C2 vía servicios web unidireccionales»]
class c2_oneway technique
cleanup_files[«Acción – Borrar archivos HTA y archivos temporales después de la ejecución»]
class cleanup_files action
tech_file_deletion[«Técnica – T1070.004 Eliminación de Indicadores: Eliminación de Archivos
Descripción: Los archivos son eliminados para borrar evidencia»]
class tech_file_deletion technique
cleanup_persistence[«Acción – Borrar artefactos de persistencia como archivos de registro o tareas programadas»]
class cleanup_persistence action
tech_clear_persistence[«Técnica – T1070.009 Eliminación de Indicadores: Borrar Persistencia
Descripción: Los mecanismos de persistencia son eliminados»]
class tech_clear_persistence technique
%% Conexiones
victim_visits –>|dispara| tech_user_exec_link
victim_visits –>|dispara| tech_user_exec_copy
tech_user_exec_link –>|entrega| clickfix_script
tech_user_exec_copy –>|entrega| clickfix_script
clickfix_script –>|escribe| hta_creation
hta_creation –>|usa| tech_mshta
hta_creation –>|usa| tech_user_exec_file
tech_mshta –>|ejecuta| hta_execution
tech_user_exec_file –>|ejecuta| hta_execution
hta_execution –>|descarga| download_payload
download_payload –>|usa| tech_web_protocol
download_payload –>|entrega| malware_remcos
download_payload –>|entrega| malware_netsupport
download_payload –>|entrega| malware_stealc
download_payload –>|entrega| malware_sectop
malware_remcos –>|emplea| tech_dll_sideloading
malware_netsupport –>|emplea| tech_dll_sideloading
malware_stealc –>|emplea| tech_dll_sideloading
malware_sectop –>|emplea| tech_dll_sideloading
malware_remcos –>|comunica vía| c2_bidirectional
malware_netsupport –>|comunica vía| c2_oneway
malware_stealc –>|comunica vía| c2_oneway
malware_sectop –>|comunica vía| c2_bidirectional
hta_execution –>|dispara| cleanup_files
cleanup_files –>|usa| tech_file_deletion
cleanup_files –>|también dispara| cleanup_persistence
cleanup_persistence –>|usa| tech_clear_persistence
«
Flujo de Ataque
Detecciones
Archivos Sospechosos en el Perfil Público de Usuario (vía file_event)
Ver
Uso Explícito de COMSPEC en la Ruta de Imagen (vía sistema)
Ver
Uso Explícito de COMSPEC en la Ruta de Archivo de Servicio (vía auditoría)
Ver
Uso Sospechoso Explícito de COMSPEC (vía creación de proceso)
Ver
Comando y Control Sospechoso por Solicitud DNS de Dominio de Nivel Superior Inusual (TLD) (vía dns)
Ver
Variables de Entorno en los Argumentos de la Línea de Comandos (vía cmdline)
Ver
IOCs (DestinationIP) para detectar: La campaña SmartApeSG impulsa Remcos RAT, NetSupport RAT, StealC y Sectop RAT (ArechClient2)
Ver
IOCs (HashSha256) para detectar: La campaña SmartApeSG impulsa Remcos RAT, NetSupport RAT, StealC y Sectop RAT (ArechClient2)
Ver
IOCs (SourceIP) para detectar: La campaña SmartApeSG impulsa Remcos RAT, NetSupport RAT, StealC y Sectop RAT (ArechClient2)
Ver
Detección de Tráfico del Servidor C2 de la Campaña SmartApeSG [Conexión de Red de Windows]
Ver
Ejecución de Simulación
Requisito Previo: La Verificación Previa de Telemetría y Línea 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 las TTPs identificadas y apuntan a generar la telemetría exacta esperada por la lógica de detección.
Narrativa de Ataque y Comandos
El adversario, habiendo ganado un punto de apoyo en la estación de trabajo de la víctima, lanza el componente Remcos RAT de la campaña SmartApeSG. El RAT está configurado para usar 95.142.45.231:443 como su endpoint C2 principal. Primero resuelve el dominio embebido fresicrto.top (alternativa) y luego abre un túnel HTTPS persistente a la dirección IP. El tráfico es generado por remcos.exe vía la API WinHTTP de Windows, que produce un evento Sysmon NetworkConnect y una entrada en el registro del Firewall de Windows.
Pasos:
- Soltar el binario del RAT (
remcos.exe) a%TEMP%. - Ejecutar el binario con el argumento C2
-c 95.142.45.231:443. - Verificar la conexión saliente (vía
netstat).
Estas acciones se mapean a T1102 (Servicio Web) para la comunicación C2 y T1584.001 (Adquisición de dominio) ya que el dominio es parte de la carga útil.
Script de Prueba de Regresión
# --------------------------------------------------------------
# Simulación de C2 de SmartApeSG – activa la regla de detección
# --------------------------------------------------------------
# 1. Escribir un stub minimalista similar a Remcos (para demostrar, usar PowerShell para abrir TCP)
$c2Ip = "95.142.45.231"
$c2Port = 443
$payloadFile = "$env:TEMPremcos_stub.exe"
# Crear un ejecutable .NET simple que abre una conexión TCP (simula RAT)
Add-Type -TypeDefinition @"
using System;
using System.Net.Sockets;
public class Stub {
public static void Main(string[] args) {
try {
var client = new TcpClient();
client.Connect("$c2Ip", $c2Port);
System.Threading.Thread.Sleep(5000); // mantener la conexión viva
client.Close();
} catch (Exception ex) {
Console.Error.WriteLine(ex.Message);
}
}
}
"@ -OutputAssembly $payloadFile -CompilerOptions "/target:exe"
# 2. Ejecutar el stub (esto genera la conexión de red)
Start-Process -FilePath $payloadFile -WindowStyle Hidden
# 3. Opcional: Resolver el dominio alternativo para demostrar actividad DNS
Resolve-DnsName -Name "fresicrto.top" -Type A | Out-Null
# 4. Pausa para observación
Start-Sleep -Seconds 10
# 5. Limpieza – matar el stub si aún está corriendo
Get-Process -Name "remcos_stub" -ErrorAction SilentlyContinue | Stop-Process -Force
Remove-Item -Path $payloadFile -Force
Comandos de Limpieza
# Terminar cualquier conexión persistente del stub
Get-NetTCPConnection -RemotePort 443 -RemoteAddress 95.142.45.231 -State Established |
ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }
# Eliminar archivos temporales (ya hecho en el script, pero asegure un estado limpio)
Remove-Item -Path "$env:TEMPremcos_stub.exe" -ErrorAction SilentlyContinue