SOC Prime Bias: Crítico

21 Ene 2026 19:10

Operación Acceso Encubierto: Phishing Personalizado con Archivos LNK Dirigido al Sector Judicial de Argentina para Desplegar un RAT Encubierto

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Seguir
Operación Acceso Encubierto: Phishing Personalizado con Archivos LNK Dirigido al Sector Judicial de Argentina para Desplegar un RAT Encubierto
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

Seqrite identificó una operación de spear-phishing que entrega un atajo LNK armado emparejado con un cargador BAT malicioso. Una vez ejecutado, el cargador descarga un troyano de acceso remoto basado en Rust desde un repositorio de GitHub, donde realiza verificaciones anti-análisis y establece un canal de comando y control resistente. Se evalúa que la actividad está dirigida a las organizaciones judiciales de Argentina y entidades gubernamentales adyacentes. Para aumentar la probabilidad de ejecución, los atacantes incluyen contenido señuelo en forma de PDF legítimo en el paquete de entrega.

Investigación

Los analistas examinaron el archivo ZIP que contiene los archivos LNK, BAT y PDF, luego reconstruyeron la secuencia de comandos de PowerShell utilizada para activar el cargador BAT. Perfilaron la funcionalidad del RAT, incluidas las verificaciones anti-VM/anti-sandbox, reconocimiento del host y toma de huellas digitales del sistema, configuración de persistencia y tareas cifradas sobre C2. Los comportamientos observados se mapearon a técnicas relevantes de MITRE ATT&CK, con patrones notables como suplantación de identidad, omisión de políticas de ejecución de PowerShell y lógica secundaria/de respaldo de C2 para mantener la conectividad si los canales primarios fallan.

Mitigación

Aplique una gobernanza estricta para la ejecución de accesos directos (LNK), especialmente desde ubicaciones escribibles por el usuario y archivos comprimidos, y haga cumplir políticas de ejecución de PowerShell endurecidas con un registro centralizado. Restringir o proxy el acceso saliente a repositorios de GitHub no autorizados y alertar sobre patrones sospechosos de descarga y ejecución que se originen en intérpretes de scripts. Monitorizar la persistencia a través de claves de registro Run o tareas programadas con nombres anómalos o recién observados. Donde sea posible, despliegue detecciones que revelen comportamientos comunes anti-análisis y asegúrese de que los usuarios que manejan PDFs funcionen con mínimos privilegios para reducir el radio de impacto de una ejecución exitosa.

Respuesta

Dispara alertas cuando se crea o ejecuta el LNK armado, y cuando se observa la cadena de invocación de PowerShell asociada. Cazar proactivamente el artefacto msedge_proxy.exe dejado y cualquier entrada de persistencia vinculada en el registro o programador de tareas. Aislar los puntos finales afectados, terminar el árbol de procesos maliciosos y eliminar cualquier tarea programada creada y valores de clave Run. Realizar una revisión forense completa para validar el alcance, confirmar si se prepararon o exfiltraron datos, e identificar cualquier host adicional expuesto al mismo patrón de entrega ZIP/LNK.

«graph TB %% Class definitions classDef action fill:#99ccff classDef artifact fill:#cccccc classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef operator fill:#ff9900 %% Nodes artifact_email_zip[«<b>Artefacto</b> – Correo electrónico ZIP malicioso<br/><b>Contenido</b>: Contiene archivo LNK y PDF señuelo.»] class artifact_email_zip artifact artifact_lnk[«<b>Artefacto</b> – Archivo LNK (info/juicio-grunt-posting.pdf.lnk)<br/><b>Técnica</b>: T1027.012 Ocultación de Iconos»] class artifact_lnk artifact attack_initial_access[«<b>Acción</b> – T1566.001 Spearphishing Adjunto<br/><b>Descripción</b>: Entrega de ZIP malicioso vía correo electrónico.»] class attack_initial_access action attack_user_execution[«<b>Acción</b> – T1204.002 Ejecución de Archivo Malicioso<br/><b>Descripción</b>: El usuario hace clic en el LNK que aparenta ser un PDF.»] class attack_user_execution action defense_evasion_icon[«<b>Acción</b> – T1027.012 Ocultación de Icono LNK<br/><b>Descripción</b>: LNK utiliza el icono PDF para disfrazarse.»] class defense_evasion_icon action execution_powershell[«<b>Acción</b> – T1059.001 PowerShell & T1059.003 Shell de Comandos de Windows<br/><b>Descripción</b>: LNK lanza PowerShell con bypass y ventana oculta, ejecutando un cargador BAT.»] class execution_powershell action defense_evasion_obfusc[«<b>Acción</b> – T1027 Comandos Ofuscados/Codificados<br/><b>Descripción</b>: Comando de PowerShell y mensajes C2 están codificados en Base64u2011.»] class defense_evasion_obfusc action artifact_bat[«<b>Artefacto</b> – health-check.bat<br/><b>Propósito</b>: Descarga y guarda msedge_proxy.exe.»] class artifact_bat artifact malware_rust_rat[«<b>Malware</b> – msedge_proxy.exe (Rust RAT)<br/><b>Técnicas</b>: T1497.001 Evasión de Virtualización/Sandbox, T1622 Evasión de Depuradores, T1547.001 Claves de Ejecución del Registro, T1053.005 Tarea Programada»] class malware_rust_rat malware defense_evasion_sandbox[«<b>Acción</b> – T1497.001 Evasión de Virtualización/Sandbox & T1622 Evasión de Depuradores<br/><b>Descripción</b>: Verifica registro, controladores, prefijos MAC, carpetas sandbox, IsDebuggerPresent.»] class defense_evasion_sandbox action persistence_registry[«<b>Acción</b> – T1547.001 Claves de Ejecución del Registro / Carpeta de Inicio<br/><b>Descripción</b>: Crea entradas HKCU Run para persistencia.»] class persistence_registry action persistence_task[«<b>Acción</b> – T1053.005 Tarea Programada<br/><b>Descripción</b>: Registra una tarea programada a través de schtasks con ejecución diferida.»] class persistence_task action discovery_system[«<b>Acción</b> – T1082 Descubrimiento de Información del Sistema<br/><b>Descripción</b>: Recolecta nombre de host, nombre de usuario, versión del SO, nivel de privilegio.»] class discovery_system action discovery_process[«<b>Acción</b> – T1057 Descubrimiento de Procesos<br/><b>Descripción</b>: Ejecuta tasklist para detectar herramientas de análisis y procesos de VM.»] class discovery_process action collection_local[«<b>Acción</b> – T1005 Datos del Sistema Local<br/><b>Descripción</b>: Cosecha archivos para exfiltración.»] class collection_local action c2_app_layer[«<b>Acción</b> – T1071 Protocolo de Capa de Aplicación & T1573 Canal Encriptado<br/><b>Descripción</b>: Se comunica con el servidor C2 a través de HTTP(S) utilizando cargas encriptadas.»] class c2_app_layer action c2_encoding[«<b>Acción</b> – T1132.001 Codificación de Datos (Base64)<br/><b>Descripción</b>: Todos los comandos C2 están codificados en Base64u2011.»] class c2_encoding action exfiltration[«<b>Acción</b> – T1041 Exfiltración a Través del Canal C2<br/><b>Descripción</b>: Envía datos recolectados a través del mismo canal C2.»] class exfiltration action %% Flow connections artifact_email_zip u002du002d>|contiene| artifact_lnk artifact_email_zip u002du002d>|entrega| attack_initial_access attack_initial_access u002du002d>|lleva a| attack_user_execution attack_user_execution u002du002d>|activa| defense_evasion_icon defense_evasion_icon u002du002d>|lleva a| execution_powershell execution_powershell u002du002d>|ejecuta| artifact_bat artifact_bat u002du002d>|descarga| malware_rust_rat malware_rust_rat u002du002d>|realiza| defense_evasion_sandbox defense_evasion_sandbox u002du002d>|establece| persistence_registry persistence_registry u002du002d>|añade| persistence_task persistence_task u002du002d>|habilita| discovery_system discovery_system u002du002d>|alimenta| discovery_process discovery_process u002du002d>|recolecta| collection_local collection_local u002du002d>|envía a| c2_app_layer c2_app_layer u002du002d>|utiliza| c2_encoding c2_encoding u002du002d>|transporta| exfiltration %% Apply classes class artifact_email_zip,artifact_lnk,artifact_bat artifact class attack_initial_access,attack_user_execution,defense_evasion_icon,execution_powershell,defense_evasion_obfusc,defense_evasion_sandbox,persistence_registry,persistence_task,discovery_system,discovery_process,collection_local,c2_app_layer,c2_encoding,exfiltration action class malware_rust_rat malware «

Flujo de Ataque

Ejecución de Simulación

Prerrequisito: La comprobación previa de telemetría y línea de base debe haber pasado.

Fundamento: Esta sección detalla la ejecución precisa de la técnica del adversario (TTP) destinada a 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. Ejemplos abstractos o no relacionados conducirán a un diagnóstico incorrecto.

  • Narrativa del Ataque y Comandos:

    1. Compromiso Inicial: El atacante envía un correo electrónico de spear-phishing con un .lnk acceso directo armado dirigido a un empleado judicial. El acceso directo apunta a un comando de PowerShell que se ejecuta con -ExecutionPolicy Bypass y una ventana oculta para evitar sospechas.

    2. Flujo de Ejecución: Cuando el usuario hace clic en el acceso directo, Windows ejecuta el siguiente comando, que inicia health-check.bat. El archivo por lotes contiene la carga útil real maliciosa (por ejemplo, un descargador de PowerShell que obtiene un RAT).

       powershell.exe -ep bypass -w hidden -f health-check.bat
    3. Entrega de Carga Útil: health-check.bat realiza un GET HTTP silencioso hacia un C2 malicioso, escribe la carga útil en %TEMP%y lo ejecuta.

  • Script de Prueba de Regresión: El siguiente script reproduce la telemetría exacta creando health-check.bat con contenido inofensivo (para mantener la prueba segura) y luego invocando el comando de PowerShell.

    # -------------------------------------------------
    # Script de Simulación – Ejecución de PowerShell de LNK Armado
    # -------------------------------------------------
    # 1. Crear un dummy health-check.bat (inofensivo para pruebas)
    $batPath = "$env:TEMPhealth-check.bat"
    Set-Content -Path $batPath -Value '@echo off & echo Ejecución de carga útil simulada' -Encoding ASCII
    
    # 2. Ejecutar PowerShell con las banderas exactas y el nombre de script
    $psCommand = "powershell.exe -ep bypass -w hidden -f `"$batPath`""
    Write-Host "Ejecutando: $psCommand"
    Start-Process -FilePath "powershell.exe" -ArgumentList "-ep", "bypass", "-w", "hidden", "-f", $batPath -NoNewWindow
    
    # 3. Esperar unos segundos para asegurarse de que se generen logs
    Start-Sleep -Seconds 5
    # -------------------------------------------------
  • Comandos de Limpieza: Eliminar el archivo batch de prueba y cualquier proceso restante.

    # Limpiar el dummy health-check.bat
    Remove-Item -Path "$env:TEMPhealth-check.bat" -ErrorAction SilentlyContinue
    
    # Asegurarse de que no quedan instancias de PowerShell de la prueba
    Get-Process -Name "powershell" -ErrorAction SilentlyContinue | Stop-Process -Force