Qué hacer si tu WordPress es hackeado: guía de recuperación paso a paso
¡Que susto! Descubrir que tu WordPress hackeado es una de las peores experiencias para cualquier propietario de una web. Ver tu sitio lleno de spam, redirigiendo a páginas raras o directamente caído, produce una mezcla de pánico y frustración.
Pero respira hondo. No estás solo y, sobre todo, tiene solución.
En esta guía extensa y paso a paso, voy a explicarte exactamente qué hacer si tu WordPress ha sido comprometido. Actuaremos con calma, como un equipo de rescate digital, para limpiar malware, recuperar sitio y blindarlo para el futuro. No necesitas ser un experto en programación, solo seguir estas instrucciones al pie de la letra.
Vamos a ello.
Fase 1: Diagnóstico Inicial y Contención (Los Primeros 15 Minutos)
Cuando sospechas que has sufrido un ataque web, el tiempo es oro. Cuanto más tiempo esté el malware activo, más daño puede hacer a tu reputación, a tu SEO y a los datos de tus usuarios. Esta primera fase es de emergencia.
1. Identifica los Síntomas del Hackeo
No siempre es un mensaje gigante de "Hacked by...". A menudo, los síntomas son más sutiles. Pregúntate si has notado alguno de estos signos:
- Redirecciones extrañas: Al visitar tu web desde Google o al hacer clic en un enlace, te lleva a páginas de farmacias, casinos o webs de spam.
- Anuncios o ventanas emergentes (pop-ups) intrusivos: Aparecen banners que tú no has puesto, incluso en tu propia página de inicio.
- Avisos de Google Safe Browsing: Si intentas entrar a tu web desde Chrome o Firefox, el navegador te muestra una advertencia de "Sitio engañoso" o "Contenido de malware".
- Rendimiento terrible: Tu web carga extremadamente lento porque está ejecutando scripts maliciosos en segundo plano.
- Nuevos usuarios administradores: Ves en tu panel de control (wp-admin) usuarios que no reconoces y que tienen permisos de administrador.
- Contenido nuevo o modificado: Artículos que no escribiste, enlaces ocultos en el pie de página o en la barra lateral.
- Error 500 o pantalla blanca: El servidor está bloqueado o falla al cargar debido a archivos corruptos.
Si has confirmado uno o varios de estos síntomas, pasa al siguiente paso inmediatamente.
2. Modo Mantenimiento: Aisla el Problema
Antes de empezar a limpiar, debes evitar que el malware siga actuando y que los visitantes vean el desastre.
- Desconecta tu web de Internet (si es posible): Si tienes acceso a tu panel de control de hosting, busca la opción de "Suspender" o "Pausar" la cuenta. Es la medida más drástica pero la más segura.
- Activa un "Mantenimiento" en WordPress: Aunque el plugin de mantenimiento podría estar comprometido, intenta activar uno simple. Si no puedes, no te preocupes, el siguiente paso es más importante.
- Cambia TODAS tus contraseñas YA: Esto incluye:
- La contraseña de tu cuenta de hosting.
- La contraseña de tu FTP o administrador de archivos.
- La contraseña de tu base de datos MySQL.
- La contraseña de tu correo electrónico asociado a la web.
- La contraseña de tu usuario administrador de WordPress.
[WARNING] No cambies solo la contraseña de WordPress. El hacker podría tener acceso a tu servidor o a tu correo. Si cambias todo, cortas sus vías de re-entrada.
3. Reúne tu Equipo de Rescate (Herramientas y Accesos)
Para esta operación necesitarás:
- Acceso a tu cPanel o panel de hosting: Ahí gestionarás archivos y bases de datos.
- Credenciales de FTP: O un administrador de archivos integrado en tu hosting.
- Un cliente FTP (como FileZilla): Es una aplicación gratuita que te permite ver y editar archivos en tu servidor.
- Tu gestor de bases de datos (phpMyAdmin): Generalmente accesible desde el panel de tu hosting.
Una vez que tienes todo esto, pasamos a la acción.
Fase 2: La Limpieza Profunda (El "Scrubbing")
Esta es la parte más delicada. El objetivo es encontrar y eliminar todo el código malicioso. No basta con borrar lo visible; hay que buscar lo que está escondido.
[TIP] Antes de tocar nada, haz una copia de seguridad completa. Aunque esté infectada, te servirá para comparar archivos y entender qué ha cambiado.
1. Escanea tu Sitio con Plugins de Seguridad
Si aún puedes acceder a tu wp-admin, instala un plugin de seguridad de confianza. Los más populares y efectivos son:
- Wordfence: Es el más completo. Su escáner busca código malicioso, enlaces de spam, cambios en archivos del núcleo y más.
- Sucuri Security: Excelente para limpiar malware y monitorizar la integridad de tus archivos.
- iThemes Security (antes Better WP Security): Ofrece muchas capas de protección y escaneo.
Ejecuta un escaneo completo. El plugin te dará un informe de archivos infectados. Anota las rutas de esos archivos.
[INFO] Los plugins de seguridad son una gran ayuda, pero no son infalibles. El malware avanzado puede esconderse muy bien. No te fíes al 100% de un solo escaneo.
2. Limpieza Manual: Técnicas de Cirugía Digital
Aquí es donde nos ponemos el traje de cirujano. Usa tu cliente FTP o el administrador de archivos de tu hosting.
Revisa los Archivos del Núcleo de WordPress
La forma más segura de garantizar que los archivos del núcleo estén limpios es sobrescribirlos con una copia nueva y oficial.
- Descarga la última versión de WordPress desde es.wordpress.org.
- Descomprime el archivo en tu ordenador.
- Con tu cliente FTP, sube TODOS los archivos de la carpeta
wp-adminywp-includes, y los archivos de la raíz (comoindex.php,wp-config.php, etc.) a tu servidor, permitiendo que se sobrescriban los existentes.
[WARNING] NO sobrescribas la carpeta
wp-content. Ahí están tus temas, plugins y subidas, y podrías perder tus cambios. Nos centraremos en ella por separado.
Inspecciona la Carpeta wp-content
Esta es la zona favorita de los hackers para esconder su basura.
- Carpeta
uploads: Revisa si hay archivos con extensiones extrañas como.php,.phtml,.suspecteddentro de las carpetas de año/mes. Los hackers suelen dejar "webshells" (scripts que les permiten controlar tu servidor) aquí. Elimina cualquier archivo.phpque no reconozcas. - Carpeta
themesyplugins: A menudo, el malware se inyecta en los archivosfunctions.phpoindex.phpde tu tema o plugin activo. Abre estos archivos con un editor de texto (como el Bloc de Notas) y busca código ofuscado (líneas muy largas y sin sentido, con funciones comoeval(base64_decode(...))). Si encuentras algo raro, elimina esas líneas. - Carpeta
mu-plugins(Must-Use Plugins): Esta es una carpeta poco conocida y muy utilizada por los atacantes. Es una carpeta oculta que carga plugins sin que aparezcan en tu panel. Si existe, ábrela y revisa su contenido. Si no la creaste tú, bórrala entera.
El Archivo wp-config.php y el .htaccess
wp-config.php: Revísalo línea por línea. Busca cualquier código extraño fuera de las definiciones normales de base de datos y claves de seguridad. A veces añaden sus propias funciones o conexiones a bases de datos remotas..htaccess: Este archivo es crucial. Los hackers lo utilizan para redirigir tu tráfico a sus webs. Descarga el archivo.htaccessde tu raíz y ábrelo. Busca reglas de redirección extrañas (RewriteRule). Si no entiendes algo, la forma más segura es borrar el archivo y generar uno nuevo desde el panel de WordPress (yendo a Ajustes > Enlaces permanentes y guardando los cambios).
3. Limpieza de la Base de Datos
El malware no solo vive en los archivos; también se esconde en tu base de datos.
- Accede a phpMyAdmin desde tu panel de hosting.
- Selecciona tu base de datos de WordPress.
- Haz clic en la pestaña "Buscar" (o "Search").
- Busca términos comunes de hackeo como:
eval(base64_decode<script>document.writehttp://(en campos que no deberían tener URLs)- Nombres de usuarios inyectados (busca en la tabla
wp_users).
[TIP] Antes de borrar nada en la base de datos, haz una copia de seguridad. Es muy fácil romper algo si no tienes cuidado. Exporta la base de datos completa a tu ordenador.
Si encuentras código malicioso, puedes intentar borrarlo directamente o usar una consulta SQL para reemplazarlo. Si no te sientes cómodo, es mejor que te centres en los archivos y luego pidas ayuda a tu hosting.
Fase 3: Recuperación y Restauración (Poniendo tu Sitio de Pie)
Ya hemos hecho la limpieza principal. Ahora toca reconstruir y verificar que todo funciona.
1. Restablece tus Claves de Seguridad (Salts)
WordPress usa unas "sales" (claves) para cifrar las contraseñas y las sesiones de los usuarios. Si el hacker las conoce, podría seguir entrando.
- Ve a la página oficial de generación de claves: https://api.wordpress.org/secret-key/1.1/salt/
- Copia el bloque de código que te da.
- Abre tu archivo
wp-config.phpen el servidor. - Busca el bloque que dice
define('AUTH_KEY', ...)y todo lo relacionado. - Reemplaza TODO ese bloque con el nuevo código que copiaste.
Esto cerrará la puerta a sesiones antiguas y forzará a todos los usuarios a iniciar sesión de nuevo.
2. Fuerza el Cambio de Contraseña de Todos los Usuarios
No te limites a cambiar tu contraseña. Usa una consulta SQL en phpMyAdmin para cambiar las contraseñas de todos los usuarios, excepto la tuya, a una que luego les dirás que cambien. O, más fácil, usa un plugin como "Force Reset Password" para enviar correos a todos los usuarios pidiéndoles que establezcan una nueva.
3. Actualiza TODO
Esta es una regla de oro para la seguridad wordpress:
- WordPress: Ve a Escritorio > Actualizaciones y actualiza a la última versión.
- Temas: Actualiza todos tus temas.
- Plugins: Actualiza absolutamente todos los plugins.
[WARNING] Si un plugin o tema está desactualizado y es la causa del hackeo, lo más seguro es eliminarlo y buscar una alternativa más moderna y mantenida.
4. Reinstala Temas y Plugins Limpios
Si el hackeo fue severo, los archivos de tus temas y plugins podrían estar comprometidos. La mejor práctica es:
- Elimina los temas y plugins que estás usando desde el panel de WordPress.
- Reinstálalos de nuevo desde el repositorio oficial de WordPress.org o desde la web del desarrollador.
Esto garantiza que tienes una copia 100% limpia.
Fase 4: Blindaje y Prevención Futura (La Fortaleza)
Una vez que has recuperado sitio, es hora de construir un castillo alrededor para que no vuelva a pasar.
1. Configura un Firewall de Aplicación Web (WAF)
Un WAF actúa como un guardia de seguridad que filtra el tráfico malicioso antes de que llegue a tu WordPress. Puedes usar servicios en la nube como Cloudflare (tiene un plan gratuito excelente) o plugins como Wordfence que ofrecen firewall a nivel de servidor.
2. Autenticación de Dos Factores (2FA)
Añade una capa extra de seguridad a tu inicio de sesión. Aunque alguien robe tu contraseña, necesitará el código temporal de tu teléfono para entrar. Plugins como Wordfence o Google Authenticator lo hacen muy fácil.
3. Cambia el Prefijo de la Base de Datos
El prefijo por defecto wp_ es conocido por todos los atacantes. Cambiarlo a algo como miweb_ o x9f3_ dificulta los ataques de inyección SQL. Puedes hacerlo con plugins de seguridad o manualmente.
4. Mantén un Régimen de Copias de Seguridad
Esta es tu mejor póliza de seguro. Configura copias de seguridad automáticas:
- Diarias: De la base de datos.
- Semanales: De todos tus archivos.
Puedes usar plugins como UpdraftPlus o BackWPup para guardarlas en la nube (Google Drive, Dropbox, etc.). Si vuelve a pasar, restaurar es cuestión de minutos.
5. Oculta tu Panel de Administración (wp-admin)
Cambia la URL de acceso a tu panel de administración. Plugins como WPS Hide Login te permiten usar una URL personalizada (ej: /mi-acceso-secreto) en lugar de la típica /wp-admin. Esto bloquea la mayoría de los ataques de fuerza bruta.
6. Revisa los Permisos de Archivos
En tu administrador de archivos, asegúrate de que:
- Los directorios tengan permisos
755o750. - Los archivos tengan permisos
644o640.
Nunca dejes archivos con permisos 777, ya que cualquiera podría modificarlos.
7. Considera un Servidor Más Seguro
Si tu hosting es de bajo costo y no ofrece buenas medidas de seguridad, plantéate migrar a un proveedor que ofrezca protección adicional, como escaneo de malware, firewall y copias de seguridad incluidas.
[TIP] Si tu panel de control es Syspanel (antes conocido como HestiaCP), recuerda que el acceso a este panel se realiza a través del puerto 2106 (ej:
tudominio.com:2106). Asegúrate de que la contraseña de este panel sea extremadamente fuerte y diferente a la de tu WordPress.
Preguntas Frecuentes (FAQ) sobre WordPress Hackeado
Para finalizar, respondo a las dudas más comunes que me suelen plantear los usuarios en esta situación.
¿Cuánto tiempo se tarda en limpiar un WordPress hackeado?
Depende de la gravedad del ataque. Un hackeo superficial (código en un plugin) puede limpiarse en 30-60 minutos. Un hackeo profundo que haya comprometido archivos del núcleo y la base de datos puede llevarte un día entero de trabajo meticuloso.
Si restauro una copia de seguridad anterior al hackeo, ¿se soluciona?
No necesariamente. Si la vulnerabilidad que permitió el ataque sigue presente en tu web (por ejemplo, un plugin desactualizado), el hacker podría volver a entrar. Es fundamental limpiar y actualizar todo antes de restaurar una copia limpia.
Mi web está en Google como "sitio peligroso", ¿cómo lo soluciono?
Una vez que hayas limpiado tu web, debes solicitarlo a Google.
- Ve a Google Search Console (search.google.com/search-console).
- Verifica la propiedad de tu sitio.
- Ve a la sección "Problemas de seguridad" y solicita una revisión.
- Explica qué pasó y qué medidas tomaste para limpiar el sitio. Google tardará unos días en revisarlo.
¿Puedo evitar el hackeo al 100%?
Nadie puede garantizar una seguridad absoluta, pero siguiendo las prácticas de esta guía (actualizaciones, contraseñas fuertes, 2FA, firewall, copias de seguridad), reduces el riesgo en más de un 95%. Los ataques automatizados buscan objetivos fác
