Una campaña de malware en WordPress que usa Steam como servidor de comando y control infectó aproximadamente 1.980 sitios entre julio de 2025 y los primeros meses de 2026. Los atacantes usan perfiles de Steam Community como infraestructura de comando y control, ocultando las instrucciones maliciosas en caracteres Unicode invisibles dentro de comentarios de perfil que, a simple vista, parecen estar en blanco.
En 30 segundos
- Alrededor de 1.980 sitios WordPress infectados identificados por investigadores de seguridad
- El malware usa perfiles de Steam Community como servidores de comando y control (C2)
- Las instrucciones se codifican en seis tipos de caracteres Unicode de ancho cero, invisibles al ojo humano
- El dominio malicioso principal identificado es hello-mywordl[.]info
- El vector de infección inicial todavía no está documentado con certeza
WordPress es un sistema de gestión de contenidos de código abierto creado por Matt Mullenweg, utilizado para crear y administrar sitios web, blogs y tiendas en línea, y desarrollado colaborativamente por la Fundación WordPress y su comunidad global.
Qué es la campaña de malware WordPress Steam
La campaña de malware WordPress Steam es una operación maliciosa activa en la que atacantes comprometieron sitios WordPress e instalaron un backdoor en PHP que usa perfiles de Steam Community como intermediario para recibir instrucciones de forma encubierta. Según la cobertura de BleepingComputer y los análisis técnicos de GridinSoft, la campaña fue detectada hacia mediados de 2025 y en los reportes publicados hasta junio de 2026 los sitios comprometidos rondan los 1.980.
Lo que hace notable esta operación no es solo la escala sino la creatividad del enfoque. Steam es una plataforma de distribución de videojuegos con millones de perfiles públicos (que Valve probablemente no diseñó pensando en esto). Nadie espera encontrar infraestructura de malware ahí. Los atacantes lo sabían perfectamente.
Si alguna vez configuraste reglas de firewall o una herramienta de monitoreo de red, sabés que las listas de bloqueo apuntan a dominios conocidos como maliciosos. Un perfil de Steam no aparece en ninguna de esas listas. Eso lo convierte en el canal perfecto para instrucciones maliciosas.
Cómo funciona el ataque: el vector de infección inicial
El punto de entrada es lo más opaco de esta campaña. Los investigadores que analizaron el malware, según el reporte técnico de GridinSoft, no determinaron con certeza cómo los atacantes obtuvieron acceso inicial. Los vectores más probables son los de siempre: credenciales de FTP o SFTP comprometidas, contraseñas de wp-admin obtenidas por fuerza bruta o filtradas en brechas previas, o plugins y temas con vulnerabilidades conocidas sin parchear.
Una vez dentro, instalan el backdoor en PHP, que queda latente hasta recibir instrucciones desde el C2. Y ahí arranca la parte técnicamente interesante.
Caracteres Unicode invisibles: el truco para ocultar instrucciones
El malware lee comentarios de perfiles públicos de Steam. Esos comentarios parecen vacíos al ojo humano, pero contienen secuencias de seis tipos de caracteres Unicode que no tienen representación visual (sí, en serio, caracteres que existen en el estándar Unicode pero no se ven en pantalla): Sobre eso hablamos en investigar las vulnerabilidades documentadas.
- Zero-width non-joiner (U+200C)
- Zero-width joiner (U+200D)
- Function application (U+2061)
- Invisible times (U+2062)
- Invisible separator (U+2063)
- Invisible plus (U+2064)
Combinados en secuencias específicas, esos caracteres codifican una URL. El backdoor los lee, los decodifica y construye la dirección del script malicioso que tiene que descargar y ejecutar. El dominio identificado en los análisis es hello-mywordl[.]info.
¿Alguien lo detectaría revisando manualmente el código fuente? Muy probablemente no. Un editor de texto convencional los omite, un diff de git los ignora, y el HTML del perfil de Steam los renderiza como espacio vacío. Para verlos hace falta un editor hexadecimal o una herramienta de análisis de bytes.
Por qué Steam: la plataforma de Valve como servidor de mando
Usar una plataforma legítima como C2 tiene ventajas concretas para los atacantes. Abrís el navegador, mirás el perfil, parece un perfil normal, no hay nada que llame la atención, el tráfico hacia steam.community se ve en los logs igual que cualquier conexión de un usuario con el cliente de Steam abierto de fondo, los firewalls raramente bloquean Steam, las herramientas de categorización de URLs lo clasifican en «gaming» y no en «malware», y encima la infraestructura es de Valve, con disponibilidad garantizada, sin que los atacantes tengan que pagar ni mantener nada.
Si Steam elimina un perfil, los atacantes crean otro. El costo para ellos es prácticamente cero.
No es la primera vez que se usa una plataforma legítima como C2. Se documentaron casos similares con GitHub, Google Docs y Discord. Pero Steam tiene una particularidad: los perfiles son públicos sin requerir autenticación del visitante, y el tráfico hacia steam.community es «confiable» por reputación en casi todos los entornos corporativos y de hosting. Relacionado: implementar un WAF robusto para tu sitio.
Indicadores de compromiso: cómo saber si estás infectado
Si sospechás que tu sitio puede estar afectado, hay señales concretas que podés buscar. Según Security Affairs y los análisis técnicos publicados sobre la campaña:
| Indicador | Dónde buscarlo | Qué significa si lo encontrás |
|---|---|---|
| Referencias a URLs de Steam Community en código | Archivos PHP, theme, plugins activos | Conexión activa al C2 |
Cookie tEcaKKXEsb | Headers HTTP, código JavaScript | Marcador de sesión del malware |
| Dominio hello-mywordl[.]info | Logs del servidor, scripts JS inyectados | Descarga de payload malicioso |
| Caracteres Unicode de ancho cero en código | Archivos PHP/JS (requiere editor hex o herramienta específica) | Instrucciones codificadas para el backdoor |
Entradas _transient_caption_ en la base de datos | Tabla wp_options | Mecanismo de persistencia instalado |
| cURL con verificación SSL deshabilitada | Código PHP inyectado | Descarga insegura de scripts externos |
| JavaScript externo no reconocido | Header o footer del theme, plugins activos | Script de redirección o tracking malicioso |

Qué está confirmado y qué sigue sin resolverse
- Confirmado: aproximadamente 1.980 sitios infectados identificados hasta junio de 2026
- Confirmado: uso de perfiles de Steam como C2 con caracteres Unicode de ancho cero como método de codificación
- Confirmado: dominio hello-mywordl[.]info como destino del payload descargado
- Confirmado: cookie
tEcaKKXEsbpresente en sitios infectados como marcador de sesión - Confirmado: campaña activa desde al menos julio de 2025
- Sin confirmar: vector exacto de infección inicial (probablemente múltiple)
- Sin confirmar: identidad de los actores detrás de la operación
- Sin confirmar: escala real del impacto (1.980 pueden ser solo los sitios detectados, no el total)
Cómo proteger tu WordPress ahora mismo
Ponele que tu sitio todavía no está infectado. Bien, porque limpiar es bastante más complicado que prevenir. Estas son las medidas concretas que reducen el riesgo:
- Actualizá todo sin excepciones: WordPress core, plugins y temas. Si un plugin no tiene actualización desde hace meses y tiene vulnerabilidades documentadas, desinstalalo directamente.
- Credenciales únicas y fuertes: la contraseña de wp-admin, FTP, cPanel y base de datos deben ser distintas entre sí. Un gestor de contraseñas resuelve esto sin dolor de cabeza.
- Limitá el acceso FTP/SFTP: si no lo usás activamente, deshabilitalo. Si lo usás, revisá quién tiene acceso y cuándo fue el último uso registrado.
- Plugin de seguridad con escaneo de integridad: Wordfence con escaneo activo detecta modificaciones en archivos del core y plugins. Configuralo para enviar alertas por email ante cualquier cambio.
- Backups externos regulares: un backup que vive en el mismo servidor que el sitio infectado no sirve. Guardalo en storage externo al proveedor de hosting.
- Revisá permisos de archivo:
wp-config.phpdebería tener permisos 440 o 400, no 644. Los archivos PHP en producción no deberían ser modificables.
Si ya estás infectado: cómo limpiar el sitio
La mala noticia primero: limpiar un sitio con backdoor activo es difícil. El malware está diseñado para reinstalarse si no eliminás el backdoor por completo. Un escaneo parcial no alcanza.
El enfoque más confiable es restaurar desde un backup de antes de la infección y aplicar todas las medidas de protección para cerrar el vector inicial. Si no tenés backup limpio, el proceso manual es:
- Escaneá todos los archivos con Wordfence o MalCare y registrá cada archivo marcado como comprometido
- Revisá la base de datos buscando las entradas
_transient_caption_y cualquier script JS inyectado en wp_options - Buscá referencias a Steam Community y al dominio hello-mywordl[.]info en todos los archivos PHP del sitio
- Reemplazá los archivos comprometidos con versiones limpias descargadas del repositorio oficial de WordPress
- Cambiá TODAS las credenciales después de limpiar: wp-admin, FTP, base de datos, cPanel
- Pedile a tu hosting que revise los logs de acceso para intentar identificar el vector de entrada
Ojo: si la limpieza no es exhaustiva, el malware vuelve. No es una advertencia genérica, es lo que está pasando con estos casos según los análisis publicados (spoiler: los atacantes cuentan con que la limpieza sea incompleta). Si no tenés experiencia con este tipo de proceso, mejor usar un servicio especializado en eliminación de malware WordPress.
Qué investigadores encontraron: contexto de la campaña
La campaña fue detectada hacia mediados de 2025 y tuvo cobertura técnica de múltiples equipos de seguridad. Los análisis más detallados, según HackRead, muestran que los atacantes tenían conocimiento técnico real: la selección de caracteres Unicode para codificar URLs es precisa, la elección de Steam como intermediario demuestra comprensión de cómo funcionan los filtros de red corporativos, y el diseño del backdoor para persistir y reinstalarse muestra que no fue una operación improvisada.
Investigadores de distintas empresas de seguridad analizaron el código y llegaron a conclusiones similares: la infección inicial sigue siendo el punto más opaco de la operación. Eso dificulta la prevención específica, porque no hay un único parche o configuración que cierre el vector con certeza. Lo explicamos a fondo en defender tu WordPress contra ataques DDoS.
Errores comunes al responder a esta amenaza
Limpiar solo los archivos visiblemente comprometidos. El backdoor puede estar fragmentado en múltiples archivos, incluyendo archivos del core de WordPress que nadie revisa de rutina. Un escaneo parcial deja puertas abiertas y el malware vuelve en días.
No cambiar credenciales después de la limpieza. Si el vector inicial fue una contraseña comprometida y no la cambiás después de limpiar, el atacante puede volver a entrar con las mismas credenciales. Es más común de lo que parece.
Confiar solo en el scanner del hosting. Los scanners incluidos en los paneles de hosting detectan malware conocido de firmas establecidas. Una campaña con técnicas de ofuscación como la de Steam puede pasar sin ser marcada. Las herramientas especializadas en WordPress son necesarias como capa adicional.
Preguntas Frecuentes
¿Qué es la campaña de malware que usa Steam en WordPress?
Es una operación maliciosa que comprometió cerca de 1.980 sitios WordPress e instaló un backdoor que usa perfiles de Steam Community como infraestructura de comando y control (C2). El malware lee caracteres Unicode invisibles en comentarios de perfiles de Steam para recibir instrucciones sin levantar sospechas en herramientas de seguridad convencionales.
¿Cómo detectar si mi sitio WordPress está infectado por esta campaña?
Buscá estos indicadores: referencias a Steam Community en archivos PHP o JavaScript, la cookie tEcaKKXEsb, el dominio hello-mywordl[.]info en logs o código, entradas _transient_caption_ en la tabla wp_options de la base de datos, y caracteres Unicode de ancho cero en archivos del tema o plugins. Wordfence o MalCare automatizan parte de esa búsqueda y son el punto de partida recomendado. Cubrimos ese tema en detalle en usar plugins con estándares de seguridad.
¿Cuáles son los indicadores de compromiso del malware WordPress Steam?
Los IOCs documentados incluyen: referencias a URLs de Steam Community en código PHP, la cookie tEcaKKXEsb, conexiones al dominio hello-mywordl[.]info, entradas _transient_caption_ en la base de datos, caracteres Unicode de ancho cero (U+200C a U+2064) en archivos, y llamadas cURL con verificación SSL deshabilitada. La presencia de cualquiera de estos indica infección activa o pasada.
¿Por qué los atacantes usan Steam como servidor de comando y control?
Steam es una plataforma legítima con alta disponibilidad. Los firewalls raramente bloquean tráfico hacia sus servidores, los perfiles son públicos y modificables en segundos desde cualquier lugar, y el tráfico no genera alertas en herramientas de seguridad. La infraestructura es de Valve, no de los atacantes, lo que les da un canal estable sin costos de mantenimiento.
¿Cómo proteger WordPress contra esta amenaza?
Las medidas clave son: mantener WordPress, plugins y temas actualizados; usar credenciales únicas y fuertes para wp-admin, FTP y base de datos; activar monitoreo de integridad de archivos con Wordfence; hacer backups periódicos en almacenamiento externo; y revisar permisos de archivo en el servidor. No hay un plugin específico para esta campaña, pero las prácticas estándar reducen el riesgo de infección inicial de forma significativa.
Conclusión
La campaña de malware WordPress Steam muestra cómo los atacantes evolucionan para evadir detección: en vez de construir infraestructura propia, se apoyan en plataformas legítimas que nadie bloquea. Steam hoy, Discord mañana, GitHub pasado mañana. El patrón es el mismo y va a seguir.
Los 1.980 sitios identificados son probablemente solo una fracción del total. Y el vector de infección inicial sin resolver significa que no hay un parche único que cierre el problema. Lo que sí podés hacer ahora: monitoreo de integridad de archivos, backups externos regulares, credenciales fuertes y actualizaciones al día. Si tu hosting actual no facilita esas herramientas, revisá opciones como donweb.com, con planes de hosting WordPress que incluyen capas de seguridad integradas.
El malware bien diseñado es difícil de detectar y fácil de reinfectar si la limpieza no es completa. Eso hace que la prevención valga mucho más que la cura en este caso.
Fuentes
- BleepingComputer – WordPress malware campaign hides payloads in Steam profiles
- GridinSoft – Análisis técnico: backdoor de WordPress con C2 en Steam
- Security Affairs – Malware en 1.980 sitios WordPress con Steam como infraestructura C2
- HackRead – El malware de WordPress usa comentarios de Steam como instrucciones