Resumen ejecutivo

A principios de mayo de 2025, los investigadores de Unit 42 observaron que AdaptixC2 se utilizó para infectar varios sistemas.

AdaptixC2 es un marco de emulación adversaria y postexplotación de código abierto recientemente identificado, creado para los evaluadores de infiltraciones, que los actores de amenazas están utilizando en sus campañas. A diferencia de muchos marcos C2 conocidos, AdaptixC2 ha pasado prácticamente desapercibido. Hay poca documentación pública disponible que demuestre su uso en ataques reales. Nuestra investigación analiza lo que AdaptixC2 puede hacer, ayudando a los equipos de seguridad a defenderse contra él.

AdaptixC2 es un marco versátil para la explotación posterior. Los actores de amenazas lo utilizan para ejecutar comandos, transferir archivos y realizar la exfiltración de datos en sistemas comprometidos. Al ser de código abierto, los actores de amenazas pueden personalizarlo y adaptarlo fácilmente a sus objetivos específicos. Esto lo convierte en una herramienta muy flexible y peligrosa.

La aparición de AdaptixC2 como herramienta utilizada por los actores de amenazas pone de relieve una tendencia creciente entre los atacantes a utilizar marcos personalizables para evadir la detección.

Los clientes de Palo Alto Networks están mejor protegidos frente a las amenazas descritas en este artículo gracias a los siguientes productos:

Si cree que puede haber resultado vulnerado o tiene un problema urgente, póngase en contacto con el equipo de respuesta ante incidentes de Unit 42.

Temas relacionados con Unit 42 Pentesting Tools, C2

Análisis técnico del marco adversarial AdaptixC2

AdaptixC2 es un marco C2 de código abierto que recientemente hemos visto utilizado en varios ataques reales.

Identificamos dos infecciones por AdaptixC2. En un caso se utilizaron técnicas de ingeniería social. Consideramos muy probable que en el otro se utilizaran herramientas de generación de código basadas en IA.

Funcionalidad de AdaptixC2

AdaptixC2 es una herramienta de equipo rojo que se puede utilizar para realizar acciones adversarias y que se puede ampliar para personalizarla. Si esto fuera utilizado por un actor de amenazas, podría controlar de forma integral las máquinas afectadas para ejecutar una amplia gama de acciones. Estas incluyen:

  • Manipulación del sistema de archivos
  • Listado de directorios
  • Creación, modificación y eliminación de archivos y carpetas
  • Enumeración de procesos en ejecución
  • Terminación de aplicaciones específicas
  • Ejecución de nuevos programas

Los actores de amenazas utilizan estas capacidades para establecer y mantener un punto de apoyo en un entorno, explorar más a fondo el sistema comprometido y moverse lateralmente dentro de la red.

Para facilitar la comunicación encubierta y eludir las restricciones de red, el marco admite sofisticadas capacidades de tunelización, incluida la funcionalidad de proxy SOCKS4/5 y el reenvío de puertos. Esto permite a los atacantes mantener los canales de comunicación incluso si la red está muy protegida.

AdaptixC2 está diseñado para ser modular, y utiliza “extensores” que actúan como complementos tanto para los oyentes como para los agentes. Esto permite a los hackers crear cargas útiles personalizadas y formas de evitar la detección específicas para el sistema que están atacando. AdaptixC2 también es compatible con los archivos Beacon Object Files (BOF), que permiten a los atacantes ejecutar pequeños programas personalizados escritos en C directamente dentro del proceso del agente para evadir la detección.

Los agentes de baliza de AdaptixC2 están equipados con comandos específicos para transferir datos de forma rápida y secreta. Estos agentes son compatibles con las arquitecturas x86 y x64, y se pueden generar en varios formatos, entre los que se incluyen:

  • Ejecutables independientes (EXE)
  • Bibliotecas de vínculos dinámicos (DLL)
  • Ejecutables de servicio
  • Shellcode sin procesar

Los atacantes pueden utilizar el marco AdaptixC2 para robar datos de la red comprometida. Esta funcionalidad de exfiltración de datos permite configurar el tamaño de los fragmentos para la descarga y carga de archivos, ya que la detección basada en la red tiende a considerar los segmentos más pequeños como menos sospechosos.

La interfaz AdaptixC2 muestra los agentes y sesiones vinculados en una vista gráfica. En la Figura 1 se muestra la perspectiva de un atacante sobre cómo avanzan los ataques en varias etapas y qué rutas hay disponibles para moverse por una red objetivo.

Captura de pantalla del servidor AdaptixC2. En la interfaz se muestran varias ventanas de activos y scripts abiertas, así como una cadena de ataque representada mediante iconos de firewalls y computadoras.
Figura 1. Vista gráfica: servidor AdaptixC2. Fuente: AdaptixC2 GitHub.

AdaptixC2 también cuenta con funciones que ayudan al atacante a mantener la seguridad operativa (OpSec). Entre ellos se incluyen parámetros que los ayudan a mezclarse con el tráfico normal de la red:

  • KillDate: establece una fecha para que la baliza deje de funcionar.
  • WorkingTime: configura la baliza para que solo esté activa durante determinadas horas.

Además, los actores de amenazas pueden modificar y mejorar el agente con técnicas personalizadas de ofuscación, antianálisis y evasión, lo que lo convierte en una amenaza en constante evolución.

Configuración

​La configuración de AdaptixC2 está cifrada y admite tres tipos principales de balizas a través de estructuras de perfil especializadas:

  • BEACON_HTTP para la comunicación basada en web
  • BEACON_SMB para la comunicación mediante canalización con nombre
  • BEACON_TCP para conexiones TCP directas

El perfil HTTP es la variante de baliza más común y contiene parámetros típicos de comunicación web, tales como:

  • Servidores
  • Puertos
  • Configuración SSL
  • Métodos HTTP
  • URI
  • Encabezados
  • Cadenas de agente de usuario

El perfil SMB utiliza canalizaciones con nombre de Windows cuando HTTP puede estar bloqueado o supervisado. El perfil TCP se utiliza para crear conexiones directas de socket con la opción de anteponer datos para el ocultamiento básico del protocolo.

AdaptixC2 incluye una configuración predeterminada integrada que muestra los parámetros de implementación típicos. El perfil HTTP predeterminado apunta a 172.16.196.1:4443 y utiliza comunicación HTTPS, con un método POST al punto final /uri.php y el parámetro X-Beacon-Id para la identificación de balizas.

En la Figura 2 se muestra cómo configurar la baliza.

Captura de pantalla de la interfaz de configuración de Beacon, donde se muestran las pestañas de configuración principal, encabezados HTTP, página de error y carga útil. En la pestaña seleccionada se muestran los campos para configurar el host y el puerto, las direcciones de devolución de llamada, la clave SSL y otros ajustes de red.
Figura 2. Interfaz de usuario del generador HTTP Beacon. Fuente: Documentación de AdaptixC2.

Después de hacer clic en “Crear”, el generador de balizas cifra la configuración con RC4 y, a continuación, la integra en la baliza compilada. La configuración cifrada se almacena de la siguiente manera:

  • 4 bytes: Tamaño de la configuración (entero de 32 bits)
  • N bytes: Datos de configuración cifrados con RC4
  • 16 bytes: Clave de cifrado RC4

El siguiente código es la lógica de extracción de claves, tomada de AgentConfig.cpp:

Extracción de la configuración de muestras malintencionadas

Dado que el cifrado es sencillo y predecible, los defensores pueden desarrollar un extractor que extraiga automáticamente las configuraciones de las muestras. Esta herramienta de extracción debería funcionar de la misma manera que la baliza carga sus propias configuraciones.

El extractor localiza la configuración en la sección .rdata del archivo PE. A continuación, extrae el tamaño (los primeros cuatro bytes), el bloque de datos cifrados y la clave RC4 (los últimos 16 bytes). Después de utilizar la clave RC4 integrada para descifrar los datos, analiza la configuración del texto sin formato descomprimiendo los siguientes campos:

  • Tipo de agente
  • Indicador SSL
  • Número de servidores
  • Servidores/puertos
  • Parámetros HTTP
  • Ajustes de sincronización

Utilizando este método, hemos creado una herramienta capaz de procesar muestras AdaptixC2 y obtener sus configuraciones integradas. El código completo del extractor es compatible con la variante BEACON_HTTP. Esta herramienta se proporciona en la sección Ejemplo de extractor de configuración. Los investigadores pueden utilizar este extractor para analizar muestras de AdaptixC2 o adaptar el código para otras variantes.

A continuación se muestra la configuración predeterminada integrada de la baliza.

Escenarios de AdaptixC2

Situación 1: el falso servicio de asistencia técnica provoca la infección por AdaptixC2

En mayo de 2025, investigamos varios incidentes en los que los actores de amenazas instalaron balizas AdaptixC2. En algunos casos, observamos que los actores de amenazas utilizaban el mismo vector de ataque, como se muestra en la Figura 3.

Ilustración sobre el proceso 'Una llamada falsa al servicio de asistencia conduce a AdaptixC2'. La secuencia incluye: una llamada falsa al servicio de asistencia, una computadora que ejecuta Quick Assist, un archivo de script llamado update.ps1, la descarga de shellcode desde Google Drive, el descifrado y la carga de shellcode en la memoria, y una calavera dentro de un error que representa la baliza AdaptixC2.
Figura 3. Vector de ataque de la instalación de AdaptixC2 en el equipo de la víctima. Fuente: Publicación en X Unit 42.

Compromiso inicial

Los actores de amenazas se aprovecharon de la confianza en Microsoft Teams para engañar a las personas y que les dieran acceso a los sistemas de la empresa. En un caso, los atacantes utilizaron ataques de phishing para suplantar al personal de soporte informático (con asuntos como “Asistencia técnica (externa) | Microsoft Teams”). Esto convenció a los empleados para iniciar sesiones legítimas de asistencia remota mediante herramientas como Quick Assist Remote Monitoring and Management (RMM).

Los actores de amenazas suelen abusarde productos legítimos con fines malintencionados. Esto no implica necesariamente que el producto legítimo que se está utilizando indebidamente tenga algún defecto o sea malintencionado.

Informe global de respuesta ante incidentes de Unit 42 de 2025: La edición sobre ingeniería social señaló que las técnicas de ingeniería social como esta son el vector de acceso inicial más frecuente para los ataques que observamos. Este acceso inicial proporciona a los atacantes un punto de apoyo dentro del sistema objetivo, sin tener que eludir las defensas perimetrales, como los firewalls y los sistemas de detección de intrusiones.

Implementación y persistencia de AdaptixC2 mediante la ejecución de shellcode

Los atacantes implementaron la baliza AdaptixC2 con un cargador PowerShell de varias etapas que descarga una carga útil codificada y cifrada desde un enlace a un servicio legítimo.

Una vez descargado, el script de PowerShell descifra la carga útil mediante una clave XOR simple. En lugar de escribir la carga útil descifrada en el disco, lo que facilitaría su detección, el script aprovecha las capacidades de .NET para asignar memoria dentro del propio proceso de PowerShell. A continuación, el script copia la carga útil descifrada, que en realidad es shellcode, en esta región de memoria asignada. Este enfoque sin archivos reduce significativamente la huella del atacante en el sistema.

Captura de pantalla donde se muestra el código de un entorno de desarrollo de software, con texto principalmente en colores verde y blanco sobre un fondo oscuro. El código incluye varias funciones de programación y elementos sintácticos.
Figura 4. Script de PowerShell para descargar y ejecutar shellcode.

El script utiliza una técnica denominada “invocación dinámica” para ejecutar el shellcode directamente desde la memoria. Para ello, utiliza el método GetDelegateForFunctionPointer, que crea dinámicamente un delegado (un puntero de función seguro para el tipo) que apunta al comienzo del shellcode en la memoria. A continuación, el script llama a este delegado como si fuera una función normal, y ejecuta el shellcode de forma efectiva sin escribir un archivo ejecutable en el disco. Para garantizar que el proceso malicioso se inicie automáticamente después de reiniciar el sistema, el script crea un acceso directo en la carpeta de inicio. En la Figura 4 se muestra el script de PowerShell.

En una captura de pantalla se muestra un script de PowerShell sobre un fondo azul, que incluye comandos para crear un elemento de inicio en Windows y gestionar errores.
Figura 5. Script de PowerShell para instalar la baliza AdaptixC2.

La variante de la baliza cargada en este ataque tenía la siguiente configuración:

Actividad posterior a la explotación y contención

Después de la implementación exitosa de AdaptixC2, los atacantes empezaron a hacer reconocimiento, con herramientas de línea de comandos para juntar información sobre los sistemas y la red que habían sido comprometidos. Esto incluía comandos de detección como nltest.exe, whoami.exe e ipconfig.exe.

A continuación, la baliza estableció comunicación con un servidor remoto, lo que permitió a los actores de amenazas obtener C2 en la máquina infectada.

Situación 2: infección relacionada con un script generado por IA

En otro caso, los actores de amenazas implementaron un script de PowerShell diseñado para implementar balizas AdaptixC2. Evaluamos con un alto grado de confianza que este script fue generado por IA. Esta implementación se realizó tanto mediante la inyección de shellcode en memoria como a través de un mecanismo de persistencia basado en el secuestro de DLL. El script, que se muestra en la Figura 5, se centra en permanecer oculto en el sistema afectado para proporcionar a los hackers un punto de apoyo sólido.

Captura de pantalla de una pantalla de computadora donde se muestra código con resaltado de sintaxis. El código fue generado por IA.
Figura 6. Instalador de PowerShell generado por IA para AdaptixC2.

Análisis detallado del PowerShell generado por IA

  • Descarga y decodificación del shellcode: el script descarga una carga útil de shellcode codificada en Base64 desde un servidor remoto con el método Invoke-RestMethod. A continuación, se decodifica el contenido descargado.
  • Asignación de memoria, copia de shellcode y cambio de la protección de memoria: el script asigna un bloque de memoria no gestionada. A continuación, el shellcode AdaptixC2 se copia en la memoria asignada y cambia los atributos de protección de memoria de la región de memoria asignada mediante VirtualProtect a 0x40 (PAGE_EXECUTE_READWRITE). Esto permite la ejecución del shellcode.
  • Ejecución de shellcode mediante invocación dinámica: como en el caso anterior, el atacante utilizó GetDelegateForFunctionPointer para crear una instancia delegada que apunta al comienzo del shellcode en la memoria. A continuación, el atacante utilizó el método Invoke() para ejecutar el shellcode, lanzando la baliza en memoria.
  • Persistencia del secuestro de DLL: El script apunta al directorio APPDATA\Microsoft\Windows\Templates para el secuestro de DLL, a través del archivo msimg32.dll. Este DLL también es una versión de baliza.
  • Persistencia mediante la clave de ejecución del registro: El script crea una entrada de registro en la clave de ejecución denominada "Updater", con un comando PowerShell que ejecuta el script loader.ps1. Esto garantiza que el script loader.ps1 se ejecute cada vez que el usuario inicie sesión, para ejecutar la baliza.

Generación de scripts con IA

La estructura y composición de este script de PowerShell sugiere claramente que el atacante utilizó generación asistida por IA. Los siguientes elementos estilísticos se observan comúnmente en el código generado por herramientas de IA:

  • Comentarios detallados y numerados:
    • "# === [1] Descargar y decodificar el shellcode ==="
  • Iconos de marca de verificación en el mensaje de salida:
    • Escribir salida "[✔] Persistencia establecida mediante la clave Run y secuestro de DLL. DLL colocada en $templatesPath"

Evaluamos con un alto grado de confianza que el código se generó con la ayuda de la IA. Esto se basa en los factores anteriores, así como en las pruebas recopiladas del servidor del atacante y los resultados extraídos de dos detectores de IA independientes.

Las herramientas de IA sin las medidas de seguridad adecuadas pueden permitir a los atacantes desarrollar rápidamente código malintencionado, lo que facilita la ejecución de operaciones en redes infectadas.

Similitudes entre los casos

En ambos incidentes se observó un patrón constante:

  • Cargadores basados en PowerShell
    • Los actores de amenazas utilizaron estos cargadores para implementar la baliza AdaptixC2, dando prioridad al acceso sigiloso y persistente.
  • Descargar una carga útil desde un servidor remoto y ejecutarla en la memoria.
    • El uso de un recurso legítimo ayudó a los atacantes a pasar desapercibidos, al minimizar los rastros detectables en el disco.
  • Basándose en las capacidades de .NET para la asignación de memoria y la invocación dinámica.
    • Los actores de amenazas aprovecharon las funcionalidades integradas del sistema, como el método GetDelegateForFunctionPointer, para ejecutar shellcode, con el fin de ganar en eficiencia y sigilo.
  • Prevención de la eliminación de balizas mediante mecanismos de persistencia
    • Mientras que el primer script dependía únicamente de un acceso directo en la carpeta de inicio para su persistencia, el segundo añadía el secuestro de DLL.
    • Esto proporciona a los atacantes más formas de permanecer en el sistema comprometido.
  • Uso de convenciones de nomenclatura similares para script y claves de ejecución
    • En un caso, los atacantes denominaron el script malicioso update.ps1. En otro, la clave de ejecución para la persistencia se denominó Updater.
    • Esta denominación ayuda a que los scripts y las claves se mezclen con los procesos legítimos del sistema.

Aumento de la prevalencia del marco AdaptixC2

Nuestra telemetría e inteligencia de amenazas muestran que AdaptixC2 se está volviendo más común. Seguimos identificando nuevos servidores AdaptixC2, lo que sugiere que más actores de amenazas están adoptando este marco como parte de su kit de herramientas de ataque.

Esta tendencia va más allá de las situaciones típicas posteriores a la explotación. Por ejemplo, los atacantes implementaron el ransomware Fog junto con AdaptixC2 en un reciente ataque a una institución financiera en Asia. Esto demuestra que AdaptixC2 es versátil y puede utilizarse con otras herramientas malintencionadas, como el ransomware, para alcanzar objetivos más amplios.

Conclusión

AdaptixC2 es una amenaza adaptable, como lo demuestra su creciente popularidad entre los actores de amenazas y la complejidad de sus técnicas de implementación. La modularidad del marco, combinada con el potencial de la generación de código asistida por IA, podría permitir a los actores de amenazas evolucionar rápidamente sus tácticas. Los equipos de seguridad deben permanecer al tanto de las capacidades de AdaptixC2 y adaptar de forma proactiva sus defensas para contrarrestar esta amenaza.

Los clientes de Palo Alto Networks están mejor protegidos frente a las amenazas mencionadas gracias a los siguientes productos y servicios:

  • URL Filtering avanzado y Seguridad DNS avanzada identifican como malintencionados los dominios y URL conocidos asociados con esta actividad.
  • La prevención de amenazas avanzada cuenta con una detección integrada basada en aprendizaje automático que puede detectar exploits en tiempo real.
  • Los modelos de aprendizaje automático y las técnicas de análisis de Advanced WildFire se han revisado y actualizado a la luz de los indicadores compartidos en esta investigación.
  • Cortex XDR y XSIAM ayudan a prevenir el malware mediante el uso del motor de prevención de malware. Este enfoque combina varias capas de protección diseñadas para evitar que el malware conocido y desconocido cause daños a sus endpoints. Las técnicas de mitigación que emplea el motor de prevención de malware varían según el tipo de endpoint.

Si cree que puede haber resultado vulnerado o tiene un problema urgente, póngase en contacto con el equipo de respuesta ante incidentes de Unit 42 o llame al:

  • Norteamérica: llamada gratuita: +1 (866) 486-4842 (866.4.UNIT42)
  • Reino Unido: +44.20.3743.3660
  • Europa y Oriente Medio: +31.20.299.3130
  • Asia: +65.6983.8730
  • Japón: +81.50.1790.0200
  • Australia: +61.2.4062.7950
  • India: 00080005045107

Palo Alto Networks ha compartido estos resultados con nuestros compañeros de Cyber Threat Alliance (CTA). Los miembros de CTA utilizan esta inteligencia para implementar rápidamente medidas de protección para sus clientes y desarticular sistemáticamente a los ciberdelincuentes. Obtenga más información sobre Cyber Threat Alliance.

Indicadores de vulneración

Valor Tipo Descripción
bdb1b9e37f6467b5f98d151a43f280f319bacf18198b22f55722292a832933ab SHA256 Script de PowerShell que instala una baliza AdaptixC2
83AC38FB389A56A6BD5EB39ABF2AD81FAB84A7382DA296A855F62F3CDD9D629D SHA256 Script de PowerShell que instala una baliza AdaptixC2
19c174f74b9de744502cdf47512ff10bba58248aa79a872ad64c23398e19580b SHA256 Script de PowerShell que instala una baliza AdaptixC2
750b29ca6d52a55d0ba8f13e297244ee8d1b96066a9944f4aac88598ae000f41 SHA256 Script de PowerShell que instala una baliza AdaptixC2
b81aa37867f0ec772951ac30a5616db4d23ea49f7fd1a07bb1f1f45e304fc625 SHA256 Baliza AdaptixC2 como DLL
df0d4ba2e0799f337daac2b0ad7a64d80b7bcd68b7b57d2a26e47b2f520cc260 SHA256 Baliza AdaptixC2 como EXE
AD96A3DAB7F201DD7C9938DCF70D6921849F92C1A20A84A28B28D11F40F0FB06 SHA256 Shellcode que instala la baliza AdaptixC2
tech-system[.]online Dominio Dominio AdaptixC2
protoflint[.]com Dominio Dominio AdaptixC2
novelumbsasa[.]art Dominio Dominio AdaptixC2
picasosoftai[.]shop Dominio Dominio AdaptixC2
dtt.alux[.]cc Dominio Dominio AdaptixC2
moldostonesupplies[.]pro Dominio Dominio AdaptixC2
x6iye[.]site Dominio Dominio AdaptixC2
buenohuy[.]live Dominio Dominio AdaptixC2
firetrue[.]live Dominio Dominio AdaptixC2
lokipoki[.]live Dominio Dominio AdaptixC2
veryspec[.]live Dominio Dominio AdaptixC2
mautau[.]live Dominio Dominio AdaptixC2
muatay[.]live Dominio Dominio AdaptixC2
nicepliced[.]live Dominio Dominio AdaptixC2
nissi[.]bg Dominio Dominio AdaptixC2
express1solutions[.]com Dominio Dominio AdaptixC2
iorestore[.]com Dominio Dominio AdaptixC2
doamin[.]cc Dominio Dominio AdaptixC2
regonalone[.]com Dominio Dominio AdaptixC2

Reglas de Yara

Los defensores pueden utilizar estas reglas de Yara para comprobar la presencia de balizas AdaptixC2 en las máquinas.

Baliza AdaptixC2 HTTP/SMB/TCP

Baliza AdaptixC2 Go

AdaptixC2 Go Beacon

Cargador AdaptixC2

Normas de caza

  • Descripción de la consulta: La siguiente consulta XQL busca actividades de phishing realizadas a través de la aplicación Teams que conducen a la ejecución de RMM. Estos atributos suelen ser el objetivo de los atacantes para implementar balizas AdaptixC2.
  • Notas de la investigación: Comience por comprobar el título de la sesión de usuario. Busque la ejecución de la herramienta RMM y la creación de procesos secundarios o archivos mediante la herramienta RMM. Busque alertas o ejecuciones sospechosas, como cmd o PowerShell, por parte del usuario comprometido (actor_effective_username).

Ejemplo de extractor de configuración

El siguiente código es un ejemplo de un extractor de configuraciones que extrae configuraciones de archivos de balizas HTTP.

Recursos adicionales

Enlarged Image