Me han hackeado la web. ¿Que hago?

Definitivamente, WordPress es uno de los mejores CMS (gestores de contenido) que hay hoy en día por internet. 

Su frecuencia de actualizaciones, su versatilidad y su gran apoyo de la comunidad, hace de WordPress una gran opción a la hora de iniciar tu trayecto por internet. Lejos han quedado las tardes de programación “a pelo”, montando tablas en HTML, creando estilos CSS… Hoy en día, para según qué proyectos, vale mucho la pena iniciarlos en WordPress.

El problema es, que como todo, lo más usado es lo más hackeado, y más teniendo licencia GPL. Cada vez es más frecuente que nuestra web hecha en WordPress sea hackeada, porque los vectores de ataque, cada vez son mayores.

¿Que hacer para evitar que nos hackeen la web?

Bien, si queremos utilizar WordPress en nuestro sitio web, lo primero que tenemos que tener claro es que vamos a tener que emplear una parte de nuestro tiempo en actualizarlo. Y actualizar el que? Pues tres factores:

  • Core
  • Plugins
  • Tema

Core: La versión de WordPress. Este es relativamente sencillo. Hasta podemos dejar activa la opción de que se actualice automáticamente (disponible desde la versión 3.7)

Plugins: Los plugins de nuestra web. Todas las funcionalidades extra que tengamos en la web se pueden actualizar cómodamente desde el panel de control. Hay que huir de las versiones nulled. Aunque más de una web nos encontremos con esta situación, a la larga, esto nos puede crear más de un quebradero de cabeza. Plugins desactualizados, algunos con bicho incorporado… Recordad la máxima de internet! Si algo es gratis, el producto eres tú.

Tema: El tema de wordpress es también fácilmente actualizable. Recordad crear vuestros tema hijo antes de empezar a diseñar vuestro sitio web.

Noto algo raro en mi web.

Ui! Que raro… mi web redirecciona a otra…. mi tienda virtual apunta a otra pasarela de pago… o pone un suplemento que no toca…. o envía masivamente correo no deseado, y mi alojamiento me ha bloqueado el acceso hasta que no arregle el problema…

Todos estos casos son un problema. Pequeño cuando se trata de una web personal, grande cuando se trate de una empresa o peor aún, una tienda virtual.

¿Qué hago ahora?

Detectar el vector de ataque no siempre es fácil. Muchas veces no sabes dónde está el fallo, cual es el plugin desactualizado, o que puede haber mal. Lo mejor es mirar plugin por plugin sus changelogs, y ver si hay alguno que ha tenido un parche de seguridad crítico. El mayor número de veces éste es el caso.

Usar la copia de seguridad.

Lo ideal es saber desde cuando hace que la web está hackeada. Sabiendo eso, podemos usar una copia de seguridad anterior al hackeo y sustituirla por la limpia y después, actualizarlo absolutamente todo. Con esto, podemos terminar nuestra limpieza aquí. 

¿Y si no tenemos copia de seguridad, o el hackeo es anterior a nuestra última copia?

Entonces tendremos que limpiar manualmente la web.¿Como? Primero, una copia de seguridad. Aunque se trate de un backup con la web pirateada, debemos tenerla en caso que eliminemos contenido erróneamente.

¡Empecemos!

¡Vamos allá! Lo primero que tenemos que hacer es limpiar la versión de WordPress. Yo prefiero este método antes que actualizarlo. Esto es fácil:

  1. Descargamos la última versión del repositorio de wp y lo descomprimimos.
  2. Por FTP (o el administrador de archivos de nuestro servidor), eliminamos completamente las carpetas wp-admin, wp-includes, y todo el contenido de la raíz del wp, menos el archivo wp-config.php. 
  3. Sustituimos todo lo eliminado por lo descargado en el punto 1. O dicho de otra manera, lo subimos todo menos wp-config.php y la carpeta wp-content.

Esto sirve para eliminar cualquier archivo que pueda haber en alguno de estos sitios (aunque no es lo más probable)

Revisar el wp-config.php

Puesto que no hemos eliminado este archivo, tendremos que abrirlo en nuestro editor de texto y revisar que no haya ninguna línea extraña de código.

Actualizar todos nuestros plugins y temas. 

Pim, pam, hacerlo con todos los plugins y nuestro tema. Ah! Y si tenemos algún plugin o tema que no usemos, eliminalo. No vale la pena tener algo que no vayamos a utilizar. Y no, no sirve con tenerlo desactivado. Elimínalo.

Revisar la carpeta wp-content.

Este es el paso más tedioso, puesto que aquí es donde están todos los temas, plugins, imágenes, archivos… de nuestra web. 

A bote pronto hay que revisar todas las carpetas para que no haya ningún archivo extraño. Y cuando digo extraño me refiero a archivos .php o .exe en la carpeta uploads, plugins no instalados en la carpeta plugins… Hay que tener cuidado con lo que se elimina, puesto que podemos dejar la web inservible. Pero para eso está la copia de seguridad no?

Revisar el tema. 

Hay que revisar el tema o reinstalarlo. Lo más común es que la inyección de código esté en la cabecera o footer del tema. Reinstalando eliminamos toda duda.

Base de datos.

Si aún así tenemos problemas, hay que revisar la base de datos. Si realizamos una búsqueda por ésta, lo podemos hacer mediante phpmyadmin, wp-cli o quizá la más cómoda (la que yo uso), mediante Database Search and Replace Script in PHP.

Si lo descargamos, descomprimimos y subimos mediante FTP a la raíz del sitio, nos obtiene automáticamente los datos de conexión de la base de datos y podemos realizar búsquedas en ésta y eliminar el código maligno que veamos. Lo más común es realizar búsquedas del tipo “<script”, “eval(”…