Seguridad 10 min de lectura

¿Tu web tiene malware? Guía de emergencia

Cómo detectar, eliminar y prevenir infecciones de malware en tu sitio web paso a paso.

Descubrir que tu web tiene malware es una situación estresante. Google puede mostrar una advertencia de «Sitio engañoso», tu hosting puede suspender la cuenta, los visitantes pueden estar siendo redirigidos a sitios maliciosos y tu reputación online se deteriora con cada minuto que pasa.

Actuar rápido es crucial, pero actuar bien es más importante que actuar rápido. Una limpieza incompleta permite que el malware regrese en días. Esta guía te lleva paso a paso por el proceso completo: detección, contención, limpieza, verificación y prevención.

Señales de que tu web está infectada

El malware moderno intenta ser invisible para el propietario del sitio mientras afecta a los visitantes. Puedes tener malware durante semanas sin notarlo, especialmente si solo afecta a usuarios que llegan desde Google (cloaking) o a dispositivos móviles.

Las señales más comunes incluyen: redirecciones a sitios desconocidos, pop-ups o anuncios que no has insertado, páginas nuevas que no has creado (especialmente con contenido farmacéutico o de apuestas), un aumento repentino de tráfico desde países inusuales, y alertas de Google Search Console o del propio navegador.

Si tu hosting ha suspendido tu cuenta, probablemente detectó archivos maliciosos en un escaneo automático. El email de suspensión suele incluir detalles sobre los archivos infectados, lo que facilita el diagnóstico.

  • Redirecciones a sitios de terceros (especialmente en móvil)
  • Advertencia de Google: «Este sitio puede dañar tu equipo»
  • Pop-ups, anuncios o contenido que no has insertado
  • Páginas spam creadas automáticamente (pharma hack, Japanese SEO spam)
  • Envío masivo de emails spam desde tu servidor
  • Caída de rendimiento inexplicable o consumo excesivo de recursos

Paso 1: Contención inmediata

Antes de limpiar, contén la infección para minimizar el daño. No borres nada aún: necesitas investigar la causa antes de eliminar las pruebas.

Pon el sitio en modo mantenimiento con un plugin o una página HTML estática. Esto protege a los visitantes del malware mientras trabajas en la limpieza. Si tu hosting lo ha suspendido, ya está contenido.

Cambia inmediatamente las contraseñas de: admin de WordPress, FTP/SFTP, base de datos, panel de hosting y cualquier cuenta con acceso al servidor. El atacante probablemente tiene tus credenciales; si no las cambias, volverá a entrar después de la limpieza.

Paso 2: Detectar y analizar la infección

Usa herramientas de escaneo para identificar todos los archivos infectados. Sucuri SiteCheck (sitecheck.sucuri.net) es gratuito y escanea tu web desde fuera. Wordfence y Sucuri Security escanean los archivos desde dentro del servidor comparándolos con las versiones originales.

Busca archivos modificados recientemente que no deberían haber cambiado. Los archivos del core de WordPress (wp-includes/, wp-admin/) nunca deben ser modificados manualmente. Si tienen fecha de modificación reciente, están infectados. Los archivos con nombres sospechosos en wp-content/uploads/ (shell.php, x.php, wp-tmp.php) son casi siempre backdoors.

Revisa los logs de acceso del servidor para identificar cómo entró el atacante. Busca peticiones POST sospechosas a archivos PHP en carpetas de uploads, accesos a wp-login.php desde IPs poco habituales o peticiones a URLs inexistentes que podrían ser exploits.

Paso 3: Limpieza completa

La forma más segura de limpiar el core de WordPress es reinstalarlo completamente. Descarga la versión actual de WordPress.org, elimina las carpetas wp-includes/ y wp-admin/ del servidor y súbelas frescas. No toques wp-content/ ni wp-config.php en este paso.

Para los plugins, elimina cada carpeta de plugin y reinstálalos desde WordPress.org o el proveedor original. No intentes limpiar archivos de plugins manualmente: es más rápido y seguro reinstalar. Lo mismo aplica a los temas: reinstala desde la fuente original.

Revisa la base de datos en busca de código malicioso. Los atacantes insertan código JavaScript en las opciones de WordPress (tabla wp_options), en el contenido de posts (wp_posts) y crean usuarios administradores ocultos (wp_users). Busca etiquetas