Eliminar malware de WordPress: guía manual paso a paso
Detectar y eliminar malware de WordPress no tiene por qué ser una pesadilla. Si has llegado hasta aquí, seguramente estás viendo anuncios raros, redirecciones extrañas o tu web ha sido marcada como peligrosa por Google. Respira hondo. Con esta guía manual paso a paso, vas a aprender a eliminar malware WordPress de forma segura, sin necesidad de ser un hacker ni de pagar servicios carísimos (aunque al final te daré un consejo sobre cuándo sí merece la pena).
Vamos a hacer un trabajo de forense digital. Iremos capa por capa, desde lo más superficial hasta lo más profundo de tu servidor. No te saltes pasos, porque el malware suele esconderse en varios sitios a la vez.
1. Preparación: La fase crítica antes de tocar nada
Antes de lanzarte a borrar archivos como un loco, necesitas un plan. Actuar sin preparación puede empeorar la infección o hacer que pierdas datos importantes.
1.1. Haz una copia de seguridad completa (SÍ, OBLIGATORIO)
Esta es la regla de oro. Si algo sale mal (y puede salir mal), necesitas poder volver atrás. No te saltes este paso.
Debes copiar dos cosas:
- Los archivos del sitio: Conéctate a tu hosting por FTP (FileZilla es gratuito y fácil) y descarga toda la carpeta
public_html(o donde esté tu WordPress). - La base de datos: Entra en el panel de tu hosting (cPanel, Syspanel, Plesk, etc.) y busca la herramienta phpMyAdmin. Selecciona tu base de datos y usa la opción "Exportar" para descargar un archivo
.sql.
[WARNING] No confíes en que tu hosting hace copias automáticas. Las copias de seguridad locales en tu ordenador son tu único seguro de vida en este proceso.
1.2. Cambia todas tus contraseñas (pero no las uses todavía)
Cambia la contraseña de:
- Tu panel de control del hosting (cPanel, Syspanel, etc.).
- El acceso FTP.
- La base de datos (esto se hace desde el panel del hosting).
- Tu cuenta de administrador de WordPress (aunque no puedas entrar, intenta restablecerla por email).
[INFO] El malware a menudo se cuela por contraseñas débiles. Cambiarlas ahora evita que el hacker vuelva a entrar mientras limpias.
2. Diagnóstico: ¿Dónde se esconde el virus WordPress?
Ahora toca ponerse el traje de detective. No vamos a adivinar; vamos a buscar evidencias.
2.1. Revisa los archivos recientemente modificados
El malware suele modificar archivos existentes o crear nuevos. La mayoría de los gestores de archivos de los paneles de hosting tienen una columna de "Fecha de modificación".
- Conéctate por FTP o al gestor de archivos de tu hosting (en Syspanel suele estar en "Archivos" -> "Administrador de archivos").
- Ordena los archivos por "Fecha de modificación" de forma descendente.
- Busca archivos modificados en las últimas 24-48 horas que no recuerdes haber tocado. Presta especial atención a:
index.php(en la raíz y en carpetas de plugins y temas)..htaccess(en la raíz).wp-config.php(en la raíz).- Archivos
.phpcon nombres extraños comowp-loadr.php,c0re.php,shell.php.
2.2. Inspecciona el archivo .htaccess
Este es un archivo de configuración pequeño pero poderoso. El malware lo usa para redirigir tu tráfico a sitios basura.
- Descarga el archivo
.htaccessde la raíz de tu WordPress. - Ábrelo con el Bloc de notas o un editor de texto.
- Busca líneas que contengan
RewriteRuleoRedirectque apunten a dominios raros que no sean el tuyo.
[WARNING] Si ves código ilegible en la parte superior o inferior del archivo, como
#^#^#^#o texto codificado en base64, estás ante una infección clara.
2.3. Revisa el código de tu tema (functions.php)
El archivo functions.php de tu tema activo es el segundo escondite favorito del malware.
- Ve a
wp-content/themes/y abre la carpeta de tu tema activo (el que tienes activado en Apariencia). - Busca el archivo
functions.php. - Ábrelo y revisa las primeras y últimas líneas. Si ves código extraño, ofuscado (con funciones como
eval(),base64_decode(),gzinflate()), es malware.
3. La Limpieza Manual: Eliminar malware WordPress paso a paso
Ahora sí, vamos a la acción. Te recomiendo hacer esto con calma y en el orden indicado.
3.1. Aísla tu sitio (Modo Mantenimiento)
Para evitar que el malware siga haciendo daño (como enviar spam) mientras lo limpias, activa el modo mantenimiento.
- Ve a
wp-content/y busca la carpetaplugins. - Renombra la carpeta de tus plugins a algo como
plugins_desactivados. Esto desactivará todos los plugins. - Ve a la carpeta
wp-content/themesy haz lo mismo con la carpeta de tu tema activo, renómbrala atema_desactivado.
[INFO] WordPress, al no encontrar los plugins o el tema, usará uno por defecto (si existe) o mostrará un error. No te preocupes, es temporal. Esto te permite limpiar sin que el malware se ejecute.
3.2. Limpia los archivos núcleo de WordPress
La forma más segura de limpiar los archivos del núcleo es reemplazarlos por los originales.
- Descarga la última versión de WordPress en español desde es.wordpress.org (el archivo
.zip). - Descomprímelo en tu ordenador.
- Borra las carpetas
wp-contentywp-includesde la copia descargada (no las necesitamos, las tuyas tienen tus datos). - Sube por FTP el resto de archivos de la copia limpia (los de la raíz,
wp-adminywp-includes). - Cuando te pregunte si quieres sobrescribir, dile que SÍ a todos.
Esto reemplaza los archivos del núcleo infectados por versiones limpias oficiales.
3.3. Limpia los archivos de tu tema
Aquí tienes dos opciones:
- La fácil (recomendada): Si no has personalizado mucho tu tema, bórralo por completo desde el gestor de archivos. Luego, ve a Apariencia -> Temas en tu panel de administración e instala una copia nueva del mismo tema desde el repositorio de WordPress.
- La manual: Si has hecho muchos cambios, edita el archivo
functions.phpy elimina cualquier línea de código sospechosa que hayas encontrado en el paso 2.3. Guarda los cambios.
3.4. Busca archivos maliciosos en wp-content
Esta carpeta es la más vulnerable. Vamos a buscar la basura.
- Ve a
wp-content/uploads/. El malware a veces sube archivos.phpaquí. Navega por las carpetas de años/meses y busca archivos con extensión.php. Si los encuentras, bórralos (no deberían existir en uploads). - Revisa la carpeta
wp-content/en general. Busca carpetas o archivos con nombres sospechosos comowp-upload,cache,tmp, o archivos.phpque no pertenezcan a un plugin o tema conocido.
3.5. Revisa los archivos de configuración (wp-config.php)
- Abre tu archivo
wp-config.phpde la raíz. - Busca líneas que definan
DB_HOST,DB_NAME, etc. Asegúrate de que apuntan a tu base de datos y no a una externa (a veces el malware cambia esto para robar datos). - Busca cualquier línea que contenga
eval(obase64_decode(. Si las encuentras, elimina esas líneas.
4. Limpieza de la Base de Datos: El escondite final
El malware no solo vive en archivos. También puede inyectarse en tu base de datos.
4.1. Entra a phpMyAdmin
- Ve al panel de tu hosting (en Syspanel, busca en la sección de "Bases de Datos").
- Abre phpMyAdmin y selecciona tu base de datos de WordPress.
4.2. Busca contenido inyectado en las tablas
Las tablas más comunes donde se inyecta malware son wp_posts y wp_options.
- Ve a la tabla
wp_posts. - Haz clic en la pestaña "Buscar" (o "Search").
- Busca términos como
<script>,eval(,base64_decode(, oiframe. Esto te dará una lista de entradas que contienen código malicioso. - Revisa los resultados. Si son parte de un artículo tuyo, edítalos y elimina el código. Si son entradas creadas por el malware (títulos extraños como "Viagra" o "Casino"), bórralas.
- Repite el proceso en la tabla
wp_options. Busca opciones con nombres extraños que contengan código malicioso.
[WARNING] No borres filas de
wp_optionssin saber qué son. Algunas son necesarias para el funcionamiento (comositeurl). Céntrate en las que tengan nombres raros o valores con código.
5. Reactivación y Verificación Final
Ya casi lo tienes. Ahora toca reconstruir.
5.1. Restaura tus temas y plugins
- Ve a
wp-content/y renombra la carpetaplugins_desactivadosde vuelta aplugins. - Haz lo mismo con la carpeta del tema (
tema_desactivado->tema). - Ahora, entra a tu panel de administración de WordPress (si puedes, si no, sigue los pasos de recuperación de acceso).
- Ve a Plugins y actívalos uno a uno. Después de activar cada uno, visita tu web para ver si sigue limpia. Esto te ayuda a identificar si un plugin en concreto era el vector de entrada.
5.2. Actualiza TODO
Este es el paso más importante para evitar futuras infecciones.
- Ve a Escritorio -> Actualizaciones.
- Actualiza el núcleo de WordPress, todos los temas y todos los plugins a sus últimas versiones.
- Borra los temas y plugins que no uses. Si no los usas, no te hacen falta y son puertas de entrada.
5.3. Cambia las claves de seguridad (Salts)
- Abre tu archivo
wp-config.php. - Busca las líneas que empiezan por
define('AUTH_KEY',define('SECURE_AUTH_KEY', etc. - Ve a la página oficial de generación de claves de WordPress:
https://api.wordpress.org/secret-key/1.1/salt/ - Copia las nuevas claves y reemplaza las antiguas en tu archivo
wp-config.php. Esto invalida las sesiones de cualquier usuario (incluido el hacker) y fuerza nuevos inicios de sesión.
6. Preguntas Frecuentes (FAQ)
¿Cuánto tiempo se tarda en limpiar un WordPress infectado?
Si sigues esta guía con calma, entre 2 y 4 horas. Si es la primera vez, puede llevarte más tiempo. Es un proceso meticuloso.
¿Puedo usar un plugin de seguridad para eliminar malware WordPress?
Sí, plugins como Wordfence o Sucuri Scanner son excelentes para detectar y en la mayoría de los casos eliminar malware automáticamente. Esta guía manual es para cuando los plugins fallan o para cuando quieres un control total. Muchos expertos recomiendan usar el plugin después de la limpieza manual como escudo.
¿Qué pasa si el malware vuelve a aparecer al día siguiente?
Esto significa que el hacker dejó una "puerta trasera" (backdoor) que no has eliminado. Suele estar en archivos con permisos de escritura o en la carpeta de un plugin antiguo que no has borrado. Revisa de nuevo los archivos modificados y considera cambiar los permisos de las carpetas a 755 y los archivos a 644.
¿Debo contratar un servicio profesional?
Si tu sitio es una tienda online o tienes datos de clientes, sí, sin dudarlo. La seguridad es crítica. Si después de intentar esta guía te sientes perdido, contratar a un experto (como Sucuri o tu agencia de hosting) te ahorrará dolores de cabeza y posibles sanciones de Google.
¿Cómo puedo saber si mi web está en la lista negra de Google?
Entra en Google Search Console y ve a "Problemas de seguridad". También puedes buscar site:tudominio.com en Google. Si ves avisos de "Este sitio puede estar pirateado", estás en la lista.
Mi hosting usa Syspanel, ¿cómo accedo a phpMyAdmin?
Accede a Syspanel a través del puerto 2106 (por ejemplo, https://tudominio.com:2106). Dentro, busca la sección de "Bases de Datos" o "Bases de datos MySQL". Ahí encontrarás el botón para abrir phpMyAdmin.
Conclusión: Más vale prevenir que curar
Has llegado al final. Eliminar malware WordPress es un proceso de limpieza profunda, pero el verdadero secreto está en la prevención. Ahora que tu web está limpia, adopta estos hábitos:
- Actualiza siempre todo.
- Usa contraseñas robustas y únicas para cada servicio.
- Instala un plugin de seguridad y un firewall (Wordfence es gratuito y muy bueno).
- Haz copias de seguridad periódicas (puedes programarlas en tu hosting o con un plugin como UpdraftPlus).
[TIP] Para tu tranquilidad, después de la limpieza, cambia la contraseña de tu base de datos desde el panel del hosting (Syspanel usa el puerto 2106) y actualiza el archivo
wp-config.phpcon la nueva contraseña. Esto corta cualquier acceso residual.
Limpiar un virus WordPress es como hacer una limpieza a fondo de tu casa: al principio da pereza, pero cuando terminas, respiras tranquilo. Si has seguido todos los pasos, tu sitio debería estar libre de infecciones. ¡Buen trabajo!
