Back to top

¿Cómo limpiar el código malicioso de tu web en WordPress?

Si Google detecta que tu web contiene código con malas intenciones, con phising o que puede ser engañoso de alguna manera es bastante probable que bloquee tu web. Además de bloquearla temporalmente hasta que lo soluciones, esto puede tener repercusiones para el SEO de tu web.

 

¿Sospechas que tu web ha sido hackeada? Todo lo que debes hacer.

 

Recuerda que antes de empezar a investigar deberías blindar tu web para que ningún otro usuario pueda trabajar mientras tú pasas la escoba. Si no lo has hecho aún, cambia todas las contraseñas para asegurar que tu web está protegida. Aquí te contábamos como hacerlo:

Protege tu web: cómo cambiar las contraseñas en WordPress

 

Para investigar el estado de salud de tu web debes, debes tener claros 3 puntos principales desde los que pueden hackearte:

– Una cuenta de FTP: el caso más peligroso. Si acceden a tu sitio web tendrán acceso a todo.

– Un usuario Administrador de WordPress: Podrán configurar tu web y subir nuevos plugins o modificar el tema y controlar al resto de usuarios.

– Un usuario de Base de Datos: Podrán conseguir acceso a todos tus datos almacenados y acceso como usuario administrador de wordpress

 

Sigue los siguientes pasos para descubrir cual es tu caso y como resolverlo:

 

1. Revisa ficheros y carpetas desconocidas en la raíz

 

Si localizas ficheros desconocidos y no han sido creados por ningún plugin de WordPress, lo más probable es que sean ficheros malintencionados. Encontrar ficheros de este tipo te puede dar pistas sobre la fecha en la que se realizó el ataque al comprobar la última fecha de modificación.

 

Aunque existen otros métodos de añadir ficheros nuevos, localizar ficheros maliciosos en la carpeta raíz puede ser un indicativo de que han accedido a través de tu FTP. Si ese es tu caso, tu web está en riesgo máximo.

 

Borra todos los ficheros y carpetas sospechosos que encuentres, ¡no los quieres en tu web!.

2. Revisa plugins desconocidos en wp-content/plugins

 

Una práctica habitual en técnicas de hackeo de WP es subir plugins con intenciones engañosas (como puede ser phishing o envío de spam).

La mayoría de las veces que encuentras plugins maliciosos en tu web, es indicativo de que lo que ha sido vulnerado es uno de tus usuarios administradores (que son los que tienen permisos para subir nuevos plugins).

 

Si en la carpeta de plugins se encuentras alguna carpeta que no conozcas puede ser un plugin malicioso, puedes buscar información sobre ese plugin en Internet y si no encuentras nada, lo más probable es que no exista. Ten en cuenta que para evitar detección automatizada mediante scripts, una estrategia habitual es que los plugins malintencionados tengan nombres aleatorios, eso te puede dar una pista para localizarlo rápidamente.

 

Deshazte de esos plugins maliciosos cuanto antes.

 

3. Revisión al detalle

 

Una vez que has realizado la revisión inicial y te has asegurado de que no has encontrado nada grave a primera vista, deberías realizar una revisión concienzuda sobre ficheros de WordPress modificados y añadidos.

 

Si en la revisión inicial has descubierto la fecha del ataque, esto te puede dar un buen punto de partida por donde empezar a investigar. Puedes buscar todos los ficheros que se modificaron o crearon ese mismo día. También puedes realizar búsquedas de tipos de ficheros concretos que sepas que no deben estar ahí. Puedes localizarlos con una búsqueda de este tipo:

      find . -printf "%m\t%Tc\t%p\n"

Este comando listará todos los ficheros del directorio actual mostrando sus permisos (%m), su fecha de modificación (%Tc) y su nombre/ruta (%p).

Añadiendo un filtro podrás localizar rápidamente los ficheros que necesites. Por ejemplo:

– Ficheros creados un día concreto

        find . -printf "%m\t%Tc\t%p\n" | grep "vie 30 jul"

– Ficheros en la carpeta uploads .php

        find wp-content/uploads/. -printf "%m\t%Tc\t%p\n" | grep "\.php"

– Ficheros con permisos incorrectos

        find . -printf "%m\t%Tc\t%p\n" | grep -E '777|755'

– Ficheros .ico

        find . -printf "%m\t%Tc\t%p\n" | grep "\.ico"

 

En esta guía sencilla para limpiar WordPress no vamos a entrar mucho más al detalle de cómo hacer este tipo de investigación, ya que depende completamente del tipo de ataque que haya sido y el rastro que puedan dejar. Puedes ver este posts donde lo explicamos en profundidad:

 

¿Tu WordPress ha sido hackeado? Limpia tu web a mano

 

Es interesante realizar una investigación porque  te puede dejar pistas sobre en qué modo vulneraron tu web y desde qué punto entraron. Si fue algún agujero de seguridad en algún plugin obsoleto o si, por ejemplo, localizas intentos de login con el usuario afectado.   Aquí tienes unos puntos sencillos que puedes utilizar como ideas sobre las que puedes investigar:

– Revisa los logs de conexiones

– Revisa los logs de intentos de login

– Busca en los logs de navegación la primera fecha en la que se accede a la URL maliciosa

– Busca ficheros creados-modificados en las fechas comprometidas

– Busca ficheros creados-modificados por el mismo usuario que vulneró los descubiertos anteriormente

– Busca todos los ficheros que incluyan una evaluación de código en base64

 

Atención: Si has descubierto la fecha del ataque, una opción rápida y segura es recuperar una versión de la web anterior al problema. Ten en cuenta que si la web sigue siendo insegura, nada impedirá que la vuelvan a vulnerar.

4. WordFence

Afortunadamente existe un plugin en WordPress que puede facilitarte mucho la vida tanto como para buscar código malicioso previo como para proteger tu web en el futuro: WordFence.   Una vez hayas cambiado todas las contraseñas de tu web, la has blindado de ataques exteriores y has borrado el código malicioso inmediato, es el momento de acceder al backend de tu web instalar este plugin.   Lo primero que debes hacer después de instalar WordFence es lanzar un análisis de tu web. Ten en cuenta que este análisis puede tardar bastante tiempo si tu web es grande.

 

Atención: en ocasiones el proceso de análisis hace peticiones demasiado largas que algunos hosting no permiten o algún otro plugin interfiere ralentizando las actualizaciones de wordfence y eso hace que el análisis se pause a mitad. En ese caso verás un mensaje como este:  “The current scan looks like it has failed”. Tendrás que revisar las guías de WordFence para saber cual es el problema más concretamente. Podrás solucionarlomodificando el fichero wp-config.php y añadiendo alguna línea al final del todo. Por ejemplo:

-Si el problema es que los intentos de conexión están tardando demasiado, tal vez necesites ampliarlos :

define('WORDFENCE_SCAN_FAILURE_THRESHOLD', 600);

Tienes un listado con todas las constantes que puedes editar de WordFence aquí

 

Cuando haya terminado el análisis, aparecerá una lista de intervenciones que deberías realizar. Algunas de ellas no serán importantes, pero otras sí. Las que aquí nos interesan en concreto son los ficheros modificados o añadidos ilícitamente. Desde el propio panel de WordFence podrás eliminar estos ficheros o restaurarlos desde un botón según sea necesario.

 

Después de realizar el análisis y la intervención correspondiente, puedes acceder a la configuración del cortafuegos. WordFence se inicia en modo aprendizaje durante una semana. Una vez haya aprendido del tráfico de tu web sabrá que tipo de conexiones son maliciosas y las bloqueará. 

 

Si has llegado hasta este punto y has realizado todos los pasos, tu web está prácticamente segura. Ahora deberías acometer la parte más compleja de todas y para la cual seguramente necesites a algún experto: actualizar tu versión de PHP, actualizar tu versión de WordPress, y actualizar la versión de todos los plugins. WordFence te habrá avisado de cuáles son los que tienen actualizaciones críticas.

 

Además de las actualizaciones todavía puedes hacer algunos pequeños trucos que mejoran la seguridad de tu web. Son buenas prácticas que puedes aplicar para asegurarte que no vuelves a tener ningún problema de este tipo. Aprende todos los trucos en esta entrada: Buenas prácticas y mejorar mi web en WordPress.