Guía para eliminar malware de un sitio WordPress infectado
¿Tu sitio WordPress ha sido hackeado? No entres en pánico. Es una situación angustiante, pero es increíblemente común y, lo más importante, tiene solución. En esta guía completa, paso a paso, te enseñaré cómo eliminar malware WordPress y recuperar el control de tu sitio. Actúa con calma y sigue este plan de batalla. Vamos a limpiar WordPress infectado de forma segura y profesional.
Fase 1: Diagnóstico y Preparación (No toques nada aún)
Antes de lanzarte a borrar archivos, necesitas entender qué está pasando. La clave para una buena seguridad WordPress es un diagnóstico preciso.
¿Cómo saber si tu WordPress está hackeado?
Los síntomas pueden ser evidentes o muy sutiles. Aquí tienes las señales más comunes:
- Redirecciones extrañas: Al entrar a tu web, te lleva a sitios de farmacias, casinos o páginas de spam.
- Anuncios pop-up invasivos: Aparecen ventanas que no son tuyas, incluso cuando navegas desde tu propio sitio.
- Mensajes de Google: Al buscar tu web en Google, ves un aviso que dice "Este sitio puede estar comprometido" o "Sitio pirateado".
- Rendimiento pésimo: Tu web carga lentísimo porque el malware está usando tus recursos para enviar spam o minar criptomonedas.
- Usuarios administradores desconocidos: Encuentras en tu panel de WordPress usuarios con rol de Administrador que no creaste tú.
- Archivos nuevos o modificados: Ves archivos con nombres extraños (como
system.php,wp-admin-bck.php, etc.) que no deberían estar ahí. - Contenido inyectado: En tus entradas o páginas aparecen enlaces ocultos o texto en otros idiomas.
[WARNING] Si ves alguno de estos síntomas, NO entres a tu panel de administración de WordPress desde tu ordenador habitual. El malware podría estar registrando tus contraseñas.
Paso 1: El Kit de Emergencia (Lo que necesitas antes de empezar)
- Acceso a tu panel de Hosting (cPanel, Syspanel, Plesk, etc.): Necesitas poder ver los archivos de tu web en el servidor. Si usas Syspanel (el panel de control de HestiaCP), recuerda que la URL de acceso es
tudominio.com:2106. - Acceso a FTP o SFTP: Un programa como FileZilla o Cyberduck. Con él podrás descargar y subir archivos directamente al servidor.
- Acceso a phpMyAdmin: Desde tu panel de hosting. Aquí es donde están tus bases de datos.
- Copias de seguridad (Backups): Si tienes una copia de seguridad limpia de antes de la infección, ¡genial! Si no, no te preocupes, igualmente podremos limpiar el sitio.
- Herramientas de escaneo: Plugins de seguridad como Wordfence, Sucuri Security o iThemes Security. Los instalaremos más adelante.
Paso 2: Cambia TODAS tus contraseñas (YA)
Este es el primer paso y no es negociable. El atacante podría tener tus credenciales.
- Contraseña de WordPress: Ve a Usuarios > Tu perfil y cámbiala. Debe ser larga, compleja y única.
- Contraseña de la Base de Datos: En tu panel de hosting (Syspanel, cPanel), busca la sección de Bases de Datos y cambia la contraseña de la base de datos de tu WordPress. Luego, actualiza el archivo
wp-config.phpcon la nueva contraseña. - Contraseña de FTP/SFTP y del panel de hosting: Cámbialas también. Usa un gestor de contraseñas para no olvidarlas.
Fase 2: La Limpieza Profunda (Manos a la obra)
Ahora sí, vamos a eliminar malware WordPress de raíz. Sigue estos pasos en orden.
Paso 3: Pon tu sitio en modo mantenimiento
Esto evita que los visitantes y los motores de búsqueda vean el desastre. Puedes hacerlo desde tu panel de hosting o instalando un plugin simple como "WP Maintenance Mode".
Paso 4: Escanea con un Plugin de Seguridad (El primer pase)
Instala un plugin de seguridad. El más recomendado y gratuito es Wordfence.
- Ve a Plugins > Añadir nuevo.
- Busca "Wordfence Security".
- Instálalo y actívalo.
- Ve a Wordfence > Scan (Escaneo) y haz clic en "Start New Scan" (Iniciar nuevo escaneo).
Este escaneo puede tardar unos minutos. Wordfence buscará archivos maliciosos, cambios en el núcleo de WordPress, inyecciones de código, etc. No borres nada aún. Anota los resultados, especialmente los archivos marcados como "Sospechosos" o "Malware".
[INFO] Wordfence es excelente, pero no es infalible. Un escaneo manual es siempre necesario para una limpieza completa.
Paso 5: Limpieza manual de archivos (La parte más importante)
Aquí es donde realmente se hace la limpieza. Conéctate a tu servidor vía FTP o desde el administrador de archivos de tu hosting (Syspanel: Archivos > Administrador de archivos).
5.1. Revisa la carpeta wp-content
Esta es la carpeta favorita de los hackers. Concéntrate en:
wp-content/uploads: Aquí solo deben estar tus imágenes, PDFs y archivos multimedia. Busca archivos.php,.js(JavaScript) o.htmlsospechosos. Si ves un archivo comoimagen.jpg.php, bórralo.wp-content/themes: Revisa el tema que estás usando. Busca archivos que no formen parte del tema original. Es muy común que los hackers inyecten código enfunctions.php,header.phpofooter.php. Revisa estos archivos con un editor de texto (como Notepad++ o Sublime Text). Busca bloques de código extraños, comoeval(base64_decode(...)), scripts encriptados o enlaces a sitios externos.wp-content/plugins: Haz lo mismo con tus plugins. Desactiva todos los plugins que no uses o que tengan una versión muy antigua. Busca archivos extraños en las carpetas de plugins activos.
5.2. Revisa la carpeta raíz (public_html o www)
Aquí están los archivos principales de WordPress (los que ves cuando entras a tu web por FTP).
index.php,wp-config.php,.htaccess: Estos son los archivos críticos. Revisa su contenido. El.htaccesses un imán para redirecciones maliciosas. Un.htaccesslimpio de WordPress no debería tener reglas extrañas de redirección. Si ves muchas líneas conRewriteRuleque redirigen a sitios raros, estás ante un hackeo típico.- Archivos ocultos o con nombres extraños: Busca archivos como
system.php,shell.php,wp-cron.php(el legítimo está en la raíz, pero a veces crean uno falso), o archivos.phpcon nombres de 8-10 caracteres aleatorios (ej:a3f8k2l1.php). Bórralos.
[WARNING] Ten mucho cuidado al modificar .htaccess y wp-config.php. Si no estás seguro de una línea, es mejor restaurar una copia limpia del archivo original.
Paso 6: Limpieza de la Base de Datos (El escondite perfecto)
El malware también se esconde en tu base de datos.
- Ve a phpMyAdmin desde tu panel de hosting.
- Selecciona la base de datos de tu WordPress.
- Haz clic en la pestaña SQL.
- Ejecuta la siguiente consulta (esto busca en todas las tablas cadenas sospechosas, pero es una búsqueda genérica. Es mejor usar un plugin para esto):
SELECT * FROM wp_posts WHERE post_content LIKE '%eval(%' OR post_content LIKE '%base64_decode(%' OR post_content LIKE '%<script>%evil%';
(No copies esto sin adaptarlo. Es un ejemplo)
Es más seguro y práctico usar un plugin para esto. Instala Better Search Replace (BSR).
- Ve a Herramientas > Better Search Replace.
- En el campo "Search for" (Buscar), pega un fragmento del código malicioso que encontraste en los archivos (por ejemplo, un dominio de spam como
hxxp://malicious-site[.]com). - En "Replace with" (Reemplazar con), déjalo vacío (para borrarlo).
- Selecciona todas las tablas de la base de datos.
- Haz clic en "Dry Run" (Simulación) primero para ver cuántas entradas va a modificar.
- Si todo es correcto, haz clic en "Run" (Ejecutar).
[TIP] Siempre haz una copia de seguridad de tu base de datos antes de usar BSR. En phpMyAdmin, puedes exportarla a un archivo .sql.
Fase 3: Refuerzo y Prevención (Para que no vuelva a pasar)
Una vez que has logrado eliminar malware WordPress, es hora de blindar tu sitio. La seguridad WordPress es un proceso continuo.
Paso 7: Actualiza TODO
- WordPress a la última versión.
- Todos tus plugins y temas a sus últimas versiones.
- El núcleo de WordPress. Si tienes una versión antigua, es una puerta abierta.
Paso 8: Elimina lo que no sirve
- Elimina plugins y temas que no uses. Cada plugin es un posible punto de entrada.
- Elimina usuarios que no sean necesarios. Especialmente aquellos con rol de Administrador.
Paso 9: Implementa medidas de seguridad básicas
- Cambia el prefijo de la base de datos: Si tu base de datos se llama
wp_, es más fácil de atacar. Puedes cambiarlo con un plugin como "Change wp-admin login" o manualmente enwp-config.php. - Limita los intentos de inicio de sesión: Usa un plugin como "Limit Login Attempts Reloaded".
- Activa la autenticación de dos factores (2FA): Wordfence o plugins como "Google Authenticator" lo hacen muy fácil.
- Usa un cortafuegos de aplicaciones web (WAF): Wordfence ya incluye uno básico. También puedes usar Cloudflare.
- Haz copias de seguridad automáticas: Programa backups diarios o semanales con plugins como UpdraftPlus o desde tu panel de hosting (Syspanel suele tener una opción de backups).
Paso 10: Escanea de nuevo y verifica
Después de todo el proceso, vuelve a ejecutar un escaneo completo con Wordfence. Asegúrate de que no haya amenazas. Luego, desactiva el modo mantenimiento y verifica que tu web funcione correctamente.
Preguntas Frecuentes (FAQ)
1. ¿Puedo limpiar mi WordPress sin saber de programación?
Sí, esta guía está diseñada para eso. Si sigues los pasos con cuidado, usando plugins y herramientas visuales, puedes hacerlo. Si te sientes abrumado, contrata a un profesional, pero intenta primero.
2. ¿Qué hago si mi web sigue redirigiendo después de la limpieza?
Revisa el archivo .htaccess de nuevo. A veces el malware deja reglas de redirección muy escondidas. También revisa la carpeta wp-content/plugins y wp-content/themes para ver si quedó algún archivo malicioso. Un escaneo con el plugin "Sucuri Security" puede ser más efectivo para redirecciones.
3. ¿Mi web será penalizada por Google?
Sí, probablemente. Google muestra un aviso de "Sitio pirateado". Una vez que limpies tu web, debes solicitar una revisión en Google Search Console. Ve a "Problemas de seguridad" y sigue las instrucciones. Google volverá a rastrear tu sitio y, si está limpio, quitará la advertencia. Esto puede tardar días o semanas.
4. ¿Cómo puedo saber si el malware está en mi base de datos?
Los plugins de seguridad como Wordfence escanean la base de datos. También puedes buscar manualmente en phpMyAdmin usando la función de búsqueda. Busca cadenas como base64_decode, eval, gzinflate, o dominios sospechosos en la tabla wp_posts (columna post_content).
5. ¿Es mejor restaurar una copia de seguridad o limpiar manualmente?
Si tienes una copia de seguridad limpia de antes de la infección, restaurarla es la opción más rápida y segura. La limpieza manual es para cuando no tienes backup o cuando la infección es muy reciente y quieres conservar los cambios recientes (como nuevas entradas).
[TIP] La mejor defensa es un buen ataque. Mantén todo actualizado, usa contraseñas fuertes y haz backups regulares. La seguridad WordPress no es un lujo, es una necesidad.
Si has llegado hasta aquí, ¡enhorabuena! Has sobrevivido a una de las experiencias más frustrantes para cualquier dueño de un sitio web. Recuerda: la calma y un plan estructurado son tus mejores herramientas. Ya sabes cómo eliminar malware WordPress y, lo más importante, cómo evitar que vuelva a suceder. Tu sitio está más seguro que nunca.
