TRUST#GRAFT: así instalan puertas traseras con tu sesión de administrador de WordPress

Navegador con panel de WordPress abierto y un falso aviso de verificación que oculta la instalación de un plugin malicioso

Investigadores de Securonix han documentado TRUST#GRAFT, una cadena de ataque que instala una puerta trasera en WordPress aprovechando la sesión de un administrador que tiene el panel abierto en el mismo navegador con el que navega. Un cargador de JavaScript colocado en una web comprometida detecta si el visitante ha iniciado sesión como administrador en su propio sitio y, si es así, usa esa sesión para subir y activar un plugin malicioso sin necesidad de conocer la contraseña.

Las claves del ataque TRUST#GRAFT contra administradores de WordPress en 30 segundos

  • El ataque no rompe el inicio de sesión: reutiliza la sesión abierta de un administrador con permiso para instalar plugins.
  • Un falso aviso de verificación de Cloudflare distrae al visitante mientras el script sube un plugin llamado Web Media Optimizer.
  • El plugin se copia en wp-content/mu-plugins, donde se carga solo y no aparece en la lista de plugins.
  • Securonix recomienda un perfil de navegador exclusivo para wp-admin y vigilar los archivos PHP nuevos en mu-plugins.

El caso lo han difundido medios especializados como Cybersecurity News y, en España, elhacker.net. Los investigadores Akshay Gaikwad y Aaron Beardslee, de Securonix Threat Research, subrayan que no se trata de una vulnerabilidad de WordPress ni de un salto de autenticación: la cuenta debe ser ya de administrador y tener permiso para instalar plugins. Tampoco han confirmado cómo llegó el primer script a la página comprometida. Llega justo después de que wpdirecto informara de los ataques contra el fallo del actualizador de WordPress.

Cómo funciona TRUST#GRAFT

La infección empieza con una falsa comprobación de seguridad. El script cubre la página con un marco a pantalla completa que imita el mensaje «Just a moment» de Cloudflare. Mientras el visitante espera, recoge datos como la resolución de pantalla, la tarjeta gráfica, la zona horaria o el número de complementos del navegador, y comprueba si hay señales de herramientas de análisis automatizado. Tras resolver un pequeño reto, envía esa información a un servidor de control, que decide si entrega la siguiente fase.

El paso clave llega después. El script solicita la página de subida de plugins de WordPress usando las cookies de sesión que ya tiene el navegador y lee de ella el nonce, el código de seguridad que WordPress usa para validar formularios. Con él descarga un archivo llamado wm.zip desde un servidor intermedio, lo sube por el instalador normal de plugins y, si funciona, abre la página de plugins y lo activa. WordPress acepta cada petición porque, a sus ojos, las hace un administrador legítimo desde su navegador.

Una puerta trasera que se esconde en mu-plugins

El ZIP contiene un plugin llamado Web Media Optimizer, versión 2.1. El nombre sugiere una herramienta de optimización de imágenes, pero según Securonix es una puerta trasera: inyecta JavaScript remoto en las páginas públicas, desactiva la comprobación de certificados TLS cuando descarga su script de control y puede dar acceso como administrador a la primera cuenta con ese rol mediante un token fijado en el código.

Para asegurar su permanencia, al activarse se copia en wp-content/mu-plugins/wmedia-recovery.php. WordPress carga automáticamente todo lo que hay en esa carpeta de plugins obligatorios, y esos archivos no aparecen en la página de Plugins del panel. Por eso borrar el plugin visible no basta: hay que eliminar también la copia de mu-plugins y cualquier rastro del script remoto para evitar que la web se vuelva a infectar.

El patrón no es nuevo. En junio, Sansec detectó que scripts servidos desde la red de distribución de OptinMonster, TrustPulse y PushEngage se habían manipulado para crear administradores falsos e instalar un plugin oculto solo cuando los cargaba un administrador con la sesión iniciada, en plugins con un alcance conjunto de más de 1,2 millones de sitios, según The Hacker News. Este tipo de malware, que solo se activa con sesiones de administrador, es difícil de detectar en los análisis habituales.

Cómo protegerse

Las recomendaciones de Securonix pasan por separar la administración de la navegación diaria y vigilar los lugares donde se esconde el malware. A partir de ellas, y de las medidas que proponen profesionales en redes sociales, conviene:

  • Usar un perfil de navegador, o un navegador distinto, solo para wp-admin, y cerrar sesión al terminar.
  • Cerrar la sesión y cambiar las credenciales de administrador si se ha visto un falso aviso de verificación o cualquier actividad sospechosa.
  • Limitar quién puede subir e instalar plugins. Añadir define('DISALLOW_FILE_MODS', true); en wp-config.php bloquea la instalación y actualización de plugins y temas desde el panel; DISALLOW_FILE_EDIT solo desactiva el editor de archivos, así que por sí solo no frena este ataque.
  • Vigilar la aparición de archivos PHP nuevos en wp-content/mu-plugins y revisar la lista de plugins y de administradores.
  • Comprobar la integridad del núcleo con wp core verify-checksums, teniendo en cuenta que no revisa la carpeta mu-plugins.

Securonix ha publicado indicadores de compromiso, entre ellos los dominios caapman[.]me, vtevens[.]icu, gerlace[.]com, nutmann[.]club, okuneva[.]sbs y vilialobos[.]lol, el archivo wm.zip y la ruta wmedia-recovery.php, que los equipos de seguridad pueden añadir a sus cortafuegos y sistemas de detección.

Preguntas frecuentes

¿Qué es TRUST#GRAFT?

Una cadena de ataque documentada por Securonix que usa un JavaScript malicioso para aprovechar la sesión abierta de un administrador de WordPress e instalar un plugin con puerta trasera.

¿Es una vulnerabilidad de WordPress?

No. No rompe el inicio de sesión: necesita que el administrador tenga la sesión abierta y permiso para instalar plugins mientras visita una página comprometida.

¿Cómo saber si una web está infectada?

Buscando el plugin Web Media Optimizer y el archivo wp-content/mu-plugins/wmedia-recovery.php, además de administradores o archivos PHP desconocidos.

¿Basta con DISALLOW_FILE_EDIT?

No. Solo desactiva el editor de archivos del panel. Para impedir instalar plugins desde el escritorio hace falta DISALLOW_FILE_MODS.

Fuentes:

Editor WPDirecto

Editor de WPDirecto potenciado con IA con el apoyo del equipo de edición.

Te puede interesar...

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    WordPress Directo
    WPDirecto.com es una revista especializada en WordPress y WooCommerce que ofrece una amplia gama de recursos, incluyendo tutoriales, análisis de plugins y plantillas, consejos de optimización y estrategias de SEO, para ayudar a los usuarios a mejorar y personalizar sus sitios web, manteniéndolos informados sobre las últimas novedades y tendencias en el mundo de WordPress.

    © 1995-2025 Color Vivo Internet, SLU (Medios y Redes Online).. Otros contenidos se cita fuente. Infraestructura cloud servidores dedicados de Stackscale.