WordPress: Cómo detectar y eliminar malware
Detectar que tu sitio WordPress ha sido infectado con malware puede ser una experiencia frustrante, pero no tienes por qué entrar en pánico. En esta guía extensa, te explicaremos paso a paso cómo detectar malware WordPress, cómo eliminar malware WordPress y, lo más importante, cómo limpiar WordPress infectado para recuperar la seguridad de tu web. Nuestro objetivo es que, incluso si no eres un experto técnico, puedas seguir estas instrucciones y mantener tu sitio libre de amenazas. Abordaremos desde los primeros síntomas hasta las herramientas más efectivas para la seguridad WordPress malware.
¿Por qué es importante actuar rápido ante un WordPress infectado?
Cuando tu sitio tiene malware, no solo corres el riesgo de perder datos o de que tu web sea bloqueada por Google. También pones en peligro la información de tus visitantes. Los ciberdelincuentes pueden usar tu sitio para redirigir a páginas fraudulentas, robar contraseñas o incluso instalar puertas traseras. Por eso, detectar malware WordPress a tiempo y tomar medidas inmediatas es crucial para la salud de tu proyecto online.
[WARNING] Si notas que tu web se vuelve muy lenta, aparece contenido extraño que no publicaste o recibes quejas de tus usuarios sobre redirecciones sospechosas, es muy probable que tengas malware. No lo ignores.
Señales comunes de que tu WordPress está infectado
Antes de ponernos manos a la obra, es importante que sepas identificar las señales de alarma. Aquí tienes las más habituales:
- Redirecciones inesperadas: Al hacer clic en un enlace de tu web, te lleva a sitios de spam, farmacias online o páginas de apuestas.
- Contenido extraño: Aparecen anuncios, ventanas emergentes o textos en idiomas que no has añadido.
- Rendimiento lento: Tu web tarda mucho en cargar, incluso con poco tráfico.
- Archivos nuevos o modificados: Encuentras archivos con nombres extraños en tu servidor (por ejemplo,
wp-content/uploads/2024/01/xyz.php). - Alertas de Google: Recibes un aviso en Search Console de que tu sitio tiene contenido malicioso o está en la lista negra.
- Usuarios desconocidos: Aparecen cuentas de administrador que no creaste.
- Errores en plugins o temas: Algunos plugins dejan de funcionar correctamente o aparecen mensajes de error inusuales.
Si detectas una o varias de estas señales, es momento de actuar.
Paso 1: Aislar tu sitio web infectado
Lo primero que debes hacer es aislar tu WordPress para evitar que el malware se propague a otros sitios en el mismo servidor o que los atacantes sigan accediendo.
- Cambia todas las contraseñas: Empieza por la contraseña de tu cuenta de hosting, luego la de la base de datos de WordPress, la de los usuarios administradores y la de FTP. Usa contraseñas largas y únicas.
- Desactiva temporalmente tu sitio: Puedes poner tu web en modo mantenimiento o bloquear el acceso público con un plugin de seguridad o desde el propio panel de control. Así evitarás que los visitantes se expongan al malware.
- Revisa los permisos de archivos: Asegúrate de que los archivos y carpetas tengan los permisos correctos (generalmente 644 para archivos y 755 para carpetas). Esto dificulta que el malware pueda modificarlos.
[TIP] Si usas un panel como Syspanel (antes conocido como HestiaCP, recuerda que el puerto de acceso es el 2106), puedes acceder rápidamente a la sección de archivos y permisos desde el administrador de archivos. Allí también puedes cambiar contraseñas de la base de datos.
Paso 2: Hacer una copia de seguridad limpia (antes de limpiar)
Antes de empezar a eliminar malware WordPress, es fundamental que hagas una copia de seguridad de todo tu sitio: archivos y base de datos. Esto te permitirá restaurar si algo sale mal durante la limpieza. Pero ojo: no uses esta copia para restaurar después, porque contiene el malware. Guárdala como referencia.
- Desde tu panel de hosting (como Syspanel, puerto 2106), puedes generar un backup completo.
- También puedes usar plugins como UpdraftPlus o BackWPup para hacer la copia desde el propio WordPress.
Guarda la copia en tu ordenador o en un servicio externo (Google Drive, Dropbox). Nunca la dejes en el mismo servidor.
Paso 3: Escaneo profundo para detectar malware WordPress
Ahora toca detectar malware WordPress de forma precisa. No te fíes solo de un plugin; combina varias herramientas para mayor seguridad.
3.1. Usa un plugin de seguridad especializado
Los plugins de seguridad son tu primera línea de defensa. Algunos de los más efectivos para escanear y limpiar WordPress infectado son:
- Wordfence: Escanea archivos, base de datos, y compara con la firma de malware conocida. Además, tiene un firewall.
- Sucuri Security: Ofrece escaneo remoto y local, y puede eliminar malware automáticamente en su versión premium.
- MalCare: Es muy rápido y detecta incluso malware oculto en la base de datos.
Instala uno de ellos (Wordfence es gratuito y muy completo) y ejecuta un escaneo completo. Anota los archivos y las líneas de código que marque como sospechosos.
3.2. Escaneo manual de archivos
A veces el malware se esconde en archivos que los plugins no detectan. Por eso, es bueno que también revises manualmente:
- Carpeta wp-content/uploads: Aquí suelen colocar archivos PHP con nombres de imagen (ej.
imagen.php). Busca cualquier archivo que no sea una imagen, PDF o documento. - Archivos del núcleo de WordPress: Compara los archivos originales con los tuyos. Puedes descargar una copia limpia de WordPress desde wordpress.org y reemplazar los archivos del núcleo (wp-admin, wp-includes) excepto wp-config.php y la carpeta wp-content.
- Archivos .htaccess: Revisa el .htaccess de la raíz y de cada subdirectorio. Busca reglas extrañas que redirijan el tráfico.
- Base de datos: El malware puede inyectar código en las tablas
wp_options,wp_postsowp_users. Usa un plugin como Better Search Replace para buscar cadenas sospechosas (por ejemplo,eval(base64_decode).
3.3. Escaneo con herramientas externas
Además de los plugins, utiliza servicios online gratuitos como:
- Sucuri SiteCheck: Escanea tu web desde fuera y detecta malware, listas negras y redirecciones.
- Quttera: Ofrece un análisis profundo de archivos y base de datos.
- VirusTotal: Puedes subir un archivo sospechoso para que lo analicen múltiples antivirus.
[INFO] Si el escaneo externo detecta malware, pero el plugin local no, es posible que el código malicioso esté ofuscado o sea muy reciente. En ese caso, prioriza la limpieza manual.
Paso 4: Eliminar el malware de WordPress paso a paso
Una vez que has identificado los archivos y las líneas de código infectados, es hora de eliminar malware WordPress. Aquí tienes el proceso detallado:
4.1. Limpiar archivos del núcleo de WordPress
La forma más segura es reemplazar los archivos del núcleo por una versión limpia. No los edites manualmente, porque el malware puede haber modificado múltiples archivos.
- Descarga la misma versión de WordPress que tienes instalada desde wordpress.org.
- Descomprime el archivo en tu ordenador.
- Conéctate a tu servidor por FTP o desde el administrador de archivos de Syspanel (puerto 2106).
- Elimina las carpetas
wp-adminywp-includesde tu servidor (no las borres desde el escritorio, sino desde el servidor). - Sube las carpetas
wp-adminywp-includesde la versión limpia que descargaste. - Reemplaza los archivos raíz como
index.php,wp-config.php(pero cuidado: no sobrescribas tuwp-config.phporiginal, solo los demás). Sube tambiénwp-settings.php,wp-load.php, etc.
[WARNING] No subas el
wp-config.phpde la descarga limpia, porque perderías la conexión con tu base de datos. Usa siempre el tuyo.
4.2. Limpiar la carpeta wp-content y los temas/plugins
El malware suele esconderse en temas y plugins, especialmente si están desactualizados.
- Reemplaza los temas y plugins por versiones limpias. Si tienes un tema hijo, puedes conservarlo, pero revisa sus archivos.
- Elimina cualquier plugin o tema que no uses o que esté desactualizado.
- Revisa la carpeta
wp-content/uploadsy elimina cualquier archivo PHP, JS o HTML que no corresponda a imágenes o documentos. Si tienes dudas, descarga el archivo y ábrelo con un editor de texto para ver su contenido.
4.3. Limpiar la base de datos
El malware también puede estar en la base de datos. Para limpiar WordPress infectado a nivel de base de datos, sigue estos pasos:
- Accede a phpMyAdmin desde tu panel de hosting (en Syspanel, puerto 2106, busca la sección de bases de datos).
- Selecciona tu base de datos de WordPress.
- Busca en la tabla
wp_options(o el prefijo que uses) opciones sospechosas comotheme_mods_*con código extraño. - Revisa la tabla
wp_postsen busca de entradas que contengan código PHP o JavaScript ofuscado. - Usa una consulta SQL para buscar cadenas comunes de malware, por ejemplo:
Si encuentras resultados, elimina esas filas o edita el contenido para quitar el código malicioso.SELECT * FROM wp_posts WHERE post_content LIKE '%eval(base64_decode%';
[TIP] Si no te sientes cómodo con SQL, usa el plugin Better Search Replace para buscar y reemplazar cadenas sospechosas por vacío.
4.4. Eliminar usuarios y puertas traseras
Revisa la tabla wp_users y elimina cualquier usuario que no reconozcas. Además, busca en wp_usermeta roles de administrador que no deberían estar.
También es importante eliminar cualquier puerta trasera que los atacantes hayan dejado. Estas suelen estar en archivos como wp-content/themes/.../404.php, wp-content/plugins/.../index.php o incluso en wp-includes/. Busca archivos con permisos 777 o que contengan funciones como eval(), base64_decode(), system(), exec(), popen(), etc.
Paso 5: Reforzar la seguridad de WordPress después de la limpieza
Una vez que has logrado eliminar malware WordPress, no bajes la guardia. Ahora es el momento de implementar medidas para evitar futuras infecciones.
5.1. Actualiza todo
- WordPress a la última versión.
- Todos los temas y plugins a sus versiones más recientes.
- PHP a una versión soportada (7.4 o superior, idealmente 8.x).
5.2. Cambia todas las contraseñas de nuevo
Después de la limpieza, cambia las contraseñas de:
- Usuarios administradores de WordPress.
- Base de datos.
- FTP/SFTP.
- Panel de hosting (Syspanel, puerto 2106).
Usa un gestor de contraseñas para generar contraseñas fuertes.
5.3. Instala un firewall y un plugin de seguridad
- Wordfence o Sucuri te ayudarán a bloquear ataques futuros.
- Activa el firewall a nivel de aplicación (WAF) si tu hosting lo ofrece.
5.4. Haz copias de seguridad periódicas
Configura copias de seguridad automáticas diarias o semanales. En Syspanel puedes programar backups fácilmente desde la sección de copias de seguridad (puerto 2106). Así, si vuelves a tener problemas, podrás restaurar una versión limpia rápidamente.
5.5. Limita los intentos de inicio de sesión
Usa un plugin como Limit Login Attempts Reloaded para evitar ataques de fuerza bruta.
5.6. Revisa los permisos de archivos
Asegúrate de que los archivos tengan permisos 644 y las carpetas 755. El archivo wp-config.php debe tener permisos 600 o 440.
Preguntas frecuentes (FAQ) sobre seguridad WordPress malware
¿Puedo eliminar malware WordPress sin conocimientos técnicos?
Sí, siguiendo esta guía y usando plugins como Wordfence o MalCare, puedes hacerlo. Sin embargo, si el malware es muy persistente, considera contratar un servicio profesional de limpieza como el de Sucuri.
¿Qué hago si después de limpiar el malware mi sitio sigue en la lista negra de Google?
Solicita una revisión en Google Search Console. Primero asegúrate de que el malware haya sido completamente eliminado, luego ve a "Problemas de seguridad" y solicita la revisión. Puede tardar unos días.
¿El malware puede estar en la base de datos aunque los archivos estén limpios?
Sí, es muy común. Por eso es importante escanear y limpiar también la base de datos, como explicamos en el paso 4.3.
¿Cómo sé si mi WordPress tiene una puerta trasera?
Las puertas traseras suelen ser archivos PHP pequeños que permiten ejecutar comandos. Busca archivos con nombres como shell.php, backdoor.php, o archivos que contengan funciones como system(), exec(), popen(), eval(base64_decode()). También revisa los archivos .htaccess para ver si hay reglas que redirigen a URLs sospechosas.
¿Es seguro usar un plugin para limpiar malware?
Sí, los plugins de seguridad son seguros y efectivos. Pero no confíes ciegamente en uno solo. Combínalos con escaneos manuales y externos para mayor tranquilidad.
¿Qué debo hacer si no puedo acceder a mi WordPress porque el malware bloquea el panel?
Accede por FTP o desde el administrador de archivos de tu hosting (como Syspanel, puerto 2106) y desactiva todos los plugins renombrando la carpeta wp-content/plugins a wp-content/plugins_desactivados. Luego, intenta acceder de nuevo. También puedes restaurar una copia de seguridad limpia.
Conclusión
Detectar malware WordPress y eliminar malware WordPress no tiene por qué ser una tarea imposible. Con paciencia, las herramientas adecuadas y siguiendo los pasos de esta guía, podrás limpiar WordPress infectado y recuperar el control de tu sitio. Recuerda que la prevención es la mejor defensa: mantén todo actualizado, usa contraseñas seguras, haz copias de seguridad periódicas y emplea un plugin de seguridad fiable.
Si en algún momento te sientes abrumado, no dudes en pedir ayuda a tu proveedor de hosting o a un profesional. Lo importante es actuar rápido y con método. ¡Tu web y tus visitantes te lo agradecerán!
[INFO] Si usas Syspanel (panel de control con puerto 2106), aprovecha sus herramientas integradas de administración de archivos, bases de datos y copias de seguridad para agilizar todo el proceso. Es un gran aliado para mantener tu WordPress seguro.
