Guía para eliminar malware de un sitio WordPress en Plesk
¿Tu sitio WordPress en Plesk se comporta de forma extraña? ¿Aparecen ventanas emergentes sospechosas, redirecciones a páginas raras o tu web ha sido marcada como peligrosa por Google? Es posible que estés lidiando con un WordPress infectado. No entres en pánico. Esta guía te llevará paso a paso por el proceso de eliminar malware WordPress usando las herramientas integradas de Plesk seguridad y algunas buenas prácticas para limpiar virus web.
Soy un técnico de soporte y voy a explicártelo de la forma más clara posible, como si lo hiciera para un amigo. No necesitas ser un hacker ni un desarrollador experto; solo seguir las instrucciones con calma.
¿Por qué los sitios WordPress son tan vulnerables?
WordPress es el sistema de gestión de contenidos más popular del mundo, y esa popularidad también lo convierte en el blanco favorito de los atacantes. Las infecciones suelen ocurrir por:
- Plugins o temas desactualizados: Son la puerta de entrada más común. Los desarrolladores lanzan actualizaciones para corregir vulnerabilidades de seguridad. Si no las aplicas, dejas la puerta abierta.
- Contraseñas débiles: Usar "admin123" o "password" es como dejar la llave puesta en la cerradura.
- Instalación de plugins/temas nulos (nulled): Esos que ofrecen funciones premium "gratis" suelen venir con código malicioso oculto. Es la trampa más común.
- Falta de un firewall o seguridad perimetral: Sin una capa de protección, los ataques automatizados pueden probar vulnerabilidades fácilmente.
Síntomas de que tu WordPress está infectado
Antes de empezar con la limpieza, asegurémonos de que realmente hay un problema. Estos son los signos más comunes de un wordpress infectado:
- Redirecciones extrañas: Al hacer clic en un enlace, te lleva a sitios de apuestas, farmacias o páginas de spam.
- Ventanas emergentes (pop-ups): Aparecen anuncios o alertas falsas incluso cuando navegas por tu propio sitio.
- Código inyectado: Ves scripts extraños o enlaces ocultos en el pie de página, en los artículos o en el código fuente.
- Rendimiento lento: El sitio carga muy lento porque el malware está usando tus recursos del servidor para enviar spam o minar criptomonedas.
- Archivos sospechosos: Encuentras archivos con nombres como
wp-update.php,shell.phpo carpetas con nombres aleatorios en tu directorio de WordPress. - Google te marca como "Sitio engañoso": Si tu web aparece en los resultados de búsqueda con una advertencia roja, estás en la lista negra de Google.
Fase 1: Preparación y Primeros Pasos (Aislar el problema)
Antes de tocar nada, prepárate para no empeorar las cosas.
1. Haz una copia de seguridad (Sí, de la web infectada)
Aunque suene contradictorio, necesitas una copia de seguridad del sitio infectado. ¿Por qué? Por si algo sale mal durante la limpieza y rompes algo más, puedas restaurarlo y empezar de nuevo. Además, te servirá para analizar el malware más tarde.
En Plesk:
- Ve a Sitios web y dominios.
- Haz clic en el nombre de tu dominio.
- Busca la sección Copias de seguridad (normalmente en el menú de la izquierda).
- Haz clic en Crear una copia de seguridad.
- Marca la opción Incluir archivos de la cuenta de suscripción y Incluir bases de datos.
- Dale un nombre descriptivo, por ejemplo:
Pre-limpieza-malware-YYYYMMDD. - Haz clic en Aceptar. Espera a que termine. Este es tu "seguro de vida".
2. Cambia TODAS tus contraseñas
El malware puede haber robado tus credenciales. Es crucial cambiarlas desde un dispositivo limpio (no desde el ordenador que usaste para administrar la web infectada).
- Contraseña de la base de datos de WordPress: En Plesk, ve a Bases de datos, selecciona tu BD y cambia la contraseña del usuario.
- Contraseña de administrador de WordPress: Desde un navegador limpio, intenta acceder a
tudominio.com/wp-admin. Si puedes, cambia la contraseña de todos los usuarios administradores. Si no puedes (el malware te bloquea), lo haremos más adelante desde la base de datos. - Contraseña de FTP y de Plesk: Cámbialas también. Es una medida de higiene básica.
3. Activa el Modo Mantenimiento (opcional pero recomendado)
Para que los visitantes no vean el caos, puedes poner tu web en modo mantenimiento mientras limpias. Puedes hacerlo con un plugin o añadiendo este código al archivo .htaccess (en la raíz de tu WordPress):
# BEGIN WordPress Mantenimiento
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/wp-admin/
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000$ # Reemplaza con tu IP
RewriteRule .* /wp-content/maintenance.php [L]
</IfModule>
# END WordPress Mantenimiento
(Recuerda quitar estas líneas al terminar la limpieza).
Fase 2: Limpieza Manual y con Herramientas de Plesk
Ahora sí, vamos a la acción. Usaremos las herramientas que Plesk pone a tu disposición, que son muy potentes.
1. Escanea tu sitio con Plesk Security Advisor (o similar)
Plesk suele incluir una herramienta de seguridad integrada. Busca en el panel principal una sección llamada Seguridad o Plesk Security Advisor.
- Ejecuta un análisis completo de tu dominio.
- Esta herramienta buscará archivos maliciosos, permisos incorrectos y configuraciones de riesgo.
- Anota los archivos que marca como sospechosos. No los borres aún; los revisaremos.
[TIP] Si tu Plesk no tiene esta herramienta, puedes usar plugins de seguridad de WordPress como Wordfence o Sucuri desde el panel de administración de tu web (si aún puedes acceder). Pero la herramienta de Plesk es más profunda porque escanea a nivel de servidor.
2. Revisa el Administrador de Archivos de Plesk
Esta es la parte más tediosa pero efectiva. Vamos a buscar manualmente archivos extraños.
-
En Sitios web y dominios, haz clic en Administrador de archivos.
-
Navega a la carpeta
httpdocs(opublic_html), que es la raíz de tu WordPress. -
Busca archivos con estas características:
- Fechas de modificación recientes: Ordena los archivos por "Última modificación". Los archivos maliciosos suelen crearse o modificarse justo antes de que notes los síntomas.
- Nombres sospechosos:
wp-update.php,shell.php,0x.php,admin.php(en la raíz),cgi-bin/,wp-includes/something.phpque no sea original. - Archivos con muchos permisos: Busca archivos con permisos
777(lectura, escritura y ejecución para todos). Esto es una señal de alerta. - Carpetas extrañas: Revisa
wp-content/uploads/,wp-content/plugins/ywp-content/themes/. A veces crean carpetas con nombres como.cache/,tmp/o con códigos alfanumericos.
¿Cómo saber si un archivo PHP es malicioso? Ábrelo en el visor del Administrador de Archivos. Busca código ofuscado (ilegible, lleno de eval(), base64_decode(), gzinflate(), str_rot13()). Un archivo legítimo de WordPress tiene un código claro y estructurado. Si ves una línea enorme de código sin sentido, es malware.
3. Limpia la Base de Datos
El malware no solo está en los archivos; también se inyecta en la base de datos. Es muy común que añadan enlaces ocultos en las tablas wp_posts, wp_options o wp_postmeta.
Desde Plesk (phpMyAdmin):
-
Ve a Bases de datos y haz clic en phpMyAdmin junto a tu base de datos de WordPress.
-
Selecciona tu base de datos en el panel izquierdo.
-
Haz clic en la pestaña SQL para ejecutar consultas.
-
Ejecuta estas consultas para buscar y eliminar enlaces sospechosos (¡CUIDADO! Revisa bien antes de borrar):
-
Buscar enlaces en el contenido de los artículos:
SELECT * FROM wp_posts WHERE post_content LIKE '%http://tusitio-malicioso.com%' OR post_content LIKE '%<a href="http://tusitio-malicioso.com"%';Reemplaza
http://tusitio-malicioso.comcon el dominio al que redirige el malware. Si ves resultados, puedes actualizarlos con:UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://tusitio-malicioso.com', ''); -
Buscar scripts maliciosos en
wp_options:SELECT * FROM wp_options WHERE option_name LIKE '%malware%' OR option_value LIKE '%<script%';Si encuentras opciones sospechosas, puedes borrarlas o editarlas.
-
Buscar usuarios administradores extraños:
SELECT * FROM wp_users;Si ves un usuario que no creaste (por ejemplo,
wp_admin,support,admin2), bórralo con cuidado. Asegúrate de no borrar tu propio usuario administrador.
-
[WARNING] Manipular la base de datos directamente puede romper tu web. Si no estás seguro, mejor contacta a soporte. Haz siempre una copia de seguridad de la BD antes de ejecutar cualquier consulta SQL.
4. Reinstala el Núcleo de WordPress
El núcleo de WordPress (los archivos del sistema) suele estar comprometido. La forma más segura es reinstalarlo.
En Plesk:
- Ve a Sitios web y dominios.
- Busca la sección WordPress (o WordPress Toolkit).
- Haz clic en el icono de Configuración o Gestionar.
- Busca la opción Reinstalar o Actualizar el núcleo de WordPress.
- Marca la casilla Reemplazar archivos del núcleo.
- Esto descargará una copia limpia de WordPress y sobrescribirá los archivos del sistema (wp-admin, wp-includes, etc.) sin tocar tus plugins, temas o archivos subidos.
Fase 3: Saneamiento y Protección Post-Limpieza
Una vez que has limpiado virus web, es hora de blindar tu sitio para que no vuelva a pasar.
1. Actualiza TODO
- WordPress: A la última versión estable.
- Plugins y Temas: Todos. Si un plugin o tema ya no recibe actualizaciones (está abandonado), bórralo. Es un riesgo de seguridad.
- PHP: En Plesk, ve a Sitios web y dominios > Configuración de PHP. Asegúrate de usar una versión de PHP compatible y con soporte (PHP 8.x es lo recomendado).
2. Elimina Plugins y Temas Innecesarios
Cuantos menos plugins tengas, menos superficie de ataque. Revisa tu lista y borra todo lo que no uses.
3. Cambia los Prefijos de las Tablas de la Base de Datos
Por defecto, las tablas de WordPress se llaman wp_. Cambiar el prefijo (por ejemplo, a wp3_) dificulta los ataques automatizados. Esto se puede hacer con plugins de seguridad.
4. Configura un Firewall de Aplicación Web (WAF)
Plesk tiene un firewall integrado. Actívalo:
- Ve a Herramientas y configuraciones > Firewall (o Seguridad > Firewall).
- Asegúrate de que esté habilitado.
- Puedes añadir reglas para bloquear IPs maliciosas o patrones de ataque comunes.
5. Instala un Plugin de Seguridad
Una vez limpio, instala un plugin como Wordfence o Sucuri Security. Te ayudarán a:
- Escanear tu web periódicamente.
- Bloquear tráfico malicioso.
- Monitorear cambios en archivos.
- Forzar contraseñas seguras.
6. Habilita la Autenticación de Dos Factores (2FA)
Añade una capa extra de seguridad a tu panel de administración de WordPress. Muchos plugins de seguridad ofrecen 2FA.
7. Monitorea tu Sitio
Después de la limpieza, revisa tu sitio a diario durante una semana. Vuelve a escanear con la herramienta de Plesk y con tu plugin de seguridad. Si vuelves a ver archivos sospechosos, repite el proceso.
Preguntas Frecuentes (FAQ)
¿Cuánto tiempo lleva limpiar un WordPress infectado?
Depende de la gravedad. Una limpieza básica puede tomar de 1 a 3 horas. Una infección profunda puede requerir un día entero o la ayuda de un profesional.
¿Puedo evitar que mi web sea hackeada de nuevo?
No al 100%, pero siguiendo los pasos de protección post-limpieza reduces drásticamente el riesgo. La clave es la actualización constante y las contraseñas seguras.
¿Qué hago si mi web está en la lista negra de Google?
Después de limpiar, solicita una revisión en Google Search Console. Google volverá a analizar tu sitio y, si está limpio, eliminará la advertencia en unos días.
¿Tengo que pagar a un experto?
Si después de seguir esta guía te sientes abrumado o el malware es muy persistente (como un rootkit a nivel de servidor), sí, vale la pena contratar a un especialista en ciberseguridad Plesk.
[INFO] Recuerda que la prevención es el mejor antivirus. Mantén todo actualizado, usa contraseñas robustas y evita descargar cosas de fuentes no oficiales.
Espero que esta guía te haya sido de gran ayuda. Si tienes dudas, no dudes en contactar a tu servicio de soporte técnico. ¡Tu sitio web volverá a estar seguro!
