Volver a la sala de prensa
Amenazas

Administradores de WordPress con sesión abierta, convertidos en instaladores de backdoors

Una cadena de ataque analizada recientemente, rastreada como TRUST#GRAFT, nunca toca la contraseña del administrador. Espera a un administrador de WordPress ya autenticado, toma prestada la sesión del navegador para subir un plugin malicioso y esconde un backdoor PHP donde la página de plugins no puede verlo.

Administradores de WordPress con sesión abierta, convertidos en instaladores de backdoors

Administradores de WordPress con sesión abierta, convertidos en instaladores de backdoors

La mayoría de los administradores de WordPress mantienen wp-admin abierto en una pestaña mientras navegan por el resto de la web. Una cadena de ataque analizada recientemente, rastreada como TRUST#GRAFT, está construida exactamente alrededor de ese hábito. No adivina, no roba ni hace phishing de la contraseña del administrador. Simplemente espera a un administrador que ya ha iniciado sesión y usa la sesión de confianza de ese navegador para instalar un plugin malicioso en el sitio. El resultado es un backdoor PHP persistente escondido en una carpeta que la página normal de plugins nunca muestra.

Qué ocurrió

La cadena comienza con un cargador JavaScript colocado en una página de WordPress comprometida. No se ha confirmado cómo llega ese primer script a la página, así que el vector de acceso inicial sigue siendo una incógnita y no un hecho establecido.

Cuando un visitante entra en la página, el cargador la cubre con un iframe a pantalla completa diseñado para parecer una pantalla de verificación de tipo Cloudflare, con el clásico "Just a moment…". Mientras el visitante espera, el script toma discretamente la huella del navegador: tamaño de pantalla, datos de la tarjeta gráfica, zona horaria y número de plugins instalados en el navegador. También busca indicios de sandboxes y herramientas de análisis automático. Los datos recopilados van a un servidor de control, que decide si ese visitante concreto merece una segunda etapa.

Si el visitante es un administrador de WordPress autenticado, llega el paso clave. Apoyándose en las cookies de inicio de sesión que ya tiene el navegador, el script solicita la página de subida de plugins, lee de ella el nonce de seguridad, descarga un archivo ZIP llamado wm.zip desde un servidor intermedio y lo envía a través del endpoint estándar de instalación de plugins. Después abre la página de plugins y activa el nuevo plugin. WordPress acepta cada petición porque, desde su punto de vista, todo lo está haciendo un administrador legítimo con permisos para instalar plugins.

Esto no es un bypass de autenticación. La cuenta ya debe ser de administrador con permiso para instalar plugins. Pero es una forma muy eficaz de volver esa confianza contra el propio sitio.

El backdoor y cómo se esconde

El plugin subido se hace llamar Web Media Optimizer 2.1. El nombre sugiere una herramienta inofensiva para imágenes. No lo es en absoluto. El plugin:

  • inyecta JavaScript remoto en las páginas públicas del sitio;
  • desactiva la validación de certificados TLS cuando descarga su script de control;
  • puede establecer una cookie de inicio de sesión de administrador para la primera cuenta admin mediante un token codificado de forma fija, dando a los operadores una vía de regreso sin contraseña.

Al activarse, también se copia a wp-content/mu-plugins/wmedia-recovery.php. WordPress carga automáticamente todos los archivos de la carpeta mu-plugins, y esos archivos no aparecen en la lista habitual de plugins. Borrar el plugin visible no afecta, por tanto, a la copia que realmente importa, y por eso esta clase de malware de tipo must-use plugin reaparece una y otra vez tras limpiezas que se detuvieron demasiado pronto.

Por qué importa

El malware que solo se activa dentro de una sesión autenticada es difícil de detectar con escaneos rutinarios. Un escáner que visita el sitio público ve una página que puede parecer limpia, mientras que el comportamiento peligroso solo se dispara para un administrador conectado. Cualquiera que use un mismo perfil de navegador para la navegación diaria y para administrar el sitio está expuesto, porque el ataque solo necesita una visita a la página equivocada mientras wp-admin sigue con la sesión abierta.

Qué hacer

  • Separa la navegación de administración. Usa un perfil de navegador dedicado, o un navegador distinto, para wp-admin. No navegues por otros sitios desde él.
  • Cierra la sesión al terminar, e inmediatamente después de cualquier capa de "verificación" inesperada.
  • Rota las credenciales de administrador e invalida las sesiones activas si sospechas una exposición.
  • Limita los permisos de subida de plugins. Pocas cuentas necesitan instalar plugins, y WordPress permite desactivar por completo la modificación de archivos en sitios que despliegan plugins por otros medios.
  • Vigila mu-plugins. Genera alertas ante cualquier archivo PHP nuevo en wp-content/mu-plugins/ y revisa esa carpeta en cada limpieza.
  • Limpia a fondo. Elimina el plugin visible, la copia en mu-plugins y cualquier etiqueta de script remoto inyectada. Dejar uno solo de los tres basta para la reinfección.

Indicadores a vigilar

  • Nombre del plugin: Web Media Optimizer 2.1
  • Archivo de segunda etapa: wm.zip
  • Archivo de persistencia: wp-content/mu-plugins/wmedia-recovery.php
  • Script de control: ads.php
  • Dominios de mando y control (defanged): caapman[.]me, vtevens[.]icu, gerlace[.]com, nutmann[.]club, okuneva[.]sbs, vilialobos[.]lol
  • SHA256 de wm.zip: 9215d17e5138cee498bb529e69b1cc7267305136535025e9b49fe173cf648720
  • SHA256 de wmedia-recovery.php: 86d775c2d5cb459541cd2b0b967fac65ce20c60e483c71c9f7e108d5ad0bd564
  • SHA256 de ads.php: 2dfa9e708fdb92e5d36080065f978a33a692c0fe813a75be9c7cdff03be51b6e

Los dominios están defanged a propósito. Restáuralos únicamente dentro de una plataforma controlada de inteligencia de amenazas o de tu SIEM.

Ataques como este tienen éxito porque las señales son pequeñas: una etiqueta de script inesperada en una página pública, un archivo de más en una carpeta que nadie revisa, un plugin que nadie recuerda haber instalado. Nuestro servicio de escaneo de vulnerabilidades está diseñado para sacar a la luz precisamente esas señales pequeñas en instalaciones WordPress, desde núcleos y plugins desactualizados hasta scripts inyectados inesperados, para que una sesión de administrador prestada no se convierta en silencio en un punto de apoyo permanente.

COMPARTIR