Cómo eliminar malware de un sitio WordPress en Plesk
Primeros pasos: ¿Cómo saber si tu WordPress está infectado?
Antes de lanzarte a limpiar, es fundamental que confirmes que tu sitio realmente tiene malware. Los síntomas más comunes son:
- Redirecciones extrañas a páginas de farmacia, casinos o sitios de apuestas.
- Avisos del navegador como "El sitio ha sido comprometido" o "Esta página contiene contenido peligroso".
- Anuncios emergentes que no has creado tú.
- El sitio va muy lento o el servidor consume demasiados recursos.
- Archivos nuevos y sospechosos en tu hosting (por ejemplo, archivos
.phpcon nombres aleatorios comox7f2k9.php). - Usuarios administradores desconocidos en tu panel de WordPress.
- Correos de tu proveedor de hosting avisando de que han detectado malware.
Si presentas al menos dos de estos síntomas, es muy probable que tengas una infección. No entres en pánico: con Plesk y un poco de paciencia, puedes limpiar tu sitio sin necesidad de ser un experto en seguridad.
[WARNING] No intentes limpiar el malware mientras el sitio está "vivo" y siendo atacado. Si es posible, pon tu WordPress en modo mantenimiento o desactiva temporalmente el acceso público. Esto reducirá el daño y evitará que el malware se siga propagando.
Preparación antes de limpiar: copia de seguridad y acceso seguro
La regla de oro en cualquier limpieza de malware es tener una copia de seguridad limpia. Pero ojo: si la copia es anterior a la infección, perfecto. Si es posterior, podría estar infectada también. Por eso, sigue estos pasos:
1. Crea una copia de seguridad completa en Plesk
- Accede a tu panel de Plesk (normalmente en
https://tu-dominio.com:8443). - Ve a Sitios web y dominios y selecciona tu dominio.
- Haz clic en Copias de seguridad (o "Backup Manager").
- Pulsa Crear copia de seguridad y elige la opción Completa (incluye archivos y bases de datos).
- Descarga esa copia a tu ordenador. Así tienes un respaldo local por si algo sale mal.
[INFO] Si tu copia de seguridad es reciente y sospechas que el malware ya estaba presente, no la uses para restaurar. Mejor sigue la limpieza manual que te explicamos abajo.
2. Cambia todas tus contraseñas
El malware suele entrar por contraseñas débiles o reutilizadas. Cambia:
- La contraseña de Plesk.
- La contraseña de la base de datos MySQL de tu sitio.
- Las contraseñas de los usuarios de WordPress (especialmente la del administrador).
- La contraseña de tu FTP/SFTP si usas uno.
Hazlo desde Plesk o desde el propio WordPress. Esto cortará el acceso a los atacantes que ya estén dentro.
3. Accede a tus archivos por FTP o por el Administrador de archivos de Plesk
Para limpiar manualmente, necesitarás ver los archivos. Dos opciones:
- Administrador de archivos de Plesk: En tu dominio, clic en Administrador de archivos. Es cómodo y no necesitas programas externos.
- Cliente FTP como FileZilla: Conéctate con tus credenciales SFTP. Es más rápido para subir y descargar archivos grandes.
Identificación del malware: dónde se esconde
El malware en WordPress puede estar en varias capas. No basta con borrar un archivo sospechoso; hay que buscar en todos los sitios donde suele esconderse.
1. Revisa los archivos núcleo de WordPress
WordPress tiene archivos esenciales como wp-config.php, index.php, wp-load.php y la carpeta wp-includes. Los atacantes suelen inyectar código en estos archivos porque se cargan en cada página.
Cómo revisarlos:
- En el Administrador de archivos de Plesk, navega a la raíz de tu WordPress (normalmente
httpdocsopublic_html). - Abre
wp-config.phpy busca líneas de código que no reconozcas, especialmenteeval(base64_decode(...))o funciones de tiposhell_exec. - Revisa
index.phpen la raíz: debe tener solo unas pocas líneas sencillas. Si ves código ofuscado o muy largo, está infectado.
2. Busca archivos PHP sospechosos
Los archivos .php con nombres aleatorios son la firma clásica de malware. Busca en la raíz y en carpetas como wp-content/uploads/ (sí, los atacantes esconden scripts PHP ahí porque normalmente no se ejecutan, pero a veces sí).
Comando útil si tienes SSH (en Plesk puedes activarlo en Herramientas y utilidades > Acceso SSH):
find /var/www/vhosts/tu-dominio.com/httpdocs -name "*.php" -mtime -30 -type f
Esto te muestra los archivos PHP modificados en los últimos 30 días. Si no tienes SSH, usa el Administrador de archivos y ordena por "Última modificación".
3. Revisa el archivo .htaccess
El .htaccess es un archivo de configuración que puede redirigir a los usuarios a sitios maliciosos. Ábrelo y busca:
- Reglas
RewriteRuleque apunten a dominios extraños. - Líneas con
base64_decodeoeval. - Código que no entiendas.
Un .htaccess limpio de WordPress suele tener reglas de reescritura para los enlaces permanentes y poco más.
4. Inspecciona la carpeta wp-content
Esta carpeta es la más vulnerable porque ahí se instalan plugins y temas. Presta atención a:
wp-content/uploads/: Busca archivos.phpaquí. No debería haber ninguno.wp-content/plugins/: Revisa si hay plugins que no instalaste tú. Bórralos.wp-content/themes/: Algunos temas tienen archivos que ejecutan código malicioso. Si tu tema es de pago o muy personalizado, revisa sus archivos PHP.
5. Escanea la base de datos
El malware también puede vivir en tu base de datos. Por ejemplo, inyectan código en las entradas o en las opciones de wp_options. Si el problema persiste tras limpiar archivos, revisa la base de datos.
Desde Plesk:
- Ve a Sitios web y dominios > Bases de datos MySQL.
- Entra en phpMyAdmin.
- Revisa las tablas
wp_postsywp_optionsen busca de scripts inyectados en campos comopost_contentooption_value.
[TIP] Si no sabes qué buscar en la base de datos, usa un plugin de seguridad que haga un escaneo de malware. Pero ten en cuenta que muchos plugins no eliminan el malware, solo lo detectan. La limpieza manual es más fiable.
Proceso de limpieza paso a paso
Una vez que has identificado los archivos infectados, toca eliminarlos. Sigue este orden para no dejar cabos sueltos.
Paso 1: Elimina los archivos maliciosos
- Archivos PHP sospechosos: Bórralos directamente desde el Administrador de archivos de Plesk. Si no estás seguro de si un archivo es legítimo, descárgalo y ábrelo con un editor de texto. Si ves código ofuscado o funciones peligrosas, elimínalo.
- Archivos infectados legítimos (como
index.phpowp-config.php): No los borres, porque romperías tu sitio. En su lugar, descarga la versión original desde el repositorio de WordPress (para archivos del núcleo) o desde el desarrollador del tema/plugin. Sustituye el archivo infectado por el original. .htaccess: Si está infectado, puedes borrarlo y luego regenerarlo desde Ajustes > Enlaces permanentes en WordPress (solo con guardar los cambios se regenera).
Paso 2: Limpia la base de datos
- En
wp_options, busca la opciónsiteurlyhome. A veces los atacantes cambian estas URLs para redirigirte. - En
wp_posts, usa el buscador de phpMyAdmin para localizar cadenas comoeval(obase64_decode(. Si las encuentras, edita el registro y elimina el código malicioso. - También revisa la tabla
wp_userspara eliminar usuarios que no reconozcas. Si hay un usuario llamadoadmincon una contraseña sospechosa, cámbiala o bórralo.
Paso 3: Reinstala WordPress, plugins y temas
Esta es la solución más segura para archivos del núcleo:
- Descarga la última versión de WordPress desde wordpress.org.
- Sustituye las carpetas
wp-adminywp-includescompletas por las nuevas. - Sustituye los archivos de la raíz (
index.php,wp-load.php, etc.) exceptowp-config.phpy la carpetawp-content. - Para plugins y temas: si alguno está infectado, lo mejor es borrarlo y reinstalarlo desde el repositorio de WordPress (o desde el sitio del desarrollador si es de pago).
Paso 4: Cambia las claves de seguridad de WordPress
En wp-config.php, cambia las constantes AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY y NONCE_KEY. Esto invalida las sesiones de los atacantes y les obliga a volver a entrar (si es que aún pueden).
Paso 5: Actualiza todo
Un sitio desactualizado es un imán para el malware. Asegúrate de tener:
- La última versión de WordPress.
- Todos los plugins y temas actualizados.
- Eliminados los plugins y temas que no uses.
Herramientas de seguridad en Plesk para prevenir futuras infecciones
Plesk incluye herramientas que te ayudarán a blindar tu WordPress. Úsalas después de la limpieza.
1. Activa el firewall de aplicación web (WAF)
En Plesk, ve a Sitios web y dominios > Seguridad > Firewall de aplicación web. Actívalo y elige el modo "Prevención" para bloquear ataques conocidos. Esto te protege de inyecciones SQL, XSS y otros vectores comunes.
2. Usa la extensión de seguridad de WordPress
Plesk tiene una extensión llamada WordPress Toolkit. Con ella puedes:
- Activar el escaneo de seguridad que revisa si tus plugins o temas tienen vulnerabilidades conocidas.
- Programar escaneos automáticos de malware.
- Activar el modo endurecido que bloquea la modificación de archivos críticos.
3. Configura copias de seguridad automáticas
En Plesk, ve a Copias de seguridad y programa copias diarias o semanales. Si vuelves a ser atacado, restaurar una copia limpia será mucho más rápido que limpiar manualmente.
[TIP] Guarda las copias de seguridad en un lugar externo (por ejemplo, en tu ordenador o en un servicio de almacenamiento en la nube). Así, si el servidor se ve comprometido, tendrás un respaldo seguro.
Qué hacer si el malware persiste
A veces, por mucho que limpies, el malware reaparece. Esto puede deberse a:
- Una puerta trasera oculta que no has encontrado (por ejemplo, en un plugin modificado o en un archivo de la carpeta
wp-includesque parece legítimo). - Un atacante que sigue teniendo acceso mediante una cuenta FTP o de base de datos que no has cambiado.
- Un tema o plugin de origen dudoso que sigue descargando malware.
Si estás en este punto, te recomiendo:
- Restaurar desde una copia de seguridad limpia (anterior a la infección).
- Contactar con tu proveedor de hosting para que te ayuden a limpiar a nivel de servidor. Ellos pueden ver logs de acceso y detectar cómo entró el atacante.
- Contratar un servicio especializado en limpieza de malware si tu sitio es crítico y no puedes permitirte más tiempo de inactividad.
[WARNING] No utilices servicios gratuitos de "limpieza online" que te piden acceso FTP o de base de datos. Podrían robar tus credenciales o empeorar la infección.
Preguntas frecuentes sobre la limpieza de malware en WordPress con Plesk
¿Cuánto tiempo tarda en limpiarse un WordPress infectado?
Depende del tamaño del sitio y de la gravedad de la infección. Una limpieza manual básica puede llevarte entre 2 y 4 horas si tienes paciencia y sigues los pasos. Si tienes muchos archivos o la infección está muy extendida, puede ser un trabajo de un día entero.
¿Debo pagar por un servicio de limpieza?
Si tu sitio genera ingresos o es la imagen de tu negocio, puede merecer la pena pagar por un servicio profesional. Los precios suelen oscilar entre 50 y 300 euros. Si es un blog personal, la limpieza manual suele ser suficiente.
¿Puedo usar plugins de seguridad para limpiar el malware?
Los plugins como Wordfence o Sucuri pueden detectar el malware y algunos incluso lo eliminan. Pero no son infalibles y a veces no eliminan todas las puertas traseras. Mi recomendación: úsalos como complemento, pero no como única solución.
¿El malware puede afectar a otros sitios en mi servidor?
Sí, si el atacante tiene acceso al servidor (por ejemplo, mediante un archivo PHP malicioso), puede intentar propagarse a otros dominios en el mismo Plesk. Por eso es importante que revises todos tus sitios, no solo el infectado.
¿Cómo sé si mi sitio está limpio después de la limpieza?
Puedes usar herramientas online como Google Safe Browsing (https://transparencyreport.google.com/safe-browsing/search) para comprobar si Google considera tu sitio seguro. También puedes instalar el plugin Wordfence y hacer un escaneo completo para verificar que no quedan archivos maliciosos.
Resumen final: tu plan de acción contra el malware
- Haz una copia de seguridad y cambia todas tus contraseñas.
- Identifica los archivos infectados (PHP,
.htaccess, base de datos). - Elimina los archivos maliciosos y restaura los legítimos.
- Limpia la base de datos y elimina usuarios sospechosos.
- Reinstala WordPress, plugins y temas desde fuentes oficiales.
- Activa medidas de seguridad en Plesk: WAF, WordPress Toolkit, copias automáticas.
- Monitorea tu sitio durante las semanas siguientes para detectar reinfecciones.
Recuerda que la prevención es siempre más barata que la cura. Mantén todo actualizado, usa contraseñas fuertes y no instales plugins de dudosa procedencia. Con estos hábitos, el malware en WordPress con Plesk será un problema raro y manejable.
[INFO] Si en algún momento te sientes abrumado, no pasa nada por pedir ayuda profesional. Mejor invertir en un experto que perder tu sitio, tus datos o tu reputación online.
