Cómo eliminar malware de un sitio WordPress infectado
Primeros signos de un sitio WordPress infectado
Detectar que tu sitio WordPress ha sido comprometido puede ser una experiencia angustiante, pero actuar con rapidez y método es la clave para minimizar daños. Antes de lanzarte a eliminar malware WordPress, necesitas confirmar que realmente estás ante una infección y no ante un problema de configuración o de caché.
Los síntomas más comunes de un sitio WordPress infectado incluyen:
- Redirecciones extrañas a páginas de farmacias, casinos o webs de spam.
- Aparición de anuncios emergentes que no has creado.
- Alertas de Google Safe Browsing al intentar acceder a tu dominio.
- Lentitud extrema del sitio sin motivo aparente.
- Usuarios nuevos y desconocidos con rol de administrador.
- Archivos modificados o nuevos en el servidor que no reconoces.
- Contenido oculto en el código fuente, como enlaces invisibles.
Si identificas uno o varios de estos síntomas, es momento de ponerte manos a la obra. Este proceso puede parecer abrumador, pero con una guía clara y paso a paso podrás limpiar virus WordPress incluso sin ser un experto técnico.
Preparación previa: haz una copia de seguridad y aísla el problema
Antes de tocar nada, necesitas una red de seguridad. Una copia de seguridad de tu sitio te permitirá restaurar versiones anteriores si algo sale mal durante la limpieza. No hagas la copia del sitio infectado y la subas de nuevo: la idea es tener un respaldo local en tu ordenador para consultar archivos originales si los necesitas.
Cómo hacer una copia de seguridad segura
- Accede a tu panel de control de hosting (si usas Syspanel, el puerto de acceso es el 2106).
- Busca la opción de "Copias de seguridad" o "Backups".
- Descarga una copia completa de la base de datos y de los archivos del sitio.
- Guarda estos archivos en una carpeta local, pero no los subas de nuevo al servidor todavía.
Además, pon tu sitio en modo mantenimiento o desconecta temporalmente el acceso público. Puedes hacerlo desde el archivo .htaccess o usando un plugin de mantenimiento. Esto evitará que los visitantes se expongan a contenido malicioso mientras trabajas.
[WARNING] No subas la copia de seguridad directamente al servidor si está infectada. Úsala solo como referencia para comparar archivos o recuperar contenido legítimo.
Paso 1: Identifica el tipo de infección
No todo el malware es igual. Algunos atacan el núcleo de WordPress, otros modifican temas o plugins, y otros se esconden en la base de datos. Para eliminar malware WordPress de forma efectiva, primero debes saber qué estás combatiendo.
Tipos de malware más comunes
- Malware en archivos del núcleo: Modifica archivos como
wp-config.php,index.phpowp-load.php. - Malware en temas y plugins: Añade código malicioso a archivos PHP o JavaScript de tus plantillas.
- Malware en la base de datos: Inyecta enlaces ocultos en tablas como
wp_postsowp_options. - Malware en el servidor: Archivos fuera del directorio público, como scripts PHP en carpetas temporales.
Para detectar qué archivos están comprometidos, puedes usar herramientas como:
- Wordfence: Escanea tu sitio y te muestra los archivos modificados.
- Sucuri SiteCheck: Analiza tu sitio web desde fuera e identifica redirecciones o scripts maliciosos.
- MalCare: Ofrece un escaneo profundo y limpieza automática (versión de pago).
Si prefieres hacerlo manualmente, revisa la fecha de modificación de los archivos en tu servidor. Los archivos recientes y sospechosos suelen ser los culpables.
[TIP] Si usas Syspanel, puedes acceder al administrador de archivos y ordenar por fecha de modificación para detectar archivos recientes de forma rápida.
Paso 2: Limpia el malware manualmente desde el servidor
La limpieza manual es la opción más segura y completa, aunque requiere tiempo y paciencia. Si tu sitio WordPress infectado no es crítico o prefieres no pagar por un servicio externo, este método es perfecto para ti.
Accede a los archivos del servidor
- Entra en el administrador de archivos de tu hosting o usa un cliente FTP como FileZilla.
- Si usas Syspanel, el puerto de acceso es el 2106 y podrás gestionar los archivos desde el panel web.
Busca y elimina archivos maliciosos
Los archivos maliciosos suelen tener nombres que imitan a los legítimos pero con variaciones extrañas, como wp-login1.php, indexx.php o cron.php en lugares inesperados.
- Revisa la carpeta raíz de WordPress (
public_htmlowww). - Busca archivos con extensiones
.php,.phtml,.php5,.suspected. - Examina las carpetas
wp-content/uploadsywp-content/cache; a menudo se esconden scripts PHP disfrazados de imágenes.
No elimines archivos sin saber qué son. Si tienes dudas, compáralos con tu copia de seguridad local.
Limpia el núcleo de WordPress
La forma más segura de restaurar el núcleo es sobrescribir los archivos originales:
- Descarga la última versión de WordPress desde wordpress.org.
- Descomprime el archivo en tu ordenador.
- Sube los archivos del núcleo (excepto
wp-contentywp-config.php) al servidor, sobrescribiendo los existentes. - Asegúrate de que la carpeta
wp-adminywp-includesse reemplacen por completo.
[INFO] Este proceso no borra tu contenido ni tus plugins, solo restaura los archivos del sistema.
Revisa temas y plugins
- Ve a
wp-content/themesywp-content/plugins. - Desactiva todos los plugins desde la base de datos o renombrando la carpeta
pluginsaplugins_old. - Reinstala desde cero los temas y plugins que uses, preferiblemente descargándolos de nuevo desde sus repositorios oficiales.
Paso 3: Limpia la base de datos
El malware también puede esconderse en tu base de datos. Para limpiar virus WordPress desde la base de datos, necesitas acceso a phpMyAdmin o a la herramienta de gestión de bases de datos de tu hosting.
Cómo limpiar la base de datos
- Accede a phpMyAdmin desde tu panel de control.
- Selecciona la base de datos de tu WordPress.
- Haz una exportación de seguridad (aunque ya tengas una copia, nunca está de más).
- Ejecuta consultas SQL para buscar enlaces sospechosos.
Una consulta típica para buscar enlaces maliciosos en wp_posts es:
SELECT * FROM wp_posts WHERE post_content LIKE '%http://spam-link.com%';
Reemplaza spam-link.com por la URL que hayas detectado en el código fuente de tu sitio.
También revisa la tabla wp_options en busca de opciones que no reconozcas, especialmente las que contengan "malware", "hack", "shell" o "eval".
[WARNING] No ejecutes consultas SQL si no estás seguro de lo que haces. Un error puede dañar tu base de datos. Si dudas, consulta con tu proveedor de hosting o con un profesional.
Paso 4: Elimina la puerta trasera (backdoor)
Una vez limpio el sitio, es probable que el atacante haya dejado una puerta trasera para volver a entrar. Esta suele ser un archivo PHP pequeño y ofuscado que permite ejecutar comandos en tu servidor.
Dónde suelen esconderse
- En
wp-content/uploadscon nombres comologo.php. - En la carpeta raíz con nombres como
security.phpotmp.php. - En
wp-includescon nombres que imitan a los originales pero con caracteres extraños.
Para encontrarlos:
- Busca en tu servidor archivos con funciones como
eval(),base64_decode(),shell_exec(),exec(),system(). - Usa el buscador del administrador de archivos de tu hosting o un editor de texto como Notepad++ con la función "Buscar en archivos".
Si encuentras un archivo sospechoso, ábrelo y revisa su contenido. Si contiene código ofuscado o funciones peligrosas, elimínalo inmediatamente.
[TIP] Después de eliminar la puerta trasera, cambia todas tus contraseñas: la de WordPress, la de la base de datos, la del FTP y la del panel de control.
Paso 5: Actualiza todo y refuerza la seguridad
Una vez que tu sitio WordPress infectado esté limpio, es fundamental evitar que vuelva a ocurrir. La mayoría de las infecciones se producen por vulnerabilidades en versiones desactualizadas.
Actualizaciones obligatorias
- Actualiza WordPress a la última versión.
- Actualiza todos tus plugins y temas.
- Elimina los plugins y temas que no utilices.
Medidas de seguridad adicionales
- Cambia el prefijo de las tablas de la base de datos (por ejemplo, de
wp_amiwp_). - Limita los intentos de inicio de sesión con un plugin como Limit Login Attempts.
- Activa la autenticación de dos factores (2FA).
- Configura un cortafuegos de aplicación web (WAF) con servicios como Cloudflare.
- Realiza copias de seguridad automáticas semanales.
[INFO] Si usas Syspanel (puerto 2106), puedes configurar copias de seguridad automáticas desde el panel, así como activar la protección por contraseña en directorios sensibles.
Paso 6: Verifica la limpieza y solicita la revisión de Google
Después de limpiar todo, es hora de comprobar que el sitio funciona correctamente y que Google retira las advertencias.
Verificación interna
- Entra en tu sitio y navega por varias páginas.
- Revisa el código fuente en busca de enlaces extraños.
- Ejecuta un escaneo con Wordfence o Sucuri para confirmar que no quedan rastros.
Solicitar revisión a Google
Si tu sitio aparecía como "peligroso" en los resultados de búsqueda:
- Accede a Google Search Console.
- Ve a "Problemas de seguridad" o "Seguridad y manual actions".
- Solicita una revisión explicando que has limpiado el sitio y que has tomado medidas preventivas.
El proceso puede tardar entre unos días y un par de semanas.
Preguntas frecuentes (FAQ)
¿Cuánto tarda en limpiarse un sitio WordPress infectado?
Depende del tipo de infección y de tu experiencia. Si sigues esta guía, puede llevarte entre 4 y 8 horas. Si usas un servicio profesional, la limpieza suele completarse en 24-48 horas.
¿Necesito conocimientos técnicos para eliminar el malware?
No necesitas ser un experto, pero sí es recomendable tener nociones básicas de archivos y bases de datos. Si te sientes perdido, siempre puedes contratar un servicio de limpieza especializado.
¿Puedo perder mi contenido al limpiar el virus?
Si sigues los pasos correctamente, no. El contenido se encuentra en la base de datos y en wp-content/uploads. La limpieza de archivos del núcleo no afecta a tu contenido.
¿Qué hago si el malware reaparece?
Si el malware vuelve después de limpiarlo, es probable que quedara una puerta trasera oculta o que tu servidor esté comprometido. Cambia las contraseñas, contacta con tu proveedor de hosting y considera migrar a un servidor más seguro.
¿Los plugins de seguridad son suficientes para eliminar malware?
Los plugins ayudan a detectar y bloquear amenazas, pero no siempre eliminan el malware completamente. Son una buena medida preventiva, pero para una limpieza profunda es mejor combinar escaneo automático con limpieza manual.
Conclusión
Eliminar malware WordPress es un proceso que requiere método, paciencia y atención al detalle. No hay una solución mágica, pero con esta guía detallada podrás limpiar virus WordPress de forma segura y proteger tu sitio contra futuros ataques. Recuerda que la prevención es siempre la mejor estrategia: mantén todo actualizado, haz copias de seguridad periódicas y utiliza herramientas de seguridad de confianza.
Si tu sitio WordPress infectado te supera, no dudes en buscar ayuda profesional. A veces, el coste de un servicio de limpieza es menor que el daño reputacional y económico que puede causar una infección prolongada. Con calma y siguiendo estos pasos, tu sitio volverá a estar sano y seguro.
