PROBLEMAS FRECUENTES

Por qué una web WordPress vuelve a infectarse después de limpiarla

Jordi Garcia26 de agosto de 20264 min de lectura
Infección recurrente de malware en WordPress

Un caso bastante habitual en sitios WordPress comprometidos es limpiar aparentemente la infección y descubrir unos días después que el problema ha vuelto.

Reaparecen archivos extraños, se crean nuevos usuarios, regresan las redirecciones o Google vuelve a detectar páginas de spam.

Cuando esto sucede, normalmente no significa que el sitio esté sufriendo ataques completamente independientes uno detrás de otro. Con frecuencia existe una causa que no fue eliminada durante la primera limpieza.

Borrar el malware visible no siempre elimina el acceso

Una infección puede estar formada por muchos archivos distintos.

El código que provoca una redirección puede encontrarse en un lugar mientras que el mecanismo utilizado para recuperar el acceso está escondido en otro.

Ese segundo componente suele denominarse puerta trasera o backdoor.

Su función es permitir ejecutar código, crear archivos o recuperar el control de la web después de que el problema visible haya sido eliminado.

Una puerta trasera puede ocultarse dentro de un plugin, un tema, archivos del propio WordPress o directorios que normalmente no revisaríamos.

Por eso eliminar únicamente aquello que produce el síntoma no garantiza que la web esté limpia.

Plugins vulnerables o abandonados

Otra causa frecuente de reinfecciones es mantener activo el mismo punto de entrada utilizado originalmente.

WordPress no suele ser el único componente de una web. Una instalación puede contener decenas de plugins y un tema, cada uno desarrollado y actualizado de manera independiente.

Si la intrusión se produjo aprovechando una vulnerabilidad de un plugin y ese plugin continúa instalado en la misma versión, limpiar el malware no elimina la vulnerabilidad.

El atacante —o simplemente otro bot automatizado— puede volver a aprovecharla.

Cuando existe una vulnerabilidad concreta conviene contrastar siempre la información con la documentación oficial del desarrollador y las fuentes de seguridad correspondientes.

Credenciales comprometidas

También es posible limpiar correctamente todos los archivos y sufrir una nueva intrusión porque las credenciales siguen comprometidas.

No hay que pensar únicamente en la contraseña de WordPress.

Una web puede ser modificada utilizando:

  • FTP o SFTP;
  • el panel del hosting;
  • SSH;
  • una cuenta administrativa de WordPress;
  • herramientas externas conectadas al sitio.

Si una de esas credenciales fue robada y continúa siendo válida, el atacante no necesita volver a explotar ninguna vulnerabilidad.

Además de cambiar contraseñas, conviene comprobar que no existan usuarios desconocidos ni métodos de acceso que ya no se utilicen.

Malware escondido en lugares poco habituales

Algunas infecciones intentan mezclarse con archivos legítimos para dificultar su detección.

Pueden aparecer archivos PHP dentro de directorios de imágenes, modificaciones en archivos de plugins legítimos o código insertado en zonas que normalmente no se inspeccionan durante una limpieza rápida.

La base de datos también puede contener código malicioso, especialmente cuando el ataque modifica contenido, opciones de WordPress o widgets.

Por este motivo una revisión seria no debería limitarse a buscar nombres de archivo sospechosos.

Es mucho más útil analizar qué archivos han cambiado, comparar componentes con versiones originales y buscar patrones que no correspondan al comportamiento normal de la instalación.

Las tareas programadas también importan

WordPress dispone de su propio sistema de tareas programadas, conocido como WP-Cron.

Los plugins lo utilizan para ejecutar procesos periódicos: enviar correos, limpiar cachés, realizar sincronizaciones o programar publicaciones.

Pero ese mecanismo también puede ser utilizado para ejecutar código malicioso de forma recurrente.

Un archivo infectado podría ser eliminado y volver a aparecer posteriormente porque otro proceso sigue generándolo.

Por eso, en determinados incidentes, conviene revisar también las tareas programadas y otros procesos automáticos del servidor.

Restaurar un backup infectado

Otra situación bastante común ocurre cuando se limpia la web y posteriormente se restaura una copia antigua.

Si esa copia ya contenía la infección, el malware vuelve con ella.

El problema es que normalmente no sabemos el momento exacto en que el atacante consiguió acceso. Los síntomas pueden aparecer mucho después.

Antes de considerar una copia como segura hay que tener en cuenta su fecha y, si el incidente lo requiere, revisar también su contenido.

Cómo evitar entrar en un ciclo de reinfecciones

La solución pasa por tratar la infección como un incidente completo y no únicamente como un conjunto de archivos que deben borrarse.

Después de limpiar conviene revisar el origen probable del acceso, actualizar componentes, eliminar software innecesario, renovar credenciales y monitorizar temporalmente los cambios.

Los logs del servidor pueden ser especialmente útiles para reconstruir qué sucedió antes de la infección.

No siempre permiten determinar el origen con certeza, pero pueden mostrar peticiones, IP, URLs o comportamientos anómalos que ayudan a entender el incidente.

Si has limpiado varias veces un WordPress y el malware continúa apareciendo, probablemente sea necesario revisar el sitio con más profundidad antes de repetir otra limpieza superficial.

Escrito por Jordi Garcia

Desarrollador web especializado en WordPress con más de veinte años de experiencia en desarrollo, hosting y servidores. Atención directa, sin intermediarios.

¿Reconoces alguna de estas señales en tu web?

Solicita una valoración de tu WordPress hackeado antes de seguir modificando archivos.

Ver servicio para WordPress hackeado