PyStoreRAT: Malware impulsado por inteligencia artificial que apunta a profesionales de TI y OSINT
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Morphisec descubrió una operación coordinada de malware que abusa de cuentas inactivas de GitHub para alojar repositorios generados por IA, que finalmente entregan una puerta trasera de JavaScript/HTA denominada PyStoreRAT. El cargador perfila el host, despliega múltiples cargas útiles incluyendo el ladrón Rhadamanthys, y ajusta dinámicamente su comportamiento cuando se detectan soluciones AV específicas. Puede propagarse mediante medios extraíbles y depende de una infraestructura C2 rotativa para refrescar sus módulos. La campaña está dirigida a administradores de TI, analistas de seguridad y profesionales de OSINT en todo el mundo.
Investigación
Los investigadores examinaron los proyectos maliciosos de GitHub, aislaron los componentes de la puerta trasera y documentaron toda la cadena de ejecución, incluyendo el perfilado del sistema, la entrega escalonada de cargas útiles, la evasión de AV, la propagación mediante unidades extraíbles y la carga de módulos bajo demanda. El informe describe además la arquitectura circular de nodo C2 que mejora la resiliencia, así como el uso de cadenas en ruso para validar la localidad del objetivo. El análisis vincula el cargador al ladrón Rhadamanthys y destaca su capacidad de alterar las rutas de lanzamiento.
Mitigación
Morphisec aconseja usar Defensa de Objetivo Móvil Automática para desestabilizar el entorno de ejecución del cargador, bloquear rutas de ejecución no fiables y detener el despliegue de cargas útiles. Debido a que los controles basados en firmas tradicionales son ineficaces, los defensores deben confiar en protecciones basadas en el comportamiento y en la virtualización. También se recomienda restringir la ejecución de scripts de orígenes no confiables y monitorear de cerca la actividad de unidades extraíbles.
Respuesta
Cuando se identifica actividad de PyStoreRAT, aísle inmediatamente el punto final afectado, termine el proceso de la puerta trasera y elimine cualquier módulo persistente. Realice un análisis forense para recopilar IOCs, incluyendo dominios C2, hashes de archivos y tareas programadas. Parchee el software vulnerable, imponga políticas estrictas de ejecución de privilegios mínimos y monitoree continuamente GitHub en busca de actividad sospechosa o maliciosa en los repositorios.
«graph TB %% Class Definitions classDef technique fill:#99ccff %% Node definitions technique_supply_chain[«<b>Técnica</b> – <b>T1195.002 Compromiso de la Cadena de Suministro</b><br/><b>Descripción</b>: Comprometer un repositorio público de GitHub para inyectar código malicioso en los proyectos que clonan las víctimas.<br/><b>Subu2011técnica</b>: Repositorios de GitHub maliciosos»] class technique_supply_chain technique technique_user_exec[«<b>Técnica</b> – <b>T1204 Ejecución del Usuario</b><br/><b>Descripción</b>: La víctima ejecuta el proyecto generado por IA que contiene la carga maliciosa»] class technique_user_exec technique technique_obfuscation[«<b>Técnica</b> – <b>T1027 Archivos o Información Ofuscados</b><br/><b>Subu2011técnica</b>: T1027.009 Cargas Incrustadas<br/><b>Descripción</b>: La carga está oculta dentro de archivos legítimos para evadir la detección»] class technique_obfuscation technique technique_system_info[«<b>Técnica</b> – <b>T1082 Descubrimiento de Información del Sistema</b><br/><b>Descripción</b>: Recopilar información del sistema operativo, detalles del hardware y otra información del host»] class technique_system_info technique technique_software_disc[«<b>Técnica</b> – <b>T1518 Descubrimiento de Software</b><br/><b>Descripción</b>: Enumerar aplicaciones instaladas y versiones de software»] class technique_software_disc technique technique_c2_https[«<b>Técnica</b> – <b>T1071.001 Protocolos Web</b><br/><b>Descripción</b>: Establecer comunicaciones de mando y control a través de HTTPS»] class technique_c2_https technique technique_removable_media[«<b>Técnica</b> – <b>T1092 Comunicación a Través de Medios Extraíbles</b><br/><b>Descripción</b>: Propagar la carga maliciosa a sistemas adicionales a través de unidades USB»] class technique_removable_media technique %% Connections technique_supply_chain u002du002d>|lleva_a| technique_user_exec technique_user_exec u002du002d>|lleva_a| technique_obfuscation technique_obfuscation u002du002d>|lleva_a| technique_system_info technique_system_info u002du002d>|lleva_a| technique_software_disc technique_software_disc u002du002d>|lleva_a| technique_c2_https technique_c2_https u002du002d>|lleva_a| technique_removable_media «
Flujo de Ataque
Detecciones
Comportamiento Sugerente de Evasión de Defensa LOLBAS MSHTA por Detección de Comandos Asociados (vía process_creation)
Ver
Tarea Programada Sospechosa (vía auditoría)
Ver
Comando y Control Sospechoso por Solicitud DNS de Dominio de Nivel Superior (TLD) Inusual (vía dns)
Ver
Ejecución de Python desde Carpetas Sospechosas (vía cmdline)
Ver
Ejecución Sospechosa de Mshta Sin Archivo HTA (vía cmdline)
Ver
Detección de PyStoreRAT Usando Infraestructura C2 Circular, Rotativa y Descarga de Módulos Dinámicos [Conexión de Red Windows]
Ver
Detección de Reactivación de Cuenta Dormante de GitHub para Proyectos Maliciosos [GitHub – Servidor Web]
Ver
Ejecución de Simulación
Prerequisito: The Telemetry & Baseline Pre‑flight Check must have passed.
-
Narrativa de Ataque y Comandos:
- Reactivar una cuenta inactiva – el adversario usa la interfaz de usuario o API de GitHub para cambiar el estado de la cuenta de “inactiva” a “activa”.
- Publicar un repositorio malicioso generado por IA – inmediatamente después de la reactivación, se crea un nuevo repositorio llamado
ai‑osint‑toolkitse crea, que contiene un README que promociona “proyectos generados por IA”. - Añadir un commit de “mantenimiento” que incrusta la puerta trasera PyStoreRAT; el mensaje del commit intencionalmente incluye la palabra “mantenimiento” para satisfacer la regla de detección.
- Empujar el código malicioso – la subida genera un
evento de auditoría de push, pero la regla que estamos probando solo observa laentrada de auditoría de reactivación de cuenta, por lo que el disparador principal es el registro de reactivación con la descripción marcada.
-
Script de Prueba de Regresión: (Bash usando GitHub CLI
gh– se asume que el actor atacante tiene un token de acceso personal conadministrador:orgámbito)# simulate_attack.sh # Prerequisitos: gh CLI instalado y autenticado como el atacante # 1. Reactivar cuenta inactiva (simulado actualizando un campo de usuario) gh api -X PATCH /admin/users/attacker_user -f state=active -f note="reactivación: proyectos generados por IA; commits de mantenimiento programados" # 2. Crear repositorio malicioso gh repo create attacker_user/ai-osint-toolkit --public --description "Herramientas OSINT generadas por IA" # 3. Añadir archivo malicioso (PyStoreRAT) y hacer commit cd ai-osint-toolkit echo "# PyStoreRAT backdoor" > pystorerat.py git add pystorerat.py git commit -m "Commit inicial - commits de mantenimiento: incrustar puerta trasera" git push origin main # 4. Opcional: crear un segundo commit de mantenimiento para imitar la actividad del mundo real echo "# Actualizar README" >> README.md git add README.md git commit -m "commit de mantenimiento: actualizar documentación" git push origin main -
Comandos de Limpieza:
# cleanup_attack.sh # Borrar el repositorio malicioso gh repo delete attacker_user/ai-osint-toolkit -y # Opcionalmente, establecer la cuenta del atacante de nuevo a inactiva (si la API lo permite) gh api -X PATCH /admin/users/attacker_user -f state=dormant