Hace unos días nos escribió un cliente desesperado. Alguien le cambiaba la contraseña de administrador una y otra vez, y en su blog no dejaban de aparecer noticias que él no había escrito. Las borraba y, al día siguiente, había más.

Al analizar su base de datos encontramos el origen: un plugin falso que creaba administradores ocultos y publicaba spam de casinos de forma automática. No era un ataque contra él, evidentemente. Era un sistema pensado para infectar cualquier WordPress que pille, así que es muy probable que haya muchas más webs en la misma situación sin que sus dueños lo sepan.

¿Qué hace el ataque?

  1. Instala un plugin que parece legítimo. Se llama link-factory y aparece en la lista de plugins como uno más. No viene del repositorio oficial de WordPress. Sus archivos indican para qué sirve: uno crea usuarios, otro publica artículos, otro mete enlaces en el pie de página.
  2. Crea administradores ocultos. Tienen nombres del tipo lf_ seguido de letras al azar (por ejemplo lf_xxxxXXXXxxxx). Después borra la ficha del usuario directamente en la base de datos, pero conserva sus permisos de administrador. Por eso no lo ves en Usuarios, pero puede seguir entrando.
  3. Publica spam de casinos a escala industrial. En la web encontré más de 78.000 entradas generadas en cinco semanas. Eran artículos sobre casinos sin licencia, en inglés, italiano, alemán y neerlandés.
  4. Esconde enlaces en tu página de inicio. Añade un bloque así al final del contenido: <div style=»position:absolute;left:-5196px»>
  5. Queda fuera de la pantalla: tus visitantes no lo ven, pero Google sí. Tu reputación se usa para posicionar webs de apuestas y de venta de esteroides.
  6. 5. Guarda su «munición» en tu base de datos. Crea una tabla propia (*_link_factory_sentences) con decenas de frases ya redactadas con enlaces de spam, listas para insertarse.

¡Cambiar la contraseña no sirve!

Es el error más habitual. Mientras el plugin siga instalado, el atacante puede crear un administrador nuevo cuando quiera. Cambias tu contraseña, él entra con otra cuenta y te la vuelve a cambiar. Hay que eliminar el origen, no los síntomas.

Cómo saber si tu web está afectada

  • ¿Existe la carpeta wp-content/plugins/link-factory/?
  • ¿Hay una tabla que termine en link_factory_sentences en tu base de datos?
  • ¿Hay entradas o revisiones con títulos sobre casinos en idiomas que no usas?
  • ¿El código de tu página de inicio contiene un div con position:absolute;left:- seguido de miles de píxeles?
  • ¿Wordfence u otro registro de accesos muestra inicios de sesión de usuarios que empiezan por lf_?

Si gestionas un servidor con varias webs (Plesk, cPanel), puedes revisarlas todas de una vez por SSH:

find /var/www/vhosts -type d -name "link-factory" -path "*/wp-content/plugins/*"

Cómo limpiarlo

  1. Borra la carpeta del plugin por FTP o SSH. Desactivarlo no es suficiente.
  2. Elimina su tabla de la base de datos (prefijo_link_factory_sentences) y los restos de los usuarios lf_ en usermeta.
  3. Revisa tu página de inicio y quita el bloque oculto, o restaura una versión anterior al ataque.
  4. Cambia todas las credenciales: WordPress, FTP, base de datos y panel de hosting. Regenera las claves SALT de wp-config.php para cerrar todas las sesiones abiertas.
  5. Desactiva XML-RPC y activa la verificación en dos pasos.
  6. Busca otras puertas traseras. Si el plugin entró, algo lo dejó entrar. Revisa mu-plugins, la carpeta uploads (ahí no debería haber archivos PHP) y los archivos modificados recientemente.
  7. Limpia los restos (revisiones huérfanas, spam en la papelera) para recuperar el rendimiento.

La lección

Ninguna de estas webs tenía un aspecto raro a simple vista. Funcionaban, cargaban bien y el spam era invisible para quien las visitaba. La única pista eran unas contraseñas que cambiaban solas.

Si tienes una web en WordPress, revisa hoy mismo tu lista de plugins y de administradores. Y si ves algo que no reconoces, no lo desactives: investiga de dónde ha salido.

¿Te ha pasado algo parecido? Si encuentras este plugin en tu web, cuéntanoslo porque, cuantos más casos documentemos, antes se podrá frenar.