WordPress hackeado: qué hacer en las primeras horas
Abres tu web y te manda a una página de apuestas. O te escribe un cliente porque Chrome le avisa de que el sitio es peligroso, o el hosting te suspende la cuenta por enviar spam. Si te está pasando ahora mismo, no borres nada a ciegas ni restaures la última copia. Primero hay que frenar el daño, después guardar una copia de cómo está todo y solo entonces limpiar, buscando por dónde entraron. Si esa puerta queda abierta, vuelven en días.
Así lo hacemos nosotros cuando nos llaman con un WordPress hackeado. Te sirve para hacerlo tú o para saber qué pedirle a quien lo haga.
Cómo saber si es un hackeo y no un fallo
Un error 500 o una pantalla en blanco casi nunca son un ataque. Lo normal es que sea un plugin que falló al actualizarse o un cambio de versión de PHP, y eso tiene otra solución, la de una web caída o con error 500. Estas señales, en cambio, sí apuntan a que alguien entró:
- La web redirige a otra página, a veces solo desde el móvil o solo cuando llegas desde Google. Está hecho así a propósito, para que el dueño, que entra escribiendo la dirección, no lo vea.
- Chrome muestra la pantalla roja de sitio peligroso, o en Search Console aparece un aviso en el informe de problemas de seguridad.
- Hay usuarios administradores que nadie creó, o tu contraseña de siempre ya no funciona.
- Buscas
site:tudominio.comen Google y salen páginas que no escribiste, muchas veces en japonés o vendiendo medicamentos. - El hosting te avisa de que tu cuenta envía correo masivo, o tus correos normales empiezan a caer en la carpeta de spam de tus clientes.
- Aparecen ficheros PHP dentro de
wp-content/uploads, la carpeta de las imágenes, donde no debería haber ninguno.
Lo que no conviene hacer
Con los nervios, lo primero que sale es borrar todo lo que parece raro. Es mala idea por dos motivos. Esos ficheros son la única pista para saber por dónde entraron, y muchas veces el código malicioso va metido dentro de un fichero legítimo del tema o de un plugin, así que al borrarlo la web deja de funcionar.
Restaurar la última copia tampoco suele arreglarlo. Si la infección entró hace tres semanas, la copia de anoche también la lleva. Y aunque fuese anterior, la puerta por la que entraron sigue abierta.
Cambiar solo la contraseña de wp-admin se queda corto, porque quien entra suele dejar puertas traseras que no necesitan ninguna contraseña. Un plugin de seguridad ayuda a detectar lo conocido. Pero las puertas traseras bien hechas van sin disfrazar, dentro de ficheros que parecen normales, y ahí los escáneres automáticos fallan a menudo.
Qué hacer, en este orden
1. Frena lo que está haciendo daño
Si la web redirige a estafas o tu cuenta está enviando spam, eso se corta antes que nada. El spam hunde la reputación de tu dominio, y cuando pasa, tus correos de trabajo acaban en el correo no deseado de tus clientes. Cerrar la web entera solo hace falta si están robando datos, como en una tienda con el pago comprometido.
2. Guarda una copia de todo tal como está
Ficheros y base de datos, guardados fuera del servidor. No es para restaurarla. Es la evidencia que permite averiguar qué tocaron y cuándo, y la que vas a necesitar si luego tienes que explicar a un cliente o a la Agencia de Protección de Datos qué pasó.
3. Busca todo lo que cambió
WordPress permite comparar sus ficheros con los originales, y los plugins del repositorio oficial también. Con WP-CLI son dos órdenes, wp core verify-checksums y wp plugin verify-checksums --all. A eso hay que sumarle lo que ninguna comparación ve: ficheros PHP en uploads, administradores que nadie creó, tareas programadas raras y código metido en la base de datos, sobre todo en las opciones y en las entradas. Apunta cada fichero con su fecha de modificación, porque esa lista es la que te lleva al paso siguiente.
4. Averigua por dónde entraron
El fichero modificado más antiguo da la fecha, y los registros de acceso del servidor de ese día suelen enseñar la petición que lo creó. Lo más habitual es un plugin o un tema sin actualizar con un fallo conocido. Le siguen las contraseñas robadas, muchas veces por un programa espía en el ordenador de quien administra la web. Si el origen no aparece, lo honesto es decirlo y no inventarse un culpable que quede bien en el informe.
5. Limpia reinstalando, no borrando a mano
El núcleo de WordPress y los plugins se vuelven a instalar desde el original, sin tocar tu contenido. Los ficheros legítimos con código inyectado se restauran, y los que no pintan nada ahí, como las puertas traseras, se eliminan. En la base de datos se limpian solo las filas infectadas. Los administradores y las tareas que creó el atacante, fuera.
6. Cambia todas las claves y echa al atacante
No vale con la de tu usuario. Hay que cambiar las de todos los administradores, la de la base de datos, las del FTP y del panel del hosting, y regenerar las claves secretas de wp-config.php. Esto último cierra todas las sesiones abiertas, incluida la del atacante, que puede seguir dentro aunque cambies la contraseña. Hazlo desde un ordenador que sepas limpio. Si el robo vino de un programa espía, la contraseña nueva se va igual en cuanto la escribas.
7. Pide a Google que revise la web
Si Google la había marcado, el aviso no desaparece solo porque la limpies. Hay que entrar en Search Console, en el informe de problemas de seguridad, confirmar que está resuelto y solicitar la revisión.
8. Vigila los días siguientes
Una reinfección a las 24 o 48 horas quiere decir que quedó una puerta abierta. Por eso nosotros repetimos el análisis completo un par de días después, aunque todo parezca en orden.
Por qué vuelve la infección
Cuando una web se limpia y a la semana está igual, casi siempre es por una de estas cuatro razones:
- No se encontró la puerta de entrada y la reinfección, que está automatizada, volvió a pasar por ella.
- Quedó una puerta trasera en la base de datos, donde ningún escáner de ficheros mira.
- Hay otras webs en la misma cuenta del hosting que siguen infectadas y contagian a la vecina.
- La contraseña se está robando en el ordenador de quien administra la web.
La tercera es muy común en cuentas con webs antiguas que ya nadie recuerda, como una tienda que se cerró o una web de pruebas sin actualizar desde hace años. Se limpian todas o no se limpia ninguna.
Cuánto cuesta limpiar un WordPress hackeado
Depende sobre todo de cuántas webs haya en la cuenta y de lo extendida que esté la infección. Con nosotros, la limpieza de un WordPress empieza en 190 € + IVA. Si la necesitas empezada el mismo día laborable, desde 290 €. Te damos el presupuesto cerrado cuando hemos visto lo que hay, antes de empezar.
Incluye buscar la entrada y cerrarla, que es lo que evita pagar dos veces, y un informe con lo que encontramos, por dónde entraron y qué claves quedan por cambiar fuera de la web. No hace falta mover la web a nuestro hosting. La limpiamos donde esté.
Cómo evitar que vuelva a pasar
Lo más habitual es que entren por algo que ya tenía arreglo publicado. Tener pocos plugins, quitar los que no se usan, actualizar cada semana y guardar copias fuera del servidor cubre gran parte del riesgo. Si no tienes tiempo para eso, es justo lo que hace nuestro mantenimiento de WordPress, y si quieres saber cómo está tu web antes de que pase nada, la auditoría de seguridad te lo dice.
Y si lo estás viviendo ahora, llámanos al 986 06 02 70 o escríbenos desde el formulario de abajo con la dirección de la web y lo que ves. Todo el detalle del servicio está en limpieza de malware en WordPress.