
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 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.
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.
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.
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:
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.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.
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.
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.
Buscando el plugin Web Media Optimizer y el archivo wp-content/mu-plugins/wmedia-recovery.php, además de administradores o archivos PHP desconocidos.
No. Solo desactiva el editor de archivos del panel. Para impedir instalar plugins desde el escritorio hace falta DISALLOW_FILE_MODS.
Fuentes:
