El tradecraft potenciado por IA está cambiando el panorama de amenazas en el que han operado los defensores.
Durante años, los defensores se han basado en identificar las firmas y los comportamientos de herramientas ofensivas listas para usar, como BloodHound, PowerSploit o Cobalt Strike. Pero está surgiendo una nueva tendencia: el malware "vibe coded", y esto está cambiando cómo operan los panoramas de ataque y detección.
El vibe coding es el proceso de escribir software no tecleando sintaxis manualmente, sino indicándole a la IA, de forma iterativa y en lenguaje natural, hasta que el resultado coincida con la función deseada. Esto les ha dado a actores de amenazas mediocres la capacidad de generar scripts personalizados de un solo uso.
Hace poco tuvimos una mirada de primera mano de esto cuando recuperamos un script de PowerShell que un actor de amenazas usó como parte de un incidente el 3 de junio. Un análisis profundo de su contenido revela un caso de estudio fascinante sobre cómo los cibercriminales están usando la IA como arma para mapear entornos de Active Directory (AD).
En este blog, ofrecemos un desglose del script, por qué es innegablemente generado por IA y qué significa esto para el futuro de la detección de amenazas.
La cadena de ataque con un giro asistido por IA
Algo que hay que destacar aquí es que la IA no está cambiando las reglas del juego en este incidente. La cadena de ataque subyacente sigue pareciéndose al manual probado de "entrar, robar y salir" que hemos visto durante años. Esta metodología central se ha mantenido constante, pero ahora se complementa selectivamente con IA. Este enfoque híbrido prioriza la agresión y la velocidad por encima del sigilo, lo que les permite a los actores de amenazas ejecutar campañas muy dañinas más rápido que nunca.
El pivote por RDP: El ataque comenzó cuando el actor de amenazas estableció acceso por RDP (el contexto sugirió acceso inicial a través de la VPN) a un Windows Server unido al dominio, usando un conjunto de credenciales previamente comprometidas.
La preparación de herramientas: Operando mediante símbolos del sistema interactivos, el atacante preparó sus operaciones y herramientas en (C:\ProgramData\), un área de preparación que suele usarse con fines maliciosos.
El reconocimiento hecho con vibe coding: A los pocos minutos de establecer la sesión de RDP, el atacante colocó y ejecutó su payload personalizado generado por IA (C:\ProgramData\Untitled1.ps1). Este fue su primer movimiento, para mapear el entorno de Active Directory.
El robo rápido: Aproximadamente media hora después, implementaron C:\ProgramData\s5cmd.exe. s5cmd es una herramienta legítima de línea de comandos de alta velocidad para operaciones de Amazon S3, que hemos visto usada con frecuencia de forma indebida para la exfiltración de datos.
El segundo mordisco: Después de asegurar el payload inicial del servidor comprometido, el atacante volvió a la carga. Implementaron SharpShares.exe, una herramienta de enumeración conocida, filtrando deliberadamente los recursos compartidos administrativos comunes para buscar más repositorios de datos accesibles para los usuarios.
Durante la investigación del incidente, identificamos y recreamos por completo Untitled1.ps1 usando telemetría de Huntress SIEM: el Event ID 4104 en Microsoft-Windows-PowerShell/Operational, que contiene bloques de scripts de PowerShell que se han implementado.
Esto es lo que encontramos (y para quienes quieran seguirlo por su cuenta, pueden encontrar el script completo en:
Anatomía de la herramienta de reconocimiento generada por IA
El script, titulado con entusiasmo "100% Working AD Information Gathering Script - FULLY FIXED", es una herramienta de enumeración de AD personalizada, muy agresiva y ruidosa. No intenta ocultar sus funciones y tiene varias fases distintas e interesantes.
La fase de descubrimiento de "probar de todo"
El script comienza intentando identificar el dominio y el controlador de dominio principal. En lugar de usar un único método robusto, el script utiliza un mecanismo de respaldo en cascada de cinco pasos, demasiado complejo. Prueba con DNS, nltest, el módulo de AD y variables de entorno antes de finalmente recurrir a un respaldo codificado de forma fija.
Figura 1: Extracto del script con una identificación de controlador de dominio demasiado compleja
Recolección de datos repetitiva
Una vez que se localiza el DC, el script inicia una rutina de recolección de datos masiva. Usa bloques try/catch muy estructurados y repetitivos para volcar sistemáticamente usuarios, equipos, grupos, OU y relaciones de confianza de AD en un directorio de preparación recién creado.
Este script tiene un enfoque estético, resaltando texto en la línea de comandos para el operador (más sobre esto después).
Figura 2: Extracto del script con la recolección de enumeración y la salida guardada en CSV
Preparación pulida para la exfiltración
La fase final del script se enfoca, sorprendentemente, en la presentación. En lugar de simplemente comprimir los archivos CSV y salir, escribe un archivo HTML completo para resumir el robo de datos.
¿Por qué necesitaría un actor de amenazas un informe HTML tan elaborado? Nosotros nos hicimos la misma pregunta. Es probable que sea una inyección "útil" del LLM que el atacante simplemente aceptó, en lugar de haber sido escrita de forma intencional en el script.
Figura 3: Extracto del script con la creación del informe HTML
Figura 4: Ejemplo del informe HTML resultante
A lo largo del script, se crean los siguientes elementos:
Crea el directorio C:\AD_Reports_<datetime>
Crea los siguientes archivos: AD_Users.csv, AD_Computers.csv, AD_Groups.csv, AD_OUs.csv, AD_Subnets.csv, AD_Trusts.csv, AD_Users_With_Email.csv, AD_Simple_Users.csv, DNS_Subnets.txt
Crea un AD_Report.html, que muestra qué tan exitosa fue la enumeración
Comprime toda la carpeta en C:\AD_Reports_<datetime>.zip
Figura 5: Script del atacante implementado en laboratorio
Las pruebas irrefutables: evidencia de generación por IA
La estructura interna contiene varios rasgos distintivos de la generación por LLM:
El título de "iteración de prompt"
Figura 6: Extracto del título del script
Este es un artefacto clásico de la ingeniería de prompts. Sugiere con fuerza que el atacante tuvo una conversación de ida y vuelta con un LLM, encontró errores, los pegó de nuevo en el chat y finalmente copió la versión "totalmente corregida".
El marcador de posición literal
La evidencia más evidente se encuentra en el bloque de respaldo de descubrimiento de DC:
Figura 7: Extracto de la plantilla predefinida sin editar
Este es un marcador de posición literal del LLM. La IA generó el script a partir de un prompt específico, que incluía un nombre de servidor de ejemplo, y el atacante copió y pegó el código a ciegas sin actualizar la variable.
Sobreingeniería y código predefinido
Los cinco métodos distintos para encontrar un controlador de dominio gritan "generación por IA". Una persona que escribiera este script normalmente elegiría el mejor método o dos. Un LLM, cuando se le indica "asegúrate de que no falle al encontrar el DC", genera exhaustivamente todos los métodos de sus datos de entrenamiento.
Enfoque estético
A los LLM les encanta hacer que la salida de la consola se vea bonita (lo mismo podría decirse de mí, para ser justos, pero no soy una IA). El uso excesivo de salidas en cian, verde, rojo y amarillo con Write-Host (como se ve en los fragmentos anteriores) es un rasgo común de una IA que intenta ser "útil" con quien escribió el prompt.
Implicaciones para la detección en un mundo de código generado por IA
La transición de frameworks listos para usar a herramientas de IA personalizadas y caseras representa un reto importante para los equipos de defensa.
Históricamente, los antivirus y las plataformas EDR se han basado en gran medida en hashes de archivos y firmas de cadenas estáticas. Si un atacante despliega SharpHound, las herramientas de seguridad reconocen el binario al instante. Sin embargo, los scripts generados con IA son inherentemente únicos. Untitled1.ps1 nunca ha existido antes y probablemente nunca se compilará de nuevo en esta configuración exacta.
Los defensores deben enfocarse en los comportamientos fundamentales del ciclo de vida del ataque. La IA puede cambiar la sintaxis del código, pero no puede cambiar fácilmente la mecánica subyacente de la enumeración de Active Directory.
Por suerte, el SIEM de Huntress tiene la visibilidad necesaria para detectar las tácticas de IA en evolución. Aunque la IA puede generar fácilmente nuevos scripts para vencer las heurísticas tradicionales de coincidencia de hashes, no puede ocultar la huella operativa necesaria para interactuar realmente con el sistema operativo.
Figura 8: Extracto del SIEM de Huntress identificando la táctica desplegada
Conclusión
El "vibe coding" reduce la barrera de entrada al cibercrimen, permitiendo que actores poco sofisticados generen herramientas altamente capaces y evasivas sobre la marcha. Aunque el código en sí puede ser desordenado, sobreingenierizado y estar lleno de rasgos de IA como comentarios olvidados, la amenaza que representa es muy real. Para combatir esto, los defensores deben abandonar el pensamiento rígido basado en firmas y adoptar análisis de comportamiento para detectar las acciones subyacentes que ningún LLM puede ocultar.