Un WordPress infectado puso en riesgo otras tres webs del mismo hosting: así lo solucionamos

Técnico revisando archivos de una instalación WordPress infectada alojada junto a otras webs

Una infección de WordPress no siempre se queda en la página donde aparece el problema.

En este caso real, una empresa tenía cuatro instalaciones WordPress alojadas bajo una misma cuenta de hosting en IONOS. Una de ellas había sido comprometida con malware, pero la incidencia terminó obligando a revisar y asegurar también las otras tres.

El problema incluía archivos modificados, una cuenta de administrador que no debía existir y otra instalación WordPress antigua que también estaba contaminada.

La limpieza y recuperación necesitó 16 horas de trabajo.

Por privacidad, hemos eliminado cualquier dato que permita identificar a la empresa o sus dominios. Sí mencionamos IONOS porque el proveedor de alojamiento forma parte del contexto técnico del caso.

El problema empezó en una de las instalaciones de WordPress

La empresa gestionaba varios proyectos web utilizando una única cuenta de alojamiento en IONOS.

Entre ellos había cuatro instalaciones independientes de WordPress. Una correspondía además a una tienda online, por lo que una pérdida de datos podía afectar no solamente al contenido de la página, sino también a clientes, usuarios y pedidos.

Cuando se analizó una de las instalaciones aparecieron indicios claros de que no se trataba simplemente de un plugin que había dejado de funcionar.

Había numerosos archivos que habían sido modificados o añadidos y que no correspondían con los que deberían estar en una instalación normal de WordPress.

También apareció algo especialmente preocupante: una cuenta de administrador no legítima.

Eso cambiaba completamente el diagnóstico.

No bastaba con actualizar un plugin o restaurar una página. Había que considerar que alguien había conseguido modificar la instalación.

Este tipo de incidente requiere un proceso distinto al de una avería normal. En nuestra guía sobre cómo recuperar y reforzar un WordPress tras un hackeo explicamos por qué recuperar la página es solo una parte del trabajo: también hay que revisar accesos, archivos modificados y posibles mecanismos que permitan una reinfección.

Los archivos sospechosos estaban repartidos por WordPress

Durante la revisión aparecieron archivos PHP sospechosos en distintas zonas de la instalación.

Entre ellas:

  • wp-content
  • wp-content/uploads
  • wp-admin
  • wp-includes

No publicaremos los nombres originales de esos archivos.

El problema importante es otro: una infección de WordPress puede dejar archivos repartidos en distintas carpetas para mantener el acceso incluso después de eliminar el componente que inicialmente permitió entrar.

Por eso una limpieza no debería limitarse a borrar el primer archivo que detecte un antivirus.

Hay que comprobar qué archivos deberían existir, cuáles han cambiado y qué otros mecanismos pueden haber quedado dentro de la instalación.

Un detalle especialmente sospechoso: archivos PHP en uploads

La carpeta wp-content/uploads normalmente contiene las imágenes, documentos y otros archivos multimedia que se suben desde WordPress.

Encontrar allí determinados archivos PHP es una señal que merece investigación.

En esta intervención aparecieron archivos sospechosos precisamente en esa zona.

Eso no significa que cualquier archivo PHP encontrado en una instalación sea necesariamente malware. Pero sí significa que hay que comprobar su procedencia antes de eliminarlo o considerarlo legítimo.

Había un administrador que nadie reconocía

Los archivos modificados no fueron el único indicio.

También apareció un usuario con permisos de administrador que no correspondía a ninguna persona autorizada.

Este detalle es especialmente importante porque una infección puede sobrevivir aunque se eliminen los archivos inicialmente detectados si el atacante conserva otra forma de entrar.

Por eso, tras un incidente, hay que revisar al menos:

  • administradores;
  • editores;
  • cuentas antiguas;
  • usuarios que ya no deberían tener acceso;
  • accesos FTP;
  • otras credenciales asociadas al alojamiento.

Una auditoría de usuarios es una parte básica de cualquier recuperación de WordPress comprometido.

El problema no terminaba en esa web

Aquí estaba una de las particularidades del caso.

La empresa tenía otras tres instalaciones WordPress dentro de la misma cuenta de alojamiento.

Según la documentación de la intervención, IONOS había aplicado determinados bloqueos sobre el resto de los sitios para evitar que el problema pudiera propagarse.

Por tanto, aunque el malware se hubiera detectado inicialmente en una instalación, no era razonable asumir automáticamente que las demás estaban limpias.

Las cuatro tuvieron que ser revisadas.

Este es uno de los riesgos de alojar numerosas webs independientes bajo una misma cuenta: administrativamente resulta cómodo, pero un incidente en una de ellas puede aumentar mucho el alcance del problema.

No significa que compartir hosting provoque una infección. Significa que, cuando se produce una incidencia, hay que entender cómo están aisladas las diferentes instalaciones y qué recursos comparten.

Apareció además otra instalación WordPress abandonada

Durante la revisión del alojamiento apareció otro problema importante.

Existía un antiguo subdominio con una instalación WordPress que ya no era necesaria.

También estaba contaminada.

La solución en este caso no fue intentar recuperarla. Se eliminó completamente:

  • el subdominio;
  • la instalación;
  • su base de datos;
  • los accesos asociados.

Es un ejemplo de un problema bastante habitual.

Una empresa puede renovar su web y dejar la antigua en una carpeta, crear páginas temporales para una campaña o instalar WordPress en un subdominio para realizar pruebas.

Meses después, nadie se acuerda de ellas.

Pero siguen estando conectadas a Internet.

Y si contienen una versión antigua de WordPress, un plugin vulnerable o un tema que ya no recibe mantenimiento, pueden acabar convirtiéndose en uno de los puntos más débiles del servidor.

La regla práctica es sencilla: si una instalación WordPress ya no tiene ninguna función, normalmente es más seguro eliminarla que abandonarla.

Cómo abordamos la limpieza

La recuperación no consistió en instalar un plugin de seguridad y pulsar un botón.

Hubo que actuar sobre distintos niveles.

1. Eliminación de los archivos contaminados

Se revisaron los archivos identificados como modificados o sospechosos y se eliminaron los que no correspondían con una instalación legítima.

También se revisaron diferentes directorios de WordPress buscando restos de la infección.

Eliminar malware requiere especial cuidado.

Borrar el archivo equivocado puede romper la web. Mantener un archivo comprometido puede permitir que el atacante vuelva a entrar.

Por eso es importante distinguir entre archivos del propio WordPress, archivos de plugins y temas y elementos que no deberían estar allí.

2. Eliminación de instalaciones que ya no eran necesarias

La antigua instalación del subdominio se eliminó completamente porque no existía ninguna razón para mantenerla.

No tenía sentido invertir tiempo en asegurar una web abandonada que ya no cumplía ninguna función.

Además de reducir el riesgo, eliminar instalaciones innecesarias simplifica mucho el mantenimiento futuro.

3. Revisión de las otras instalaciones del hosting

Las otras webs alojadas bajo la misma cuenta también fueron revisadas y actualizadas.

Esta decisión es importante porque limpiar solamente el sitio donde inicialmente aparece el malware puede dejar sin resolver el verdadero alcance del incidente.

Cuando varias instalaciones comparten alojamiento hay que comprobar si el problema está realmente aislado.

4. Cambio de contraseñas

Se renovaron las credenciales asociadas a las instalaciones.

Entre ellas, contraseñas de usuarios con permisos elevados y accesos relacionados con el servidor.

Cambiar contraseñas después de una infección no es una precaución exagerada.

Si una credencial ha podido quedar expuesta, mantenerla permitiría volver a entrar aunque toda la instalación hubiera sido limpiada correctamente.

5. Autenticación en dos pasos para los administradores

Se activó autenticación de doble factor para usuarios con privilegios.

Con 2FA, conocer la contraseña deja de ser suficiente para acceder al panel de administración.

Se necesita además un segundo elemento de autenticación generado, por ejemplo, mediante una aplicación instalada en el teléfono.

No sustituye a una buena contraseña ni evita todas las formas de ataque, pero añade una barrera útil frente al robo de credenciales.

6. Cambio de la dirección de acceso al administrador

También se modificó la dirección utilizada para acceder a la administración de WordPress.

Conviene hacer aquí una precisión.

Cambiar /wp-admin o la URL habitual de inicio de sesión no convierte WordPress en seguro.

No debería considerarse una medida equivalente a actualizar WordPress, controlar usuarios o utilizar 2FA.

Sí puede reducir determinadas peticiones automatizadas y formar parte de una estrategia de endurecimiento, pero no sustituye a las medidas de seguridad realmente importantes.

7. Actualización de WordPress, plugins y temas

Las distintas instalaciones tenían que quedar en un estado mantenible.

Se actualizaron:

  • WordPress;
  • plugins;
  • temas.

También se eliminaron plugins que ya no eran necesarios.

Mantener componentes inutilizados tiene poco sentido. Aunque estén desactivados, siguen siendo archivos presentes en el servidor y pueden acabar olvidándose.

Cuantos menos componentes innecesarios tenga una instalación, menor será también la superficie que habrá que revisar y mantener.

Las actualizaciones son además una de las medidas básicas para reducir la exposición a vulnerabilidades conocidas. En nuestra guía sobre actualizar WordPress por seguridad explicamos cómo actualizar núcleo, plugins y temas de forma controlada y por qué conviene probar los cambios antes cuando se trata de una web importante para el negocio.

8. Actualización de PHP

Las instalaciones utilizaban PHP 7.4 y fueron migradas a PHP 8.2.

La actualización se realizó dentro del proceso general de modernización del entorno.

Cambiar PHP tampoco debe hacerse a ciegas. Antes hay que comprobar que el tema y los plugins utilizados sean compatibles con la nueva versión.

En este caso, además, la actualización de distintos componentes provocó una incidencia de visualización relacionada con un plugin de traducción, que también tuvo que corregirse.

Es un buen ejemplo de por qué una recuperación de seguridad puede terminar descubriendo problemas adicionales de compatibilidad.

WordPress, PHP, los plugins y los temas evolucionan de forma conjunta. Mantener durante años una instalación sin revisar puede acabar creando una cadena de incompatibilidades que hace cada vez más difícil actualizarla. Es una de las razones por las que conviene plantear las actualizaciones de WordPress en una web de empresa como un proceso de mantenimiento y no como una tarea que se realiza únicamente cuando aparece un problema.

9. Instalación y configuración de herramientas de seguridad

En las instalaciones se configuraron herramientas de seguridad, entre ellas Wordfence y Security Optimizer.

El objetivo no era considerar que instalar estos plugins resolvía por sí solo el problema.

La limpieza se había realizado antes.

Estas herramientas se incorporaron después como parte de las medidas para:

  • controlar modificaciones;
  • detectar actividad sospechosa;
  • reforzar determinados accesos;
  • recibir alertas de seguridad.

Un plugin de seguridad es mucho más útil como herramienta preventiva y de vigilancia que como sustituto de una limpieza técnica cuando la web ya ha sido comprometida.

10. Creación y revisión de las copias de seguridad

Tras finalizar los trabajos se generaron copias de seguridad de las instalaciones.

Inicialmente también se configuraron backups periódicos.

Pero apareció otra conclusión importante: las copias críticas no deberían depender exclusivamente del mismo alojamiento que protege la web original.

Si el problema afecta al servidor completo, una copia almacenada únicamente dentro de ese mismo entorno puede verse también comprometida, eliminada o inaccesible.

Para una tienda online, además, la frecuencia importa mucho.

Si la última copia disponible tiene una semana y tienes que restaurarla, podrías perder una semana de:

  • pedidos;
  • nuevos usuarios;
  • modificaciones;
  • formularios;
  • cambios realizados en la web.

Por eso en una web con actividad comercial puede tener sentido trabajar con copias diarias o incluso estrategias más frecuentes, dependiendo del volumen de cambios.

La frecuencia no es la única decisión importante. También hay que determinar qué se copia, cuántas versiones se conservan, dónde se almacenan y, sobre todo, comprobar que realmente pueden restaurarse. En nuestra guía de copias de seguridad para WordPress explicamos cómo plantear una estrategia de backup que no dependa exclusivamente del servidor donde está alojada la web.

Había otro problema oculto: el hosting había alcanzado el límite de archivos

La infección no fue lo único que apareció durante la intervención.

La cuenta de IONOS también había alcanzado el límite de archivos y carpetas permitido por el plan contratado.

Hubo que eliminar miles de archivos que ya no se utilizaban.

Este problema puede resultar confuso para el propietario de una web porque todavía puede quedar espacio disponible en disco y, aun así, el hosting impedir crear nuevos archivos.

Los proveedores pueden establecer otros límites además del almacenamiento total.

Por ejemplo, el número de archivos que puede contener una cuenta.

Las copias de seguridad acumuladas, instalaciones antiguas, cachés y archivos temporales pueden hacer crecer ese número de forma considerable.

Por eso conviene revisar periódicamente qué se está almacenando realmente en el servidor.

Lo que este caso demuestra sobre alojar varias webs juntas

Tener cuatro WordPress bajo una misma cuenta resulta cómodo.

Solo hay que gestionar un proveedor y un único alojamiento.

Pero también crea dependencias.

Cuando una instalación queda comprometida, hay que valorar qué otras webs pueden verse afectadas y cómo está configurado el aislamiento entre ellas.

En este caso, el incidente llevó a recomendar que se revisara la estrategia de alojamiento y, cuando se acercara la renovación, considerar un hosting con mayores recursos y un soporte técnico más adecuado para el tipo de webs utilizadas.

No porque IONOS fuera la causa demostrada de la infección —la documentación disponible no permite afirmar cuál fue exactamente la puerta de entrada—, sino porque la capacidad de respuesta del alojamiento también importa cuando aparece un problema grave.

También conviene distinguir responsabilidades. El proveedor de hosting puede aplicar medidas sobre su infraestructura, bloquear determinados archivos o limitar una cuenta ante una incidencia, pero eso no equivale a mantener y supervisar cada instalación WordPress del cliente.

Para una pyme, confundir ambas cosas puede acabar dejando tareas importantes sin responsable. Es uno de los problemas que tratamos al analizar los problemas de WordPress que más afectan a las pymes.

Lo que no sabemos de este ataque

Hay algo que conviene dejar claro.

La documentación de aquel trabajo permite saber qué se encontró y qué se hizo para solucionarlo, pero no identifica de forma concluyente el vector inicial de entrada.

No podemos afirmar que el ataque se produjera por un plugin vulnerable, una contraseña comprometida, una versión antigua de WordPress o cualquier otra vía concreta.

Sí sabemos que había:

  • archivos comprometidos;
  • una cuenta administrativa ilegítima;
  • otra instalación contaminada;
  • componentes que requerían actualización.

Pero convertir cualquiera de esos elementos en la causa inicial sería ir más allá de lo que permite demostrar la documentación disponible.

¿Qué habría ocurrido si solo hubiéramos borrado el malware?

Es una pregunta importante.

La web posiblemente habría vuelto a funcionar.

Pero eso no significa que estuviera limpia.

Si se hubiera mantenido:

  • el administrador ilegítimo;
  • una contraseña comprometida;
  • otra instalación contaminada;
  • plugins antiguos;
  • o archivos adicionales del atacante,

el problema podría haber reaparecido.

Una limpieza de WordPress no debería medirse únicamente por que la página vuelva a cargar.

Hay que intentar eliminar también las vías que puedan permitir volver a comprometerla.

Por eso la recuperación de una web infectada no termina cuando desaparece el síntoma visible. Hay que revisar el entorno y reforzarlo para reducir el riesgo de reinfección.

Qué comprobar si sospechas que tu WordPress ha sido infectado

Algunas señales justifican una revisión:

  • aparecen administradores que no reconoces;
  • Google muestra páginas extrañas asociadas a tu dominio;
  • la web redirige a sitios que no conoces;
  • aparecen archivos que nadie recuerda haber creado;
  • el hosting envía avisos de malware;
  • se modifican archivos de WordPress sin una actualización conocida;
  • aparecen plugins que nadie ha instalado;
  • se disparan los consumos de recursos;
  • el panel de administración empieza a comportarse de forma extraña.

Una única señal no demuestra siempre que exista una infección, pero sí puede justificar una auditoría.

Qué haría diferente hoy

El proceso de recuperación fue correcto para la situación encontrada, pero el caso deja varias mejoras evidentes para una estrategia moderna de mantenimiento.

La principal sería no depender exclusivamente de copias almacenadas dentro del mismo servidor.

También separaría, cuando el proyecto lo justifique, instalaciones especialmente sensibles —por ejemplo un eCommerce— del resto de webs menos críticas.

Y establecería un inventario claro de instalaciones.

En realidad, muchas de las medidas que hubo que aplicar después del incidente deberían formar parte del mantenimiento habitual: actualizaciones, copias externas, control de usuarios, revisión de plugins, monitorización y comprobaciones periódicas.

En qué debe incluir el mantenimiento de WordPress en 2026 explicamos cómo organizar estas tareas y por qué mantener una web no consiste simplemente en instalar las actualizaciones que aparecen en el panel.

Una empresa debería poder responder fácilmente a estas preguntas:

  • ¿Cuántos WordPress tenemos?
  • ¿Dónde están alojados?
  • ¿Quién tiene permisos de administrador?
  • ¿Qué instalaciones siguen realmente utilizándose?
  • ¿Cuándo se actualizaron por última vez?
  • ¿Dónde están las copias de seguridad?
  • ¿Cuándo se comprobó por última vez que pueden restaurarse?

Si esas preguntas no tienen respuesta, existe una deuda de mantenimiento aunque las páginas aparentemente funcionen bien.

La lección principal: una infección no se arregla solo limpiando archivos

Este caso empezó con malware en una instalación y terminó obligando a revisar cuatro WordPress, eliminar una instalación abandonada, renovar credenciales, actualizar PHP, asegurar accesos, configurar copias y limpiar miles de archivos del alojamiento.

Ese es precisamente el problema con muchas infecciones.

Lo que se ve inicialmente puede ser solo una parte.

Si tu web WordPress ha sido comprometida, recuperar la página es el primer objetivo. Pero después hay que responder a otra pregunta mucho más importante:

¿hemos eliminado realmente la infección y cualquier posibilidad de que el atacante siga teniendo acceso?

En Arreglo tu Web trabajamos en la reparación, limpieza y revisión de instalaciones WordPress comprometidas, pero también en el mantenimiento posterior necesario para que la web quede actualizada, monitorizada y con una estrategia de recuperación.

Si tienes una incidencia o sospechas que algo no funciona como debería, puedes contactarnos para revisar tu WordPress.

Autor/a:

Deja el primer comentario

Contenidos relacionados