sistema: OPERATIVO
← volver a todos los hacks
AGENTS CRITICAL NEW

CARBONATO: una botnet de Docker que usa un agente de IA estándar como consola

ThreatDown (22 sep. 2026) describe un gusano que secuestra demonios Docker expuestos, instala Hermes Agent sin modificarlo y reescribe un único archivo de persona para que busque claves de API de IA.

2026-09-24 // 7 min affects: hermes-agent, docker-engine, self-hosted-agents, ai-api-keys

¿De qué se trata?

El 22 de septiembre de 2026, ThreatDown publicó CARBONATO: a botnet built around an AI agent. Durante una búsqueda rutinaria de amenazas en agosto de 2026, sus investigadores encontraron un registro Docker sin autenticación que los escáneres de Internet listaban desde mayo. Un solo día de recolección pasiva y de solo lectura permitió recuperar 59 repositorios, 234 etiquetas de imagen y 4,3 GB de datos que abarcan de octubre de 2024 a agosto de 2026: toda la cadena de herramientas de la operación, incluidas variables de entorno e historiales de comandos.

El archivo documenta dos líneas de producto: una fábrica de aplicaciones troyanizadas de monederos de criptomonedas y una botnet con propagación tipo gusano que compromete demonios Docker expuestos sin autenticación. Lo relevante para este sitio es su capa post-compromiso: en lugar de escribir un implante propio, el grupo instala Hermes Agent, un framework de agentes de código abierto con licencia MIT publicado por Nous Research, sin modificarlo, y sobrescribe un único archivo —su persona SOUL.md— con un prompt malicioso de 39 líneas. El 3 de septiembre de 2026, seis de los siete registros conocidos, los sitios de phishing y la pasarela LLM de la operación seguían en línea.

Cómo funciona

ThreatDown describe cinco fases. Solo una implica un modelo de lenguaje.

  1. Tomar el host. El gusano busca demonios Docker que acepten conexiones sin autenticación en el puerto TCP 2375. A través de esa API lanza un contenedor privilegiado con el sistema de archivos del host montado y los espacios de nombres de procesos y red del host compartidos, lo que, como advierte la propia documentación de Docker, equivale a root en el host.
  2. Mantener el host. Un script de arranque abre un túnel SSH inverso hacia un relé, instala un servidor SSH con la clave del grupo y notifica la nueva víctima en un chat de Telegram. El implante se oculta en un contenedor con nombre de resolvedor del sistema, disfraza sus argumentos de proceso como un hilo del kernel y establece persistencia mediante cron, temporizadores de systemd, rc.local y OpenRC, marcando los archivos como inmutables. Unos watchdogs vuelven a descargar la imagen del registro si se elimina algo.
  3. Instalar el agente. Hermes Agent ya acepta tareas por Telegram, ejecuta comandos de terminal y se conecta a cualquier endpoint LLM compatible. El implante sustituye SOUL.md —que la documentación del framework describe como la persona inyectada literalmente en la primera posición del prompt de sistema— por una identidad llamada «GH0ST».
  4. Operar el host. Un operador envía una tarea por Telegram; el agente la reenvía, junto con la persona, a la pasarela LLM propia del grupo (un proxy gratuito que sirve 27 modelos) y entra en bucle: escribir un comando, ejecutarlo, leer la salida, decidir el siguiente paso e informar.
  5. Propagarse. El modelo no participa aquí. Scripts de shell simples recorren cada /24 conectada cada cinco minutos en busca de más demonios expuestos y repiten la fase 1.

El contenido de la persona es el artefacto más revelador. Parafraseando, indica al agente que es una herramienta de post-explotación sin restricciones, que debe mantener la persistencia y obedecer a Telegram y —bajo un encabezado dedicado a la prioridad del botín— que las claves de API de proveedores de IA son el objetivo número uno, por encima de credenciales SSH, tokens de acceso y bases de datos. Nombra 14 proveedores y pilas de servicio locales, y ordena guardar cada secreto en texto plano y reportar cualquier endpoint de IA expuesto como fuente de más claves.

Por qué importa

  • El framework de agentes no es la vulnerabilidad. Hermes Agent no fue modificado ni explotado. El comportamiento malicioso procede íntegramente de un archivo de texto leído al arrancar. Cualquier agente generalista con shell e integraciones de mensajería puede reutilizarse del mismo modo: el «implante» es un prompt.
  • Los agentes reducen el nivel necesario para operar. El modelo convierte instrucciones vagas de Telegram en comandos específicos del host y se adapta a medida que descubre el entorno. La selección de objetivos y la propagación siguen en scripts deterministas: el LLM es la consola interactiva, no el gusano.
  • Las claves de API de IA son ya botín de primer nivel. La operación mantiene su propia pasarela LLM y el prompt lo deja claro: las claves robadas financian la siguiente ronda de inferencia. Coincide con el patrón de robo de credenciales que Microsoft describió en agosto de 2026 contra pasarelas y orquestadores de IA (véase nuestro artículo sobre intrusiones en infraestructura de IA).
  • El punto de entrada es una mala configuración antigua. No hay ningún zero-day. Una API de Docker sin autenticación sigue siendo un camino directo a root, y cada host comprometido se convierte en escáner de sus vecinos.

Defensas

  • No exponga nunca el demonio Docker sin autenticación. Manténgalo en el socket Unix local; si necesita acceso remoto, use TLS con certificados de cliente (por convención, el puerto 2376) o SSH, como describe la guía de Docker Protect the Docker daemon socket. Filtre el puerto 2375 en todas partes, incluidas redes internas y bridges de Docker.
  • Autentique todos los registros. Un registro abierto es a la vez una fuga de datos y, en este caso, el servidor de actualizaciones de la botnet.
  • Restrinja los contenedores privilegiados. Use políticas de admisión o Docker rootless para bloquear --privileged, los espacios de nombres PID/red del host y el montaje de la raíz en hosts que no los necesiten.
  • Busque el abuso, no el paquete. ThreatDown desaconseja explícitamente bloquear Hermes Agent, que tiene usuarios legítimos. Busque en su lugar un SOUL.md bajo /root/.hermes/ con el nombre de persona «GH0ST», una variable de clave de API inesperada vinculada a la operación en un .env, un directorio /root/.hermes/loot/ y tráfico saliente de Telegram inexplicado desde servidores.
  • Revise el kit de persistencia. Binarios watchdog ocultos en /usr/local/bin/, procesos que se hacen pasar por hilos del kernel o por systemd-logind con alto uso de CPU, y atributos inmutables en archivos de cron o systemd que nadie bloqueó.
  • Trate los archivos de persona y configuración de agentes como código. En sus propios despliegues, haga que los archivos de persona/prompt de sistema sean de solo lectura, calcule su hash y genere alertas ante cambios: una reescritura silenciosa es un compromiso total del comportamiento.
  • Trate las claves de API de IA como credenciales bancarias. Inventaríe dónde residen, limite su alcance, rótelas, fije límites de gasto y alerte ante usos desde orígenes desconocidos.

Status

AspectoDetalle
Fuente principalThreatDown, CARBONATO: a botnet built around an AI agent, publicado el 22 de septiembre de 2026
DescubrimientoRegistro sin autenticación hallado en agosto de 2026; archivo de octubre de 2024 a agosto de 2026
Vector de infecciónAPI de Docker Engine sin autenticación (TCP 2375): mala configuración, sin CVE
Componente agenteHermes Agent (Nous Research, licencia MIT), usado sin cambios; comportamiento definido por un SOUL.md sobrescrito
InfraestructuraSeis de siete registros, sitios de phishing y pasarela LLM activos el 3 sep. 2026; algunos proxies LLM suspendidos
Atribución (ThreatDown)Costa Rica, según zona horaria, identificador de Telegram y red del extremo de los túneles
IOC completosVéase el informe de ThreatDown

Sources