{"id":157437,"date":"2025-09-10T09:24:27","date_gmt":"2025-09-10T16:24:27","guid":{"rendered":"https:\/\/unit42.paloaltonetworks.com\/?p=157437"},"modified":"2025-09-16T10:25:01","modified_gmt":"2025-09-16T17:25:01","slug":"adaptixc2-post-exploitation-framework","status":"publish","type":"post","link":"https:\/\/unit42.paloaltonetworks.com\/es-la\/adaptixc2-post-exploitation-framework\/","title":{"rendered":"AdaptixC2: un nuevo marco de c\u00f3digo abierto utilizado en ataques reales"},"content":{"rendered":"<h2><a id=\"post-157437-_heading=h.hqudjg70a206\"><\/a>Resumen ejecutivo<\/h2>\n<p>A principios de mayo de 2025, los investigadores de Unit 42 observaron que AdaptixC2 se utiliz\u00f3 para infectar varios sistemas.<\/p>\n<p>AdaptixC2 es un marco de emulaci\u00f3n adversaria y postexplotaci\u00f3n de c\u00f3digo abierto recientemente identificado, creado para los evaluadores de infiltraciones, que los actores de amenazas est\u00e1n utilizando en sus campa\u00f1as. A diferencia de muchos marcos C2 conocidos, AdaptixC2 ha pasado pr\u00e1cticamente desapercibido. Hay poca documentaci\u00f3n p\u00fablica disponible que demuestre su uso en ataques reales. Nuestra investigaci\u00f3n analiza lo que AdaptixC2 puede hacer, ayudando a los equipos de seguridad a defenderse contra \u00e9l.<\/p>\n<p>AdaptixC2 es un marco vers\u00e1til para la explotaci\u00f3n posterior. Los actores de amenazas lo utilizan para ejecutar comandos, transferir archivos y realizar la exfiltraci\u00f3n de datos en sistemas comprometidos. Al ser de c\u00f3digo abierto, los actores de amenazas pueden personalizarlo y adaptarlo f\u00e1cilmente a sus objetivos espec\u00edficos. Esto lo convierte en una herramienta muy flexible y peligrosa.<\/p>\n<p>La aparici\u00f3n 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\u00f3n.<\/p>\n<p>Los clientes de Palo Alto Networks est\u00e1n mejor protegidos frente a las amenazas descritas en este art\u00edculo gracias a los siguientes productos:<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.paloaltonetworks.com\/dns-security\" target=\"_blank\" rel=\"noopener\">Seguridad DNS avanzada<\/a><\/li>\n<li><a href=\"https:\/\/docs.paloaltonetworks.com\/advanced-threat-prevention\/administration\" target=\"_blank\" rel=\"noopener\">Prevenci\u00f3n de amenazas avanzada<\/a><\/li>\n<li><a href=\"https:\/\/docs.paloaltonetworks.com\/advanced-url-filtering\/administration\" target=\"_blank\" rel=\"noopener\">URL Filtering avanzado<\/a><\/li>\n<li><a href=\"https:\/\/docs.paloaltonetworks.com\/wildfire\" target=\"_blank\" rel=\"noopener\">WildFire avanzado<\/a><\/li>\n<li><a href=\"https:\/\/docs-cortex.paloaltonetworks.com\/p\/XDR\" target=\"_blank\" rel=\"noopener\">Cortex XDR<\/a> y <a href=\"https:\/\/docs-cortex.paloaltonetworks.com\/p\/XSIAM\" target=\"_blank\" rel=\"noopener\">XSIAM<\/a><\/li>\n<\/ul>\n<p>Si cree que puede haber resultado vulnerado o tiene un problema urgente, p\u00f3ngase en contacto con el equipo de respuesta ante incidentes de <a href=\"https:\/\/start.paloaltonetworks.com\/contact-unit42.html\" target=\"_blank\" rel=\"noopener\">Unit\u00a042<\/a>.<\/p>\n<table style=\"width: 100.756%;\">\n<thead>\n<tr>\n<td style=\"width: 35%;\"><b>Temas relacionados con Unit\u00a042<\/b><\/td>\n<td style=\"width: 198.04%;\"><a href=\"https:\/\/unit42.paloaltonetworks.com\/es-la\/tag\/pentest-tool-es-la\/\" target=\"_blank\" rel=\"noopener\"><b>Pentesting Tools<\/b><\/a>, <strong><a href=\"https:\/\/unit42.paloaltonetworks.com\/es-la\/tag\/c2-es-la\/\" target=\"_blank\" rel=\"noopener\">C2<\/a><\/strong><\/td>\n<\/tr>\n<\/thead>\n<\/table>\n<h2><a id=\"post-157437-_heading=h.koy2oaxhx0r5\"><\/a>An\u00e1lisis t\u00e9cnico del marco adversarial AdaptixC2<\/h2>\n<p>AdaptixC2 es un marco C2 de c\u00f3digo abierto que recientemente hemos visto utilizado en varios ataques reales.<\/p>\n<p>Identificamos dos infecciones por AdaptixC2. En un caso se utilizaron t\u00e9cnicas de ingenier\u00eda social. Consideramos muy probable que en el otro se utilizaran herramientas de generaci\u00f3n de c\u00f3digo basadas en IA.<\/p>\n<h3><a id=\"post-157437-_heading=h.93cesim7iogc\"><\/a><strong>Funcionalidad de AdaptixC2<\/strong><\/h3>\n<p>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\u00eda controlar de forma integral las m\u00e1quinas afectadas para ejecutar <a href=\"https:\/\/adaptix-framework.gitbook.io\/adaptix-framework\/extenders\/agents\/beacon#commands\" target=\"_blank\" rel=\"noopener\">una amplia gama de acciones<\/a>. Estas incluyen:<\/p>\n<ul>\n<li>Manipulaci\u00f3n del sistema de archivos<\/li>\n<li>Listado de directorios<\/li>\n<li>Creaci\u00f3n, modificaci\u00f3n y eliminaci\u00f3n de archivos y carpetas<\/li>\n<li>Enumeraci\u00f3n de procesos en ejecuci\u00f3n<\/li>\n<li>Terminaci\u00f3n de aplicaciones espec\u00edficas<\/li>\n<li>Ejecuci\u00f3n de nuevos programas<\/li>\n<\/ul>\n<p>Los actores de amenazas utilizan estas capacidades para establecer y mantener un punto de apoyo en un entorno, explorar m\u00e1s a fondo el sistema comprometido y moverse lateralmente dentro de la red.<\/p>\n<p>Para facilitar la comunicaci\u00f3n encubierta y eludir las restricciones de red, el marco admite sofisticadas capacidades de tunelizaci\u00f3n, incluida la funcionalidad de proxy SOCKS4\/5 y el reenv\u00edo de puertos. Esto permite a los atacantes mantener los canales de comunicaci\u00f3n incluso si la red est\u00e1 muy protegida.<\/p>\n<p>AdaptixC2 est\u00e1 dise\u00f1ado para ser modular, y utiliza \u201cextensores\u201d que act\u00faan como complementos tanto para los oyentes como para los agentes. Esto permite a los hackers crear cargas \u00fatiles personalizadas y formas de evitar la detecci\u00f3n espec\u00edficas para el sistema que est\u00e1n atacando. AdaptixC2 tambi\u00e9n es compatible con los archivos Beacon Object Files (BOF), que permiten a los atacantes ejecutar peque\u00f1os programas personalizados escritos en C directamente dentro del proceso del agente para evadir la detecci\u00f3n.<\/p>\n<p>Los agentes de baliza de AdaptixC2 est\u00e1n equipados con comandos espec\u00edficos para transferir datos de forma r\u00e1pida y secreta. Estos agentes son compatibles con las arquitecturas x86 y x64, y se pueden generar en varios formatos, entre los que se incluyen:<\/p>\n<ul>\n<li>Ejecutables independientes (EXE)<\/li>\n<li>Bibliotecas de v\u00ednculos din\u00e1micos (DLL)<\/li>\n<li>Ejecutables de servicio<\/li>\n<li>Shellcode sin procesar<\/li>\n<\/ul>\n<p>Los atacantes pueden utilizar el marco AdaptixC2 para robar datos de la red comprometida. Esta funcionalidad de exfiltraci\u00f3n de datos permite configurar el tama\u00f1o de los fragmentos para la descarga y carga de archivos, ya que la detecci\u00f3n basada en la red tiende a considerar los segmentos m\u00e1s peque\u00f1os como menos sospechosos.<\/p>\n<p>La interfaz AdaptixC2 muestra los agentes y sesiones vinculados en una vista gr\u00e1fica. En la Figura 1 se muestra la perspectiva de un atacante sobre c\u00f3mo avanzan los ataques en varias etapas y qu\u00e9 rutas hay disponibles para moverse por una red objetivo.<\/p>\n<figure id=\"attachment_157438\" aria-describedby=\"caption-attachment-157438\" style=\"width: 1000px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-157438 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-519367-157437-1.png\" alt=\"Captura de pantalla del servidor AdaptixC2. En la interfaz se muestran varias ventanas de activos y scripts abiertas, as\u00ed como una cadena de ataque representada mediante iconos de firewalls y computadoras. \" width=\"1000\" height=\"628\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-519367-157437-1.png 2048w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-519367-157437-1-700x440.png 700w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-519367-157437-1-1114x700.png 1114w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-519367-157437-1-768x483.png 768w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-519367-157437-1-1536x965.png 1536w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><figcaption id=\"caption-attachment-157438\" class=\"wp-caption-text\">Figura\u00a01. Vista gr\u00e1fica: servidor AdaptixC2. Fuente: <a href=\"https:\/\/github.com\/Adaptix-Framework\/AdaptixC2\" target=\"_blank\" rel=\"noopener\">AdaptixC2 GitHub<\/a>.<\/figcaption><\/figure>\n<p>AdaptixC2 tambi\u00e9n cuenta con funciones que ayudan al atacante a mantener la seguridad operativa (OpSec). Entre ellos se incluyen par\u00e1metros que los ayudan a mezclarse con el tr\u00e1fico normal de la red:<\/p>\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">KillDate:<\/span> establece una fecha para que la baliza deje de funcionar.<\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">WorkingTime<\/span>: configura la baliza para que solo est\u00e9 activa durante determinadas horas.<\/li>\n<\/ul>\n<p>Adem\u00e1s, los actores de amenazas pueden modificar y mejorar el agente con t\u00e9cnicas personalizadas de ofuscaci\u00f3n, antian\u00e1lisis y evasi\u00f3n, lo que lo convierte en una amenaza en constante evoluci\u00f3n.<\/p>\n<h3><a id=\"post-157437-_heading=h.468aau5gn8pm\"><\/a><strong>Configuraci\u00f3n<\/strong><\/h3>\n<p>\u200bLa configuraci\u00f3n de AdaptixC2 est\u00e1 cifrada y admite tres tipos principales de balizas a trav\u00e9s de estructuras de perfil especializadas:<\/p>\n<ul>\n<li><a href=\"https:\/\/adaptix-framework.gitbook.io\/adaptix-framework\/extenders\/listeners\/beacon-http\">BEACON_HTTP<\/a> para la comunicaci\u00f3n basada en web<\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">BEACON_SMB<\/span> para la comunicaci\u00f3n mediante canalizaci\u00f3n con nombre<\/li>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">BEACON_TCP<\/span> para conexiones TCP directas<\/li>\n<\/ul>\n<p>El perfil HTTP es la variante de baliza m\u00e1s com\u00fan y contiene par\u00e1metros t\u00edpicos de comunicaci\u00f3n web, tales como:<\/p>\n<ul>\n<li>Servidores<\/li>\n<li>Puertos<\/li>\n<li>Configuraci\u00f3n SSL<\/li>\n<li>M\u00e9todos HTTP<\/li>\n<li>URI<\/li>\n<li>Encabezados<\/li>\n<li>Cadenas de agente de usuario<\/li>\n<\/ul>\n<p>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\u00f3n de anteponer datos para el ocultamiento b\u00e1sico del protocolo.<\/p>\n<p>AdaptixC2 incluye una configuraci\u00f3n predeterminada integrada que muestra los par\u00e1metros de implementaci\u00f3n t\u00edpicos. El perfil HTTP predeterminado apunta a <span style=\"font-family: 'courier new', courier, monospace;\">172.16.196.1:4443<\/span> y utiliza comunicaci\u00f3n HTTPS, con un m\u00e9todo POST al punto final <span style=\"font-family: 'courier new', courier, monospace;\">\/uri.php<\/span> y el par\u00e1metro <span style=\"font-family: 'courier new', courier, monospace;\">X-Beacon-Id<\/span> para la identificaci\u00f3n de balizas.<\/p>\n<p>En la Figura 2 se muestra c\u00f3mo configurar la baliza.<\/p>\n<figure id=\"attachment_157449\" aria-describedby=\"caption-attachment-157449\" style=\"width: 653px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-157449 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-522925-157437-2.png\" alt=\"Captura de pantalla de la interfaz de configuraci\u00f3n de Beacon, donde se muestran las pesta\u00f1as de configuraci\u00f3n principal, encabezados HTTP, p\u00e1gina de error y carga \u00fatil. En la pesta\u00f1a seleccionada se muestran los campos para configurar el host y el puerto, las direcciones de devoluci\u00f3n de llamada, la clave SSL y otros ajustes de red.\" width=\"653\" height=\"680\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-522925-157437-2.png 653w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-522925-157437-2-423x440.png 423w\" sizes=\"(max-width: 653px) 100vw, 653px\" \/><figcaption id=\"caption-attachment-157449\" class=\"wp-caption-text\">Figura\u00a02. Interfaz de usuario del generador HTTP Beacon. Fuente: <a href=\"https:\/\/adaptix-framework.gitbook.io\/adaptix-framework\/extenders\/listeners\/beacon-http\" target=\"_blank\" rel=\"noopener\">Documentaci\u00f3n de AdaptixC2<\/a>.<\/figcaption><\/figure>\n<p>Despu\u00e9s de hacer clic en \u201cCrear\u201d, el generador de balizas cifra la configuraci\u00f3n con RC4 y, a continuaci\u00f3n, la integra en la baliza compilada. La configuraci\u00f3n cifrada se almacena de la siguiente manera:<\/p>\n<ul>\n<li>4\u00a0bytes: Tama\u00f1o de la configuraci\u00f3n (entero de 32 bits)<\/li>\n<li>N bytes: Datos de configuraci\u00f3n cifrados con RC4<\/li>\n<li>16\u00a0bytes: Clave de cifrado RC4<\/li>\n<\/ul>\n<p>El siguiente c\u00f3digo es la l\u00f3gica de extracci\u00f3n de claves, tomada de <span style=\"font-family: 'courier new', courier, monospace;\"><a href=\"https:\/\/github.com\/Adaptix-Framework\/AdaptixC2\/blob\/main\/Extenders\/agent_beacon\/src_beacon\/beacon\/AgentConfig.cpp\" target=\"_blank\" rel=\"noopener\">AgentConfig.cpp<\/a>:<\/span><\/p>\n<pre class=\"lang:default decode:true\">ULONG profileSize = packer-&gt;Unpack32();\r\n\r\nthis-&gt;encrypt_key = (PBYTE) MemAllocLocal(16);\r\n\r\nmemcpy(this-&gt;encrypt_key, packer-&gt;data() + 4 + profileSize, 16);\r\n\r\nDecryptRC4(packer-&gt;data()+4, profileSize, this-&gt;encrypt_key, 16);<\/pre>\n<h4><a id=\"post-157437-_heading=h.u7606crycare\"><\/a>Extracci\u00f3n de la configuraci\u00f3n de muestras malintencionadas<\/h4>\n<p>Dado que el cifrado es sencillo y predecible, los defensores pueden desarrollar un extractor que extraiga autom\u00e1ticamente las configuraciones de las muestras. Esta herramienta de extracci\u00f3n deber\u00eda funcionar de la misma manera que la baliza carga sus propias configuraciones.<\/p>\n<p>El extractor localiza la configuraci\u00f3n en la secci\u00f3n <span style=\"font-family: 'courier new', courier, monospace;\">.rdata<\/span> del archivo PE. A continuaci\u00f3n, extrae el tama\u00f1o (los primeros cuatro bytes), el bloque de datos cifrados y la clave RC4 (los \u00faltimos 16 bytes). Despu\u00e9s de utilizar la clave RC4 integrada para descifrar los datos, analiza la configuraci\u00f3n del texto sin formato descomprimiendo los siguientes campos:<\/p>\n<ul>\n<li>Tipo de agente<\/li>\n<li>Indicador SSL<\/li>\n<li>N\u00famero de servidores<\/li>\n<li>Servidores\/puertos<\/li>\n<li>Par\u00e1metros HTTP<\/li>\n<li>Ajustes de sincronizaci\u00f3n<\/li>\n<\/ul>\n<p>Utilizando este m\u00e9todo, hemos creado una herramienta capaz de procesar muestras AdaptixC2 y obtener sus configuraciones integradas. El c\u00f3digo completo del extractor es compatible con la variante BEACON_HTTP. Esta herramienta se proporciona en la secci\u00f3n <a href=\"#post-157437-_heading=h.ki0v3wxdin0x\" target=\"_blank\" rel=\"noopener\">Ejemplo de extractor de configuraci\u00f3n<\/a>. Los investigadores pueden utilizar este extractor para analizar muestras de AdaptixC2 o adaptar el c\u00f3digo para otras variantes.<\/p>\n<p>A continuaci\u00f3n se muestra la configuraci\u00f3n predeterminada integrada de la baliza.<\/p>\n<pre class=\"lang:default decode:true\">{\r\n\r\n\"agent_type\": 3192652105,\r\n\r\n\"use_ssl\": true,\r\n\r\n\"servers_count\": 1,\r\n\r\n\"servers\": [\"172.16.196.1\"],\r\n\r\n\"ports\": [4443],\r\n\r\n\"http_method\": \"POST\",\r\n\r\n\"uri\": \"\/uri.php\",\r\n\r\n\"parameter\": \"X-Beacon-Id\",\r\n\r\n\"user_agent\": \"Mozilla\/5.0 (Windows NT 6.2; rv:20.0) Gecko\/20121202 Firefox\/20.0\",\r\n\r\n\"http_headers\": \"\\r\\n\",\r\n\r\n\"ans_pre_size\": 26,\r\n\r\n\"ans_size\": 47,\r\n\r\n\"kill_date\": 0,\r\n\r\n\"working_time\": 0,\r\n\r\n\"sleep_delay\": 2,\r\n\r\n\"jitter_delay\": 0,\r\n\r\n\"listener_type\": 0,\r\n\r\n\"download_chunk_size\": 102400\r\n\r\n}<\/pre>\n<h2><a id=\"post-157437-_heading=h.rra3vh7ywlug\"><\/a>Escenarios de AdaptixC2<\/h2>\n<h3><a id=\"post-157437-_heading=h.np3i0fd3k1j9\"><\/a><strong>Situaci\u00f3n\u00a01: el falso servicio de asistencia t\u00e9cnica provoca la infecci\u00f3n por AdaptixC2<\/strong><\/h3>\n<p>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.<\/p>\n<figure id=\"attachment_157522\" aria-describedby=\"caption-attachment-157522\" style=\"width: 1000px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-157522 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/es-LA_Fake-help-desk-support-leads-to-AdaptixC2.pptx-2-786x234.png\" alt=\"Ilustraci\u00f3n 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.\" width=\"1000\" height=\"298\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/es-LA_Fake-help-desk-support-leads-to-AdaptixC2.pptx-2-786x234.png 786w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/es-LA_Fake-help-desk-support-leads-to-AdaptixC2.pptx-2-768x229.png 768w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/es-LA_Fake-help-desk-support-leads-to-AdaptixC2.pptx-2.png 946w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><figcaption id=\"caption-attachment-157522\" class=\"wp-caption-text\">Figura\u00a03. Vector de ataque de la instalaci\u00f3n de AdaptixC2 en el equipo de la v\u00edctima. Fuente: <a href=\"https:\/\/x.com\/Unit42_Intel\/status\/1925206262184026156\" target=\"_blank\" rel=\"noopener\">Publicaci\u00f3n en X Unit\u00a042<\/a>.<\/figcaption><\/figure>\n<h4><a id=\"post-157437-_heading=h.z96vqpyc9dk5\"><\/a>Compromiso inicial<\/h4>\n<p>Los actores de amenazas se aprovecharon de la confianza en Microsoft Teams para enga\u00f1ar a las personas y que les dieran acceso a los sistemas de la empresa. En un caso, los atacantes utilizaron <a href=\"https:\/\/www.paloaltonetworks.com\/cyberpedia\/what-is-phishing\" target=\"_blank\" rel=\"noopener\">ataques de phishing<\/a> para suplantar al personal de soporte inform\u00e1tico (con asuntos como \u201cAsistencia t\u00e9cnica (externa) | Microsoft Teams\u201d). Esto convenci\u00f3 a los empleados para iniciar sesiones leg\u00edtimas de asistencia remota mediante herramientas como Quick Assist <a href=\"https:\/\/www.manageengine.com\/remote-monitoring-management\/what-is-rmm.html\" target=\"_blank\" rel=\"noopener\">Remote Monitoring and Management (RMM)<\/a>.<\/p>\n<p>Los actores de amenazas suelen abusarde productos leg\u00edtimos con fines malintencionados. Esto no implica necesariamente que el producto leg\u00edtimo que se est\u00e1 utilizando indebidamente tenga alg\u00fan defecto o sea malintencionado.<\/p>\n<p>Informe <a href=\"https:\/\/unit42.paloaltonetworks.com\/es-la\/2025-unit-42-global-incident-response-report-social-engineering-edition\/\" target=\"_blank\" rel=\"noopener\">global de respuesta ante incidentes de Unit 42 de 2025: La edici\u00f3n sobre ingenier\u00eda social<\/a> se\u00f1al\u00f3 que las t\u00e9cnicas de ingenier\u00eda social como esta son el vector de acceso inicial m\u00e1s 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\u00f3n de intrusiones.<\/p>\n<h4><a id=\"post-157437-_heading=h.2j913er40ahu\"><\/a>Implementaci\u00f3n y persistencia de AdaptixC2 mediante la ejecuci\u00f3n de shellcode<\/h4>\n<p>Los atacantes implementaron la baliza AdaptixC2 con un cargador PowerShell de varias etapas que descarga una carga \u00fatil codificada y cifrada desde un enlace a un servicio leg\u00edtimo.<\/p>\n<p>Una vez descargado, el script de PowerShell descifra la carga \u00fatil mediante una clave XOR simple. En lugar de escribir la carga \u00fatil descifrada en el disco, lo que facilitar\u00eda su detecci\u00f3n, el script aprovecha las capacidades de .NET para asignar memoria dentro del propio proceso de PowerShell. A continuaci\u00f3n, el script copia la carga \u00fatil descifrada, que en realidad es shellcode, en esta regi\u00f3n de memoria asignada. Este enfoque <a href=\"https:\/\/www.paloaltonetworks.com\/cyberpedia\/what-are-fileless-malware-attacks\" target=\"_blank\" rel=\"noopener\">sin archivos<\/a> reduce significativamente la huella del atacante en el sistema.<\/p>\n<figure id=\"attachment_157471\" aria-describedby=\"caption-attachment-157471\" style=\"width: 1000px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-157471 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-527788-157437-4.png\" alt=\"Captura de pantalla donde se muestra el c\u00f3digo de un entorno de desarrollo de software, con texto principalmente en colores verde y blanco sobre un fondo oscuro. El c\u00f3digo incluye varias funciones de programaci\u00f3n y elementos sint\u00e1cticos.\" width=\"1000\" height=\"526\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-527788-157437-4.png 1817w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-527788-157437-4-786x414.png 786w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-527788-157437-4-1330x700.png 1330w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-527788-157437-4-768x404.png 768w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-527788-157437-4-1536x808.png 1536w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><figcaption id=\"caption-attachment-157471\" class=\"wp-caption-text\">Figura 4. Script de PowerShell para descargar y ejecutar shellcode.<\/figcaption><\/figure>\n<p>El script utiliza una t\u00e9cnica denominada \u201cinvocaci\u00f3n din\u00e1mica\u201d para ejecutar el shellcode directamente desde la memoria. Para ello, utiliza el m\u00e9todo <a href=\"https:\/\/learn.microsoft.com\/en-us\/dotnet\/api\/system.runtime.interopservices.marshal.getdelegateforfunctionpointer?view=net-8.0\" target=\"_blank\" rel=\"noopener\"><span style=\"font-family: 'courier new', courier, monospace;\">GetDelegateForFunctionPointer<\/span><\/a>, que crea din\u00e1micamente un delegado (un puntero de funci\u00f3n seguro para el tipo) que apunta al comienzo del shellcode en la memoria. A continuaci\u00f3n, el script llama a este delegado como si fuera una funci\u00f3n 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\u00e1ticamente despu\u00e9s 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.<\/p>\n<figure id=\"attachment_157482\" aria-describedby=\"caption-attachment-157482\" style=\"width: 1000px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-157482 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-530764-157437-5.png\" alt=\"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.\" width=\"1000\" height=\"344\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-530764-157437-5.png 1327w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-530764-157437-5-786x271.png 786w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-530764-157437-5-768x264.png 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><figcaption id=\"caption-attachment-157482\" class=\"wp-caption-text\">Figura 5. Script de PowerShell para instalar la baliza AdaptixC2.<\/figcaption><\/figure>\n<p>La variante de la baliza cargada en este ataque ten\u00eda la siguiente configuraci\u00f3n:<\/p>\n<pre class=\"lang:default decode:true\">{\r\n\r\n\"agent_type\": 3192652105,\r\n\r\n\"use_ssl\": true,\r\n\r\n\"servers_count\": 1,\r\n\r\n\"servers\": [\r\n\r\n\"tech-system[.]online\"\r\n\r\n],\r\n\r\n\"ports\": [\r\n\r\n443\r\n\r\n],\r\n\r\n\"http_method\": \"POST\",\r\n\r\n\"uri\": \"\/endpoint\/api\",\r\n\r\n\"parameter\": \"X-App-Id\",\r\n\r\n\"user_agent\": \"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/121.0.6167.160 Safari\/537.36\",\r\n\r\n\"http_headers\": \"\\r\\n\",\r\n\r\n\"ans_pre_size\": 26,\r\n\r\n\"ans_size\": 47,\r\n\r\n\"kill_date\": 0,\r\n\r\n\"working_time\": 0,\r\n\r\n\"sleep_delay\": 4,\r\n\r\n\"jitter_delay\": 0,\r\n\r\n\"listener_type\": 0,\r\n\r\n\"download_chunk_size\": 102400\r\n\r\n}<\/pre>\n<h4><a id=\"post-157437-_heading=h.96ftzowfnmjk\"><\/a>Actividad posterior a la explotaci\u00f3n y contenci\u00f3n<\/h4>\n<p>Despu\u00e9s de la implementaci\u00f3n exitosa de AdaptixC2, los atacantes empezaron a hacer reconocimiento, con herramientas de l\u00ednea de comandos para juntar informaci\u00f3n sobre los sistemas y la red que hab\u00edan sido comprometidos. Esto inclu\u00eda comandos de detecci\u00f3n como <span style=\"font-family: 'courier new', courier, monospace;\">nltest.exe, whoami.exe<\/span> e <span style=\"font-family: 'courier new', courier, monospace;\">ipconfig.exe<\/span>.<\/p>\n<p>A continuaci\u00f3n, la baliza estableci\u00f3 comunicaci\u00f3n con un servidor remoto, lo que permiti\u00f3 a los actores de amenazas obtener C2 en la m\u00e1quina infectada.<\/p>\n<h3><a id=\"post-157437-_heading=h.48ejrol4cvpd\"><\/a><strong>Situaci\u00f3n\u00a02: infecci\u00f3n relacionada con un script generado por IA<\/strong><\/h3>\n<p>En otro caso, los actores de amenazas implementaron un script de PowerShell dise\u00f1ado para implementar balizas AdaptixC2. <a href=\"#post-157437-_heading=h.8fqfqmvrq38f\" target=\"_blank\" rel=\"noopener\">Evaluamos con un alto grado de confianza<\/a> que este script fue generado por IA. Esta implementaci\u00f3n se realiz\u00f3 tanto mediante la inyecci\u00f3n de shellcode en memoria como a trav\u00e9s de un mecanismo de persistencia basado en el <a href=\"https:\/\/unit42.paloaltonetworks.com\/dll-hijacking-techniques\/\" target=\"_blank\" rel=\"noopener\">secuestro de DLL<\/a>. 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\u00f3lido.<\/p>\n<figure id=\"attachment_157493\" aria-describedby=\"caption-attachment-157493\" style=\"width: 1000px\" class=\"wp-caption alignnone\"><img  class=\"wp-image-157493 lozad\"  data-src=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-533093-157437-6.png\" alt=\"Captura de pantalla de una pantalla de computadora donde se muestra c\u00f3digo con resaltado de sintaxis. El c\u00f3digo fue generado por IA. \" width=\"1000\" height=\"918\" srcset=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-533093-157437-6.png 1313w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-533093-157437-6-479x440.png 479w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-533093-157437-6-763x700.png 763w, https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/word-image-533093-157437-6-768x705.png 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><figcaption id=\"caption-attachment-157493\" class=\"wp-caption-text\">Figura 6. Instalador de PowerShell generado por IA para AdaptixC2.<\/figcaption><\/figure>\n<h4><a id=\"post-157437-_heading=h.iq2fb6rvxjyd\"><\/a>An\u00e1lisis detallado del PowerShell generado por IA<\/h4>\n<ul>\n<li><strong>Descarga y decodificaci\u00f3n del shellcode: <\/strong>el script descarga una carga \u00fatil de shellcode codificada en Base64 desde un servidor remoto con el m\u00e9todo <a href=\"https:\/\/learn.microsoft.com\/en-us\/powershell\/module\/microsoft.powershell.utility\/invoke-restmethod?view=powershell-7.5\" target=\"_blank\" rel=\"noopener\"><span style=\"font-family: 'courier new', courier, monospace;\">Invoke-RestMethod<\/span><\/a>. A continuaci\u00f3n, se decodifica el contenido descargado.<\/li>\n<li><strong>Asignaci\u00f3n de memoria, copia de shellcode y cambio de la protecci\u00f3n de memoria: <\/strong>el script asigna un bloque de memoria no gestionada. A continuaci\u00f3n, el shellcode AdaptixC2 se copia en la memoria asignada y cambia los atributos de protecci\u00f3n de memoria de la regi\u00f3n de memoria asignada mediante <a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/win32\/api\/memoryapi\/nf-memoryapi-virtualprotect\" target=\"_blank\" rel=\"noopener\">VirtualProtect<\/a> a <span style=\"font-family: 'courier new', courier, monospace;\">0x40<\/span> (<span style=\"font-family: 'courier new', courier, monospace;\"><a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/win32\/memory\/memory-protection-constants\" target=\"_blank\" rel=\"noopener\">PAGE_EXECUTE_READWRITE<\/a><\/span>). Esto permite la ejecuci\u00f3n del shellcode.<\/li>\n<li><strong>Ejecuci\u00f3n de shellcode mediante invocaci\u00f3n din\u00e1mica: <\/strong>como en el caso anterior, el atacante utiliz\u00f3 <span style=\"font-family: 'courier new', courier, monospace;\">GetDelegateForFunctionPointer<\/span> para crear una instancia delegada que apunta al comienzo del shellcode en la memoria. A continuaci\u00f3n, el atacante utiliz\u00f3 el m\u00e9todo <span style=\"font-family: 'courier new', courier, monospace;\">Invoke()<\/span> para ejecutar el shellcode, lanzando la baliza en memoria.<\/li>\n<li><strong>Persistencia del secuestro de DLL: <\/strong>El script apunta al directorio <span style=\"font-family: 'courier new', courier, monospace;\">APPDATA\\Microsoft\\Windows\\Templates<\/span> para el secuestro de DLL, a trav\u00e9s del archivo <span style=\"font-family: 'courier new', courier, monospace;\">msimg32.dll<\/span>. Este DLL tambi\u00e9n <em>es<\/em> una versi\u00f3n de baliza.<\/li>\n<li><strong>Persistencia mediante la clave de ejecuci\u00f3n del registro: <\/strong>El script crea una entrada de registro en la <a href=\"https:\/\/attack.mitre.org\/techniques\/T1547\/001\/\" target=\"_blank\" rel=\"noopener\">clave de ejecuci\u00f3n<\/a> denominada \"Updater\", con un comando PowerShell que ejecuta el script loader.ps1. Esto garantiza que el script <span style=\"font-family: 'courier new', courier, monospace;\">loader.ps1<\/span> se ejecute cada vez que el usuario inicie sesi\u00f3n, para ejecutar la baliza.<\/li>\n<\/ul>\n<h4><a id=\"post-157437-_heading=h.8fqfqmvrq38f\"><\/a>Generaci\u00f3n de scripts con IA<\/h4>\n<p>La estructura y composici\u00f3n de este script de PowerShell sugiere claramente que el atacante utiliz\u00f3<a href=\"https:\/\/www.paloaltonetworks.com\/blog\/2025\/05\/unit-42-develops-agentic-ai-attack-framework\/\"> generaci\u00f3n asistida por IA<\/a>. Los siguientes elementos estil\u00edsticos se observan com\u00fanmente en el c\u00f3digo generado por herramientas de IA:<\/p>\n<ul>\n<li>Comentarios detallados y numerados:\n<ul>\n<li>\"<span style=\"font-family: 'courier new', courier, monospace;\"># === [1] Descargar y decodificar el shellcode ===<\/span>\"<\/li>\n<\/ul>\n<\/li>\n<li>Iconos de marca de verificaci\u00f3n en el mensaje de salida:\n<ul>\n<li><span style=\"font-family: 'courier new', courier, monospace;\">Escribir salida \"[\u2714] Persistencia establecida mediante la clave Run y secuestro de DLL. DLL colocada en $templatesPath<\/span>\"<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Evaluamos con un alto grado de confianza que el c\u00f3digo se gener\u00f3 con la ayuda de la IA. Esto se basa en los factores anteriores, as\u00ed como en las pruebas recopiladas del servidor del atacante y los resultados extra\u00eddos de dos detectores de IA independientes.<\/p>\n<p>Las herramientas de IA sin las <a href=\"https:\/\/unit42.paloaltonetworks.com\/es-la\/comparing-llm-guardrails-across-genai-platforms\/\" target=\"_blank\" rel=\"noopener\">medidas de seguridad adecuadas<\/a> pueden permitir a los atacantes desarrollar r\u00e1pidamente c\u00f3digo malintencionado, lo que facilita la ejecuci\u00f3n de operaciones en redes infectadas.<\/p>\n<h3><a id=\"post-157437-_heading=h.9g9lzql8tvcw\"><\/a><strong>Similitudes entre los casos<\/strong><\/h3>\n<p>En ambos incidentes se observ\u00f3 un patr\u00f3n constante:<\/p>\n<ul>\n<li>Cargadores basados en PowerShell\n<ul>\n<li>Los actores de amenazas utilizaron estos cargadores para implementar la baliza AdaptixC2, dando prioridad al acceso sigiloso y persistente.<\/li>\n<\/ul>\n<\/li>\n<li>Descargar una carga \u00fatil desde un servidor remoto y ejecutarla en la memoria.\n<ul>\n<li>El uso de un recurso leg\u00edtimo ayud\u00f3 a los atacantes a pasar desapercibidos, al minimizar los rastros detectables en el disco.<\/li>\n<\/ul>\n<\/li>\n<li>Bas\u00e1ndose en las capacidades de .NET para la asignaci\u00f3n de memoria y la invocaci\u00f3n din\u00e1mica.\n<ul>\n<li>Los actores de amenazas aprovecharon las funcionalidades integradas del sistema, como el m\u00e9todo <span style=\"font-family: 'courier new', courier, monospace;\">GetDelegateForFunctionPointer<\/span>, para ejecutar shellcode, con el fin de ganar en eficiencia y sigilo.<\/li>\n<\/ul>\n<\/li>\n<li>Prevenci\u00f3n de la eliminaci\u00f3n de balizas mediante mecanismos de persistencia\n<ul>\n<li>Mientras que el primer script depend\u00eda \u00fanicamente de un acceso directo en la carpeta de inicio para su persistencia, el segundo a\u00f1ad\u00eda el secuestro de DLL.<\/li>\n<li>Esto proporciona a los atacantes m\u00e1s formas de permanecer en el sistema comprometido.<\/li>\n<\/ul>\n<\/li>\n<li>Uso de convenciones de nomenclatura similares para script y claves de ejecuci\u00f3n\n<ul>\n<li>En un caso, los atacantes denominaron el script malicioso <span style=\"font-family: 'courier new', courier, monospace;\">update.ps1<\/span>. En otro, la clave de ejecuci\u00f3n para la persistencia se denomin\u00f3 <span style=\"font-family: 'courier new', courier, monospace;\">Updater<\/span>.<\/li>\n<li>Esta denominaci\u00f3n ayuda a que los scripts y las claves se mezclen con los procesos leg\u00edtimos del sistema.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2><a id=\"post-157437-_heading=h.drkau9raq4rk\"><\/a>Aumento de la prevalencia del marco AdaptixC2<\/h2>\n<p>Nuestra telemetr\u00eda e inteligencia de amenazas muestran que AdaptixC2 se est\u00e1 volviendo m\u00e1s com\u00fan. Seguimos identificando nuevos servidores AdaptixC2, lo que sugiere que m\u00e1s actores de amenazas est\u00e1n adoptando este marco como parte de su kit de herramientas de ataque.<\/p>\n<p>Esta tendencia va m\u00e1s all\u00e1 de las situaciones t\u00edpicas posteriores a la explotaci\u00f3n. Por ejemplo, los atacantes implementaron el ransomware Fog junto con AdaptixC2 en un reciente <a href=\"https:\/\/www.security.com\/threat-intelligence\/fog-ransomware-attack\" target=\"_blank\" rel=\"noopener\">ataque a una instituci\u00f3n financiera en Asia<\/a>. Esto demuestra que AdaptixC2 es vers\u00e1til y puede utilizarse con otras herramientas malintencionadas, como el ransomware, para alcanzar objetivos m\u00e1s amplios.<\/p>\n<h2><a id=\"post-157437-_heading=h.o1k7gjc018np\"><\/a>Conclusi\u00f3n<\/h2>\n<p>AdaptixC2 es una amenaza adaptable, como lo demuestra su creciente popularidad entre los actores de amenazas y la complejidad de sus t\u00e9cnicas de implementaci\u00f3n. La modularidad del marco, combinada con el potencial de la generaci\u00f3n de c\u00f3digo asistida por IA, podr\u00eda permitir a los actores de amenazas evolucionar r\u00e1pidamente sus t\u00e1cticas. Los equipos de seguridad deben permanecer al tanto de las capacidades de AdaptixC2 y adaptar de forma proactiva sus defensas para contrarrestar esta amenaza.<\/p>\n<p>Los clientes de Palo Alto Networks est\u00e1n mejor protegidos frente a las amenazas mencionadas gracias a los siguientes productos y servicios:<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.paloaltonetworks.com\/advanced-url-filtering\/administration\" target=\"_blank\" rel=\"noopener\">URL Filtering avanzado<\/a> y<a href=\"https:\/\/docs.paloaltonetworks.com\/dns-security\" target=\"_blank\" rel=\"noopener\"> Seguridad DNS avanzada<\/a> identifican como malintencionados los dominios y URL conocidos asociados con esta actividad.<\/li>\n<li>La <a href=\"https:\/\/docs.paloaltonetworks.com\/advanced-threat-prevention\/administration\" target=\"_blank\" rel=\"noopener\">prevenci\u00f3n de amenazas avanzada<\/a> cuenta con una detecci\u00f3n integrada basada en aprendizaje autom\u00e1tico que puede detectar exploits en tiempo real.<\/li>\n<li>Los modelos de aprendizaje autom\u00e1tico y las t\u00e9cnicas de an\u00e1lisis de <a href=\"https:\/\/docs.paloaltonetworks.com\/wildfire\" target=\"_blank\" rel=\"noopener\">Advanced WildFire<\/a> se han revisado y actualizado a la luz de los indicadores compartidos en esta investigaci\u00f3n.<\/li>\n<li><a href=\"https:\/\/docs-cortex.paloaltonetworks.com\/p\/XDR\" target=\"_blank\" rel=\"noopener\">Cortex XDR<\/a> y <a href=\"https:\/\/docs-cortex.paloaltonetworks.com\/p\/XSIAM\" target=\"_blank\" rel=\"noopener\">XSIAM<\/a> ayudan a prevenir el malware mediante el uso del <a href=\"https:\/\/docs-cortex.paloaltonetworks.com\/r\/Cortex-XDR\/Cortex-XDR-4.x-Documentation\/Endpoint-protection\" target=\"_blank\" rel=\"noopener\">motor de prevenci\u00f3n de malware<\/a>. Este enfoque combina varias capas de protecci\u00f3n dise\u00f1adas para evitar que el malware conocido y desconocido cause da\u00f1os a sus endpoints. Las t\u00e9cnicas de mitigaci\u00f3n que emplea el motor de prevenci\u00f3n de malware var\u00edan seg\u00fan el tipo de endpoint.<\/li>\n<\/ul>\n<p>Si cree que puede haber resultado vulnerado o tiene un problema urgente, p\u00f3ngase en contacto con el <a href=\"https:\/\/start.paloaltonetworks.com\/contact-unit42.html\" target=\"_blank\" rel=\"noopener\">equipo de respuesta ante incidentes de Unit\u00a042<\/a> o llame al:<\/p>\n<ul>\n<li>Norteam\u00e9rica: llamada gratuita: +1\u00a0(866)\u00a0486-4842 (866.4.UNIT42)<\/li>\n<li>Reino Unido: +44.20.3743.3660<\/li>\n<li>Europa y Oriente Medio: +31.20.299.3130<\/li>\n<li>Asia: +65.6983.8730<\/li>\n<li>Jap\u00f3n: +81.50.1790.0200<\/li>\n<li>Australia: +61.2.4062.7950<\/li>\n<li>India: 00080005045107<\/li>\n<\/ul>\n<p>Palo Alto Networks ha compartido estos resultados con nuestros compa\u00f1eros de Cyber Threat Alliance (CTA). Los miembros de CTA utilizan esta inteligencia para implementar r\u00e1pidamente medidas de protecci\u00f3n para sus clientes y desarticular sistem\u00e1ticamente a los ciberdelincuentes. Obtenga m\u00e1s informaci\u00f3n sobre <a href=\"https:\/\/www.cyberthreatalliance.org\" target=\"_blank\" rel=\"noopener\">Cyber Threat Alliance<\/a>.<\/p>\n<h2><a id=\"post-157437-_heading=h.e7zlhm1aqboy\"><\/a>Indicadores de vulneraci\u00f3n<\/h2>\n<table style=\"width: 99.3628%;\">\n<tbody>\n<tr>\n<td style=\"text-align: center; width: 57.5814%;\"><strong>Valor<\/strong><\/td>\n<td style=\"text-align: center; width: 6.13953%;\"><strong>Tipo<\/strong><\/td>\n<td style=\"text-align: center; width: 39.4419%;\"><strong>Descripci\u00f3n<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">bdb1b9e37f6467b5f98d151a43f280f319bacf18198b22f55722292a832933ab<\/span><\/td>\n<td style=\"width: 6.13953%;\">SHA256<\/td>\n<td style=\"width: 39.4419%;\">Script de PowerShell que instala una baliza AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">83AC38FB389A56A6BD5EB39ABF2AD81FAB84A7382DA296A855F62F3CDD9D629D<\/span><\/td>\n<td style=\"width: 6.13953%;\">SHA256<\/td>\n<td style=\"width: 39.4419%;\">Script de PowerShell que instala una baliza AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">19c174f74b9de744502cdf47512ff10bba58248aa79a872ad64c23398e19580b<\/span><\/td>\n<td style=\"width: 6.13953%;\">SHA256<\/td>\n<td style=\"width: 39.4419%;\">Script de PowerShell que instala una baliza AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">750b29ca6d52a55d0ba8f13e297244ee8d1b96066a9944f4aac88598ae000f41<\/span><\/td>\n<td style=\"width: 6.13953%;\">SHA256<\/td>\n<td style=\"width: 39.4419%;\">Script de PowerShell que instala una baliza AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">b81aa37867f0ec772951ac30a5616db4d23ea49f7fd1a07bb1f1f45e304fc625<\/span><\/td>\n<td style=\"width: 6.13953%;\">SHA256<\/td>\n<td style=\"width: 39.4419%;\">Baliza AdaptixC2 como DLL<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">df0d4ba2e0799f337daac2b0ad7a64d80b7bcd68b7b57d2a26e47b2f520cc260<\/span><\/td>\n<td style=\"width: 6.13953%;\">SHA256<\/td>\n<td style=\"width: 39.4419%;\">Baliza AdaptixC2 como EXE<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">AD96A3DAB7F201DD7C9938DCF70D6921849F92C1A20A84A28B28D11F40F0FB06<\/span><\/td>\n<td style=\"width: 6.13953%;\">SHA256<\/td>\n<td style=\"width: 39.4419%;\">Shellcode que instala la baliza AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">tech-system[.]online<\/span><\/td>\n<td style=\"width: 6.13953%;\">Dominio<\/td>\n<td style=\"width: 39.4419%;\">Dominio AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">protoflint[.]com<\/span><\/td>\n<td style=\"width: 6.13953%;\">Dominio<\/td>\n<td style=\"width: 39.4419%;\">Dominio AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">novelumbsasa[.]art<\/span><\/td>\n<td style=\"width: 6.13953%;\">Dominio<\/td>\n<td style=\"width: 39.4419%;\">Dominio AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">picasosoftai[.]shop<\/span><\/td>\n<td style=\"width: 6.13953%;\">Dominio<\/td>\n<td style=\"width: 39.4419%;\">Dominio AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">dtt.alux[.]cc<\/span><\/td>\n<td style=\"width: 6.13953%;\">Dominio<\/td>\n<td style=\"width: 39.4419%;\">Dominio AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">moldostonesupplies[.]pro<\/span><\/td>\n<td style=\"width: 6.13953%;\">Dominio<\/td>\n<td style=\"width: 39.4419%;\">Dominio AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">x6iye[.]site<\/span><\/td>\n<td style=\"width: 6.13953%;\">Dominio<\/td>\n<td style=\"width: 39.4419%;\">Dominio AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">buenohuy[.]live<\/span><\/td>\n<td style=\"width: 6.13953%;\">Dominio<\/td>\n<td style=\"width: 39.4419%;\">Dominio AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">firetrue[.]live<\/span><\/td>\n<td style=\"width: 6.13953%;\">Dominio<\/td>\n<td style=\"width: 39.4419%;\">Dominio AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">lokipoki[.]live<\/span><\/td>\n<td style=\"width: 6.13953%;\">Dominio<\/td>\n<td style=\"width: 39.4419%;\">Dominio AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">veryspec[.]live<\/span><\/td>\n<td style=\"width: 6.13953%;\">Dominio<\/td>\n<td style=\"width: 39.4419%;\">Dominio AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">mautau[.]live<\/span><\/td>\n<td style=\"width: 6.13953%;\">Dominio<\/td>\n<td style=\"width: 39.4419%;\">Dominio AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">muatay[.]live<\/span><\/td>\n<td style=\"width: 6.13953%;\">Dominio<\/td>\n<td style=\"width: 39.4419%;\">Dominio AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">nicepliced[.]live<\/span><\/td>\n<td style=\"width: 6.13953%;\">Dominio<\/td>\n<td style=\"width: 39.4419%;\">Dominio AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">nissi[.]bg<\/span><\/td>\n<td style=\"width: 6.13953%;\">Dominio<\/td>\n<td style=\"width: 39.4419%;\">Dominio AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">express1solutions[.]com<\/span><\/td>\n<td style=\"width: 6.13953%;\">Dominio<\/td>\n<td style=\"width: 39.4419%;\">Dominio AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">iorestore[.]com<\/span><\/td>\n<td style=\"width: 6.13953%;\">Dominio<\/td>\n<td style=\"width: 39.4419%;\">Dominio AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">doamin[.]cc<\/span><\/td>\n<td style=\"width: 6.13953%;\">Dominio<\/td>\n<td style=\"width: 39.4419%;\">Dominio AdaptixC2<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 57.5814%;\"><span style=\"font-family: 'courier new', courier, monospace;\">regonalone[.]com<\/span><\/td>\n<td style=\"width: 6.13953%;\">Dominio<\/td>\n<td style=\"width: 39.4419%;\">Dominio AdaptixC2<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><a id=\"post-157437-_heading=h.sfkqlp2rwog6\"><\/a>Reglas de Yara<\/h2>\n<p>Los defensores pueden utilizar estas reglas de Yara para comprobar la presencia de balizas AdaptixC2 en las m\u00e1quinas.<\/p>\n<h4><a id=\"post-157437-_heading=h.pdurelf30qps\"><\/a>Baliza AdaptixC2 HTTP\/SMB\/TCP<\/h4>\n<pre class=\"lang:default decode:true\">rule u42_hacktool_beacon_adaptixC2\r\n\r\n{\r\n\r\nmeta:\r\n\r\ndescription = \"Detects AdaptixC2 beacon via basic functions\"\r\n\r\nreference = \"https:\/\/github.com\/Adaptix-Framework\/AdaptixC2\"\r\n\r\nstrings:\r\n\r\n$FileTimeToUnixTimestamp = {D1 65 F8 83 7D F4 1F 7E 17 8B 55 E4}\r\n\r\n$Proxyfire_RecvProxy = {B9 FC FF 0F 00 E8 6A 04 00 00}\r\n\r\n$timeCalc1 = {8D 82 A0 05 00 00 89 44 24 3C EB 07}\r\n\r\n$timeCalc2 = {FF D2 0F B7 44 24 28 66 3B}\r\n\r\n$b64_encoded_size = {83 C0 01 39 45 18 7E 22 8B 45 E4 C1 E0 08 89 C1}\r\n\r\n$manage = {C6 44 24 5F 00 48 8B 45 10 48 8B 00}\r\n\r\ncondition:\r\n\r\nany of them\r\n\r\n}<\/pre>\n<h4><a id=\"post-157437-_heading=h.961d6cxi81po\"><\/a>Baliza AdaptixC2 Go<\/h4>\n<pre class=\"lang:default decode:true\">rule u42_hacktool_beacon_adaptixC2\r\n\r\n{\r\n\r\nmeta:\r\n\r\ndescription = \"Detects AdaptixC2 beacon via basic functions\"\r\n\r\nreference = \"https:\/\/github.com\/Adaptix-Framework\/AdaptixC2\"\r\n\r\nstrings:\r\n\r\n$FileTimeToUnixTimestamp = {D1 65 F8 83 7D F4 1F 7E 17 8B 55 E4}\r\n\r\n$Proxyfire_RecvProxy = {B9 FC FF 0F 00 E8 6A 04 00 00}\r\n\r\n$timeCalc1 = {8D 82 A0 05 00 00 89 44 24 3C EB 07}\r\n\r\n$timeCalc2 = {FF D2 0F B7 44 24 28 66 3B}\r\n\r\n$b64_encoded_size = {83 C0 01 39 45 18 7E 22 8B 45 E4 C1 E0 08 89 C1}\r\n\r\n$manage = {C6 44 24 5F 00 48 8B 45 10 48 8B 00}\r\n\r\ncondition:\r\n\r\nany of them\r\n\r\n}<\/pre>\n<h4><a id=\"post-156047-_gapelw3j58bf\"><\/a>AdaptixC2 Go Beacon<\/h4>\n<pre class=\"lang:default decode:true\">rule u42_hacktool_beaconGo_adaptixC2\r\n\r\n{\r\n\r\nmeta:\r\n\r\ndescription = \"Detects AdaptixC2 beacon in GO via basic functions\"\r\n\r\nreference = \"https:\/\/github.com\/Adaptix-Framework\/AdaptixC2\/tree\/a7401fa3fdbc7ae6b632c40570292f844e40ff40\/Extenders\/agent_gopher\"\r\n\r\nstrings:\r\n\r\n$GetProcesses = {E8 96 4D E1 FF E8 96 4D E1 FF E8 96 4D E1 FF}\r\n\r\n$ConnRead = {0F 8E BD 00 00 00 4C 89 44 24 30 4C 89 54 24 40}\r\n\r\n$normalizedPath = {48 85 C9 74 0A 31 C0 31 DB 48 83 C4 38 5D C3 90 0F 1F 40 00}\r\n\r\n$Linux_GetOsVersion = {48 8D 05 51 D6 10 00 BB 0F 00 00 00}\r\n\r\n$Mac_GetOsVersion = {48 8D 05 AE 5A 0A 00 BB 30 00 00 00}\r\n\r\ncondition:\r\n\r\nany of them\r\n\r\n}<\/pre>\n<h4><a id=\"post-157437-_heading=h.furwe75o9tg2\"><\/a>Cargador AdaptixC2<\/h4>\n<pre class=\"lang:default decode:true\">rule u42_hacktool_adaptixC2_loader\r\n\r\n{\r\n\r\nmeta:\r\n\r\ndescription = \"Detects AdaptixC2 shellcode loader via API Hashing\"\r\n\r\nreference = \"https:\/\/github.com\/Adaptix-Framework\/AdaptixC2\/blob\/main\/Extenders\/agent_beacon\/src_beacon\/beacon\/ApiDefines.h\"\r\n\r\nstrings:\r\n\r\n$hash_NtFlushInstructionCache = { 9E 65 A1 91 }\r\n\r\n$hash_VirtualAlloc = { 76 63 CE 63 }\r\n\r\n$hash_GetProcAddress = { DE 2A 4F 18 }\r\n\r\n$hash_LoadLibraryA = { FA D0 59 11}\r\n\r\n$Calc_Func_resolve_ApiFuncs = {06 00 00 0F B6 11 48 FF C1 85 D2 74 14 44 8D 42}\r\n\r\ncondition:\r\n\r\n(\r\n\r\n$hash_NtFlushInstructionCache and\r\n\r\n$hash_VirtualAlloc and\r\n\r\n$hash_GetProcAddress and\r\n\r\n$hash_LoadLibraryA\r\n\r\n) or\r\n\r\n(\r\n\r\n$Calc_Func_resolve_ApiFuncs\r\n\r\n)\r\n\r\n}<\/pre>\n<h2><a id=\"post-157437-_heading=h.13st9gicwtd1\"><\/a>Normas de caza<\/h2>\n<ul>\n<li><strong>Descripci\u00f3n de la consulta<\/strong>: La siguiente consulta XQL busca actividades de phishing realizadas a trav\u00e9s de la aplicaci\u00f3n Teams que conducen a la ejecuci\u00f3n de RMM. Estos atributos suelen ser el objetivo de los atacantes para implementar balizas AdaptixC2.<\/li>\n<li><strong>Notas de la investigaci\u00f3n<\/strong>: Comience por comprobar el t\u00edtulo de la sesi\u00f3n de usuario. Busque la ejecuci\u00f3n de la herramienta RMM y la creaci\u00f3n de procesos secundarios o archivos mediante la herramienta RMM. Busque alertas o ejecuciones sospechosas, como cmd o PowerShell, por parte del usuario comprometido (<span style=\"font-family: 'courier new', courier, monospace;\">actor_effective_username<\/span>).<\/li>\n<\/ul>\n<pre class=\"lang:default decode:true\">config case_sensitive = false\r\n\r\n| dataset=xdr_data\r\n\r\n| fields _time as TeamsTime ,event_type,agent_hostname,actor_effective_username,event_sub_type, title, actor_process_image_name as teams_image_name, actor_process_image_sha256 , actor_process_image_command_line, agent_hostname, _time, action_process_image_name, agent_os_type, agent_id\r\n\r\n| filter agent_os_type = ENUM.AGENT_OS_WINDOWS and event_type = ENUM.USER_SESSION and teams_image_name in (\"ms-teams.exe\",\"updater.exe\") and ((title contains \"(external)\" and title not contains \"Chat |\" ) and (title contains \"help\" ))\r\n\r\n| join type = inner (\r\n\r\ndataset=xdr_data\r\n\r\n| fields _time as RmmStartTime ,agent_os_type , action_file_extension , event_type,agent_hostname,actor_effective_username,event_sub_type, actor_process_image_name , action_process_image_path, agent_hostname, action_process_image_name, agent_id, event_id\r\n\r\n| filter agent_os_type = ENUM.AGENT_OS_WINDOWS and (event_type=ENUM.PROCESS and event_sub_type = ENUM.PROCESS_START and action_process_image_name in (\"*quickassist.exe\",\"*anydesk.exe\",\"*screenconnect.*.exe\",\"*logmein.exe\"))\r\n\r\n) as rmm rmm.agent_id = agent_id and rmm.actor_effective_username = actor_effective_username and (timestamp_diff(rmm.RmmStartTime,TeamsTime , \"MINUTE\") &lt; 10 and timestamp_diff(rmm.RmmStartTime,TeamsTime , \"MINUTE\") &gt;= 0)\r\n\r\n| comp values(TeamsTime) as _time ,values(RmmStartTime) as RmmStartTime, values(teams_image_name) as teams_image_name, values(action_process_image_path) as action_process_image_name, values(actor_process_image_name) as ActorProcess, count(Title) as CountOfTitle by title,actor_effective_username,agent_hostname , agent_id, event_id\r\n\r\n| filter (array_length(action_process_image_name)&gt;0)<\/pre>\n<h2><a id=\"post-157437-_heading=h.ki0v3wxdin0x\"><\/a>Ejemplo de extractor de configuraci\u00f3n<\/h2>\n<p>El siguiente c\u00f3digo es un ejemplo de un extractor de configuraciones que extrae configuraciones de archivos de balizas HTTP.<\/p>\n<pre class=\"lang:default decode:true\">import struct\r\n\r\nimport json\r\n\r\nimport sys\r\n\r\nfrom typing import Dict, Any\r\n\r\nfrom malduck import procmempe, rc4, int32, enhex\r\n\r\nclass ConfigParser:\r\n\r\ndef __init__(self, data: bytes):\r\n\r\nself.data = data\r\n\r\nself.offset = 0\r\n\r\n\r\n\r\n\r\ndef unpack32(self) -&gt; int:\r\n\r\nvalue = struct.unpack('&lt;I', self.data[self.offset:self.offset + 4])[0]\r\n\r\nself.offset += 4\r\n\r\nreturn value\r\n\r\n\r\n\r\n\r\ndef unpack16(self) -&gt; int:\r\n\r\n\"\"\"Unpack a 16-bit unsigned integer (little-endian)\"\"\"\r\n\r\nvalue = struct.unpack('&lt;H', self.data[self.offset:self.offset + 2])[0]\r\n\r\nself.offset += 2\r\n\r\nreturn value\r\n\r\n\r\n\r\n\r\ndef unpack8(self) -&gt; int:\r\n\r\n\"\"\"Unpack an 8-bit unsigned integer\"\"\"\r\n\r\nvalue = self.data[self.offset]\r\n\r\nself.offset += 1\r\n\r\nreturn value\r\n\r\n\r\n\r\n\r\ndef unpack_string(self) -&gt; str:\r\n\r\n\"\"\"Unpack a length-prefixed string\"\"\"\r\n\r\nlength = self.unpack32()\r\n\r\nstring_data = self.data[self.offset:self.offset + length]\r\n\r\nself.offset += length\r\n\r\nif string_data and string_data[-1] == 0:\r\n\r\nstring_data = string_data[:-1]\r\n\r\nreturn string_data.decode('utf-8', errors='replace')\r\n\r\n\r\n\r\n\r\ndef unpack_bytes(self, length: int) -&gt; bytes:\r\n\r\n\"\"\"Unpack a fixed number of bytes\"\"\"\r\n\r\ndata = self.data[self.offset:self.offset + length]\r\n\r\nself.offset += length\r\n\r\nreturn data\r\n\r\ndef parse_beacon_http_config(data: bytes) -&gt; Dict[str, Any]:\r\n\r\n\"\"\"Parse BEACON_HTTP configuration from raw bytes\"\"\"\r\n\r\nparser = ConfigParser(data)\r\n\r\nconfig = {}\r\n\r\n\r\n\r\n\r\ntry:\r\n\r\n# Parse agent type\r\n\r\nconfig['agent_type'] = parser.unpack32()\r\n\r\n\r\n\r\n\r\n# Parse HTTP profile\r\n\r\nconfig['use_ssl'] = bool(parser.unpack8())\r\n\r\nconfig['servers_count'] = parser.unpack32()\r\n\r\n\r\n\r\n\r\n# Parse servers and ports\r\n\r\nconfig['servers'] = []\r\n\r\nconfig['ports'] = []\r\n\r\nfor i in range(config['servers_count']):\r\n\r\nserver = parser.unpack_string()\r\n\r\nport = parser.unpack32()\r\n\r\nconfig['servers'].append(server)\r\n\r\nconfig['ports'].append(port)\r\n\r\n\r\n\r\n\r\n# Parse HTTP settings\r\n\r\nconfig['http_method'] = parser.unpack_string()\r\n\r\nconfig['uri'] = parser.unpack_string()\r\n\r\nconfig['parameter'] = parser.unpack_string()\r\n\r\nconfig['user_agent'] = parser.unpack_string()\r\n\r\nconfig['http_headers'] = parser.unpack_string()\r\n\r\n\r\n\r\n\r\n# Parse answer sizes\r\n\r\nconfig['ans_pre_size'] = parser.unpack32()\r\n\r\nans_size_raw = parser.unpack32()\r\n\r\nconfig['ans_size'] = ans_size_raw + config['ans_pre_size']\r\n\r\n\r\n\r\n\r\n# Parse timing settings\r\n\r\nconfig['kill_date'] = parser.unpack32()\r\n\r\nconfig['working_time'] = parser.unpack32()\r\n\r\nconfig['sleep_delay'] = parser.unpack32()\r\n\r\nconfig['jitter_delay'] = parser.unpack32()\r\n\r\n\r\n\r\n\r\n# Default values from constructor\r\n\r\nconfig['listener_type'] = 0\r\n\r\nconfig['download_chunk_size'] = 0x19000\r\n\r\n\r\n\r\n\r\nreturn config\r\n\r\n\r\n\r\n\r\nexcept Exception as e:\r\n\r\nprint(f\"Failed to parse configuration: {e}\")\r\n\r\nraise\r\n\r\ndef parse_config(data: bytes, beacon_type: str = \"BEACON_HTTP\") -&gt; Dict[str, Any]:\r\n\r\n\"\"\"Main entry point for parsing beacon configurations\"\"\"\r\n\r\nif beacon_type == \"BEACON_HTTP\":\r\n\r\nreturn parse_beacon_http_config(data)\r\n\r\nelse:\r\n\r\nraise NotImplementedError(f\"Parser for {beacon_type} not implemented\")\r\n\r\nif __name__ == \"__main__\":\r\n\r\nif len(sys.argv) &lt; 2:\r\n\r\nprint(\"Usage: python extractor.py &lt;path_to_config_file&gt;\")\r\n\r\nsys.exit(1)\r\n\r\n\r\n\r\n\r\npassed_arg = sys.argv[1]\r\n\r\ntry:\r\n\r\nsample = procmempe.from_file(passed_arg)\r\n\r\nrdata_section = sample.pe.section(\".rdata\")\r\n\r\nconfig_structure = sample.readp(rdata_section.PointerToRawData, rdata_section.SizeOfRawData)\r\n\r\nconfig_size = int32(config_structure)\r\n\r\nencrypted_config = config_structure[4:config_size+4]\r\n\r\nrc4_key = config_structure[config_size + 4 : config_size + 4 + 16]\r\n\r\nexcept Exception as e:\r\n\r\nprint(f\"Error reading file or extracting configuration: {e}\")\r\n\r\nprint(\"Using provided encrypted configuration bytes directly.\")\r\n\r\ntry:\r\n\r\nconfig_structure = bytes.fromhex(passed_arg)\r\n\r\nconfig_size = int32(config_structure)\r\n\r\nencrypted_config = config_structure[4:config_size+4]\r\n\r\nrc4_key = config_structure[config_size + 4 : config_size + 4 + 16]\r\n\r\nexcept Exception as e:\r\n\r\nprint(f\"Failed to process provided argument as configuration bytes: {e}\")\r\n\r\nsys.exit(1)\r\n\r\ntry:\r\n\r\ndecrypted_config = rc4(rc4_key, encrypted_config)\r\n\r\nprint(f\"Decrypted configuration size: {len(decrypted_config)} bytes\")\r\n\r\nprint(f\"Decrypted configuration content: {decrypted_config}\")\r\n\r\nprint(\"Decrypted configuration (hex): %s\", enhex(decrypted_config))\r\n\r\nconfig = parse_config(decrypted_config)\r\n\r\nprint(\"Parsed configuration:\")\r\n\r\nprint(json.dumps(config, indent=2))\r\n\r\nexcept Exception as e:\r\n\r\nprint(f\"Error parsing configuration: {e}\")<\/pre>\n<h2><a id=\"post-157437-_heading=h.z6ibn1pbvph3\"><\/a>Recursos adicionales<\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/Adaptix-Framework\/AdaptixC2\" target=\"_blank\" rel=\"noopener\">AdaptixC2:<\/a> GitHub<\/li>\n<li><a href=\"https:\/\/www.security.com\/threat-intelligence\/fog-ransomware-attack\" target=\"_blank\" rel=\"noopener\">Fog Ransomware: Conjunto de herramientas inusuales utilizadas en un ataque reciente:<\/a> <a href=\"https:\/\/www.security.com\/\">Symantec<\/a><\/li>\n<li><a href=\"https:\/\/unit42.paloaltonetworks.com\/es-la\/2025-unit-42-global-incident-response-report-social-engineering-edition\/\" target=\"_blank\" rel=\"noopener\">Informe de respuesta ante incidentes de Unit\u00a042 de 2025: Edici\u00f3n de ingenier\u00eda social:<\/a> Unit\u00a042<\/li>\n<li><a href=\"https:\/\/www.paloaltonetworks.com\/cyberpedia\/what-is-phishing\" target=\"_blank\" rel=\"noopener\">Qu\u00e9 es el phishing:<\/a> Palo Alto Networks<\/li>\n<li><a href=\"https:\/\/www.manageengine.com\/remote-monitoring-management\/what-is-rmm.html\" target=\"_blank\" rel=\"noopener\">Qu\u00e9 es RMM:<\/a> ManageEngine<\/li>\n<li><a href=\"https:\/\/www.paloaltonetworks.com\/cyberpedia\/what-are-fileless-malware-attacks\" target=\"_blank\" rel=\"noopener\">Qu\u00e9 son los ataques de malware sin archivo:<\/a> Palo Alto Networks<\/li>\n<li><a href=\"https:\/\/unit42.paloaltonetworks.com\/dll-hijacking-techniques\/\" target=\"_blank\" rel=\"noopener\">T\u00e9cnicas de secuestro de DLL:<\/a> Unit\u00a042<\/li>\n<li><a href=\"https:\/\/www.paloaltonetworks.com\/blog\/2025\/05\/unit-42-develops-agentic-ai-attack-framework\/\" target=\"_blank\" rel=\"noopener\">Unit\u00a042 desarrolla un marco de ataque de IA aut\u00f3noma:<\/a> Palo Alto Networks<\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/dotnet\/api\/system.runtime.interopservices.marshal.getdelegateforfunctionpointer?view=net-8.0\" target=\"_blank\" rel=\"noopener\">M\u00e9todo Marshal.GetDelegateForFunctionPointer:<\/a> Microsoft Docs<\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/powershell\/module\/microsoft.powershell.utility\/invoke-restmethod?view=powershell-7.5\" target=\"_blank\" rel=\"noopener\">Invoke-RestMethod (PowerShell):<\/a> Microsoft Docs<\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/win32\/api\/memoryapi\/nf-memoryapi-virtualprotect\" target=\"_blank\" rel=\"noopener\">Funci\u00f3n VirtualProtect:<\/a> Microsoft Docs<\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/win32\/memory\/memory-protection-constants\" target=\"_blank\" rel=\"noopener\">Constantes de protecci\u00f3n de memoria:<\/a> Microsoft Docs<\/li>\n<li><a href=\"https:\/\/attack.mitre.org\/techniques\/T1547\/001\/\" target=\"_blank\" rel=\"noopener\">MITRE ATT&amp;CK T1547.001:<\/a> MITRE<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>AdaptixC2, un marco C2 de c\u00f3digo abierto, se utiliza cada vez m\u00e1s en los ataques. Analizamos sus caracter\u00edsticas y posibles casos de uso.<\/p>\n","protected":false},"author":366,"featured_media":156072,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[8838,8793],"tags":[9534,9535,9536,9537,9242],"product_categories":[8922,8923,8924,8925,8921,8932,8934,8935,8890],"coauthors":[9511,9512],"class_list":["post-157437","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-threat-research-es-la","category-malware-es-la","tag-c2-es-la","tag-dll-es-la","tag-open-source-es-la","tag-pentest-tool-es-la","tag-phishing-es-la","product_categories-advanced-dns-security-es-la","product_categories-advanced-threat-prevention-es-la","product_categories-advanced-url-filtering-es-la","product_categories-advanced-wildfire-es-la","product_categories-cloud-delivered-security-services-es-la","product_categories-cortex-es-la","product_categories-cortex-xdr-es-la","product_categories-cortex-xsiam-es-la","product_categories-unit-42-incident-response-es-la"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.0 (Yoast SEO v27.0) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>AdaptixC2: un nuevo marco de c\u00f3digo abierto utilizado en ataques reales<\/title>\n<meta name=\"description\" content=\"AdaptixC2, un marco C2 de c\u00f3digo abierto, se utiliza cada vez m\u00e1s en los ataques. Analizamos sus caracter\u00edsticas y posibles casos de uso.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/unit42.paloaltonetworks.com\/es-la\/adaptixc2-post-exploitation-framework\/\" \/>\n<meta property=\"og:locale\" content=\"es_LA\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AdaptixC2: un nuevo marco de c\u00f3digo abierto utilizado en ataques reales\" \/>\n<meta property=\"og:description\" content=\"AdaptixC2, un marco C2 de c\u00f3digo abierto, se utiliza cada vez m\u00e1s en los ataques. Analizamos sus caracter\u00edsticas y posibles casos de uso.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/unit42.paloaltonetworks.com\/es-la\/adaptixc2-post-exploitation-framework\/\" \/>\n<meta property=\"og:site_name\" content=\"Unit 42\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-10T16:24:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-16T17:25:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/02_Security-Technology_Category_1920x900.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"900\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ofek Lahiani, Itay Cohen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"AdaptixC2: un nuevo marco de c\u00f3digo abierto utilizado en ataques reales","description":"AdaptixC2, un marco C2 de c\u00f3digo abierto, se utiliza cada vez m\u00e1s en los ataques. Analizamos sus caracter\u00edsticas y posibles casos de uso.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/unit42.paloaltonetworks.com\/es-la\/adaptixc2-post-exploitation-framework\/","og_locale":"es_LA","og_type":"article","og_title":"AdaptixC2: un nuevo marco de c\u00f3digo abierto utilizado en ataques reales","og_description":"AdaptixC2, un marco C2 de c\u00f3digo abierto, se utiliza cada vez m\u00e1s en los ataques. Analizamos sus caracter\u00edsticas y posibles casos de uso.","og_url":"https:\/\/unit42.paloaltonetworks.com\/es-la\/adaptixc2-post-exploitation-framework\/","og_site_name":"Unit 42","article_published_time":"2025-09-10T16:24:27+00:00","article_modified_time":"2025-09-16T17:25:01+00:00","og_image":[{"width":1920,"height":900,"url":"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/02_Security-Technology_Category_1920x900.jpg","type":"image\/jpeg"}],"author":"Ofek Lahiani, Itay Cohen","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/unit42.paloaltonetworks.com\/es-la\/adaptixc2-post-exploitation-framework\/#article","isPartOf":{"@id":"https:\/\/unit42.paloaltonetworks.com\/es-la\/adaptixc2-post-exploitation-framework\/"},"author":{"name":"Sheida Azimi","@id":"https:\/\/unit42.paloaltonetworks.com\/#\/schema\/person\/7ee97ec6f224446d57c0383eb5fd3639"},"headline":"AdaptixC2: un nuevo marco de c\u00f3digo abierto utilizado en ataques reales","datePublished":"2025-09-10T16:24:27+00:00","dateModified":"2025-09-16T17:25:01+00:00","mainEntityOfPage":{"@id":"https:\/\/unit42.paloaltonetworks.com\/es-la\/adaptixc2-post-exploitation-framework\/"},"wordCount":3763,"image":{"@id":"https:\/\/unit42.paloaltonetworks.com\/es-la\/adaptixc2-post-exploitation-framework\/#primaryimage"},"thumbnailUrl":"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/02_Security-Technology_Category_1920x900.jpg","keywords":["C2","DLL","open source","pentest tool","phishing"],"articleSection":["Investigaci\u00f3n de amenazas","Malware"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/unit42.paloaltonetworks.com\/es-la\/adaptixc2-post-exploitation-framework\/","url":"https:\/\/unit42.paloaltonetworks.com\/es-la\/adaptixc2-post-exploitation-framework\/","name":"AdaptixC2: un nuevo marco de c\u00f3digo abierto utilizado en ataques reales","isPartOf":{"@id":"https:\/\/unit42.paloaltonetworks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/unit42.paloaltonetworks.com\/es-la\/adaptixc2-post-exploitation-framework\/#primaryimage"},"image":{"@id":"https:\/\/unit42.paloaltonetworks.com\/es-la\/adaptixc2-post-exploitation-framework\/#primaryimage"},"thumbnailUrl":"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/02_Security-Technology_Category_1920x900.jpg","datePublished":"2025-09-10T16:24:27+00:00","dateModified":"2025-09-16T17:25:01+00:00","author":{"@id":"https:\/\/unit42.paloaltonetworks.com\/#\/schema\/person\/7ee97ec6f224446d57c0383eb5fd3639"},"description":"AdaptixC2, un marco C2 de c\u00f3digo abierto, se utiliza cada vez m\u00e1s en los ataques. Analizamos sus caracter\u00edsticas y posibles casos de uso.","breadcrumb":{"@id":"https:\/\/unit42.paloaltonetworks.com\/es-la\/adaptixc2-post-exploitation-framework\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/unit42.paloaltonetworks.com\/es-la\/adaptixc2-post-exploitation-framework\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/unit42.paloaltonetworks.com\/es-la\/adaptixc2-post-exploitation-framework\/#primaryimage","url":"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/02_Security-Technology_Category_1920x900.jpg","contentUrl":"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2025\/09\/02_Security-Technology_Category_1920x900.jpg","width":1920,"height":900,"caption":"Pictorial representation of AdaptixC2. Digital iris with binary code, emphasizing cybersecurity and technology concepts."},{"@type":"BreadcrumbList","@id":"https:\/\/unit42.paloaltonetworks.com\/es-la\/adaptixc2-post-exploitation-framework\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/unit42.paloaltonetworks.com\/"},{"@type":"ListItem","position":2,"name":"AdaptixC2: un nuevo marco de c\u00f3digo abierto utilizado en ataques reales"}]},{"@type":"WebSite","@id":"https:\/\/unit42.paloaltonetworks.com\/#website","url":"https:\/\/unit42.paloaltonetworks.com\/","name":"Unit 42","description":"Palo Alto Networks","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/unit42.paloaltonetworks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/unit42.paloaltonetworks.com\/#\/schema\/person\/7ee97ec6f224446d57c0383eb5fd3639","name":"Sheida Azimi","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/unit42.paloaltonetworks.com\/#\/schema\/person\/image\/4ffb3c2d260a0150fb91b3715442f8b3","url":"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2018\/11\/unit-news-meta.svg","contentUrl":"https:\/\/unit42.paloaltonetworks.com\/wp-content\/uploads\/2018\/11\/unit-news-meta.svg","caption":"Sheida Azimi"},"url":"https:\/\/unit42.paloaltonetworks.com\/es-la\/author\/sheida-azimi\/"}]}},"_links":{"self":[{"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/posts\/157437","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/users\/366"}],"replies":[{"embeddable":true,"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/comments?post=157437"}],"version-history":[{"count":2,"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/posts\/157437\/revisions"}],"predecessor-version":[{"id":157533,"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/posts\/157437\/revisions\/157533"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/media\/156072"}],"wp:attachment":[{"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/media?parent=157437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/categories?post=157437"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/tags?post=157437"},{"taxonomy":"product_categories","embeddable":true,"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/product_categories?post=157437"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/unit42.paloaltonetworks.com\/es-la\/wp-json\/wp\/v2\/coauthors?post=157437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}