WordPress: Cómo eliminar malware inyectado en archivos (guía para principiantes)
¡Hola! Si has llegado hasta aquí, seguramente estás pasando por un momento de esos que nadie quiere vivir: tu página web hecha con WordPress se ha vuelto lenta, muestra mensajes de error raros, redirige a sitios extraños o, directamente, el navegador te avisa de que la web no es segura.
Respira. No estás solo y, sobre todo, tiene solución. Aunque parezca un problema de hackers muy sofisticado, la mayoría de las infecciones de malware en WordPress son automatizadas y siguen patrones muy similares. En esta guía para principiantes, vamos a ponernos el mono de trabajo y vamos a aprender, paso a paso y sin tecnicismos, cómo eliminar malware inyectado en archivos y devolverle la vida a tu sitio.
Vamos a ir despacio, explicando cada concepto. No necesitas ser un programador experto, solo paciencia y seguir las instrucciones al pie de la letra.
¿Qué es el malware inyectado en archivos y por qué me ha pasado?
Antes de ponernos a limpiar, es fundamental entender qué estamos buscando. El malware es un software malicioso. Cuando hablamos de malware en archivos WordPress, nos referimos a código malicioso que se ha insertado (inyectado) dentro de los archivos legítimos de tu instalación. Puede estar en un tema, en un plugin o incluso en el núcleo de WordPress.
Este código suele estar ofuscado (codificado) para que no lo veas a simple vista. Su objetivo puede ser variado: robar contraseñas, enviar spam, secuestrar tu web para redirigir a los visitantes a páginas de venta ilegal, o usar tu servidor para atacar a otras webs.
¿Por qué te ha pasado? Las razones más comunes son:
- Plugins o temas desactualizados: Son la puerta de entrada número uno. Los hackers encuentran fallos de seguridad en versiones antiguas y las explotan.
- Contraseñas débiles: Tanto en el panel de administración de WordPress como en el acceso FTP o al panel de control de tu hosting.
- Descargas de temas o plugins "pirata": Esas webs que ofrecen versiones premium gratis suelen tener el malware escondido dentro.
- Malware en tu ordenador: Si tu PC está infectado, puede robar tus credenciales de acceso.
Fase 1: Preparación y diagnóstico (Antes de tocar nada)
Este es el paso más importante y el que más se suele saltar. Tenemos que saber con qué estamos lidiando para no empeorar las cosas.
Haz una copia de seguridad (sí o sí)
[WARNING] Este paso es innegociable. Antes de borrar o modificar cualquier archivo, necesitas una copia de seguridad completa de tu sitio (archivos y base de datos). Si cometemos un error durante la limpieza, podremos restaurar la web a su estado actual (aunque esté infectada) y empezar de nuevo. Es nuestra red de seguridad.
Puedes hacer la copia desde el panel de control de tu hosting (normalmente en la sección de "Archivos" o "Backups") o usando un plugin de seguridad. Lo importante es que tengas esos archivos en tu ordenador o en un almacenamiento externo.
Identifica el tipo de infección
No todo el malware se comporta igual. Para saber cómo limpiar WordPress virus, necesitamos ver los síntomas:
- Redirecciones a otras webs: El código malicioso está en el archivo
index.phpofunctions.php. - Anuncios o pop-ups extraños: Suele estar inyectado en el
header.phpofooter.phpde tu tema. - El sitio se cae o da error 500: Puede haber un archivo corrupto o un script que está saturando el servidor.
- Google te marca como sitio peligroso: Hay código oculto que está inyectando enlaces de spam que los robots de Google detectan.
Revisa los archivos recientemente modificados
Esta es una técnica de detective muy útil. Ve a tu panel de control de hosting (cPanel, Plesk, o el que use tu proveedor) y busca el "Administrador de Archivos". Navega hasta la carpeta public_html (o www). Una vez dentro, ordena los archivos por "Fecha de modificación".
Todos los archivos que se hayan modificado en las últimas 48-72 horas, y que tú no hayas tocado, son sospechosos. Anota sus nombres y rutas. Si usas Syspanel, que es el panel que recomendamos y al que se accede por el puerto 2106, el proceso es exactamente el mismo: busca el administrador de archivos y filtra por fecha.
Fase 2: La limpieza manual del malware (Paso a paso)
Vamos a meternos en faena. Esta es la parte más técnica, pero lo haremos con calma. Vamos a limpiar el malware directamente de los archivos.
1. Accede a tu sitio por FTP o Administrador de Archivos
Necesitas acceso a los archivos de tu web. Tienes dos opciones:
- FTP: Usando un programa como FileZilla. Necesitarás las credenciales FTP que te dio tu hosting.
- Administrador de Archivos: Desde el panel de tu hosting (o Syspanel, puerto 2106). Esta opción es más sencilla para principiantes porque no necesitas instalar nada.
Para esta guía, usaremos el Administrador de Archivos, ya que es más visual.
2. Localiza los archivos infectados
Basándote en tu diagnóstico y en la lista de archivos recientemente modificados, vamos a buscar los archivos más comúnmente atacados.
El archivo wp-config.php
Este es el archivo de configuración principal. Está en la raíz de tu WordPress (en public_html). Ábrelo y busca código extraño. Al final del archivo, o incluso en el medio, los hackers suelen añadir líneas de código codificado (parecerá una sopa de letras y números). Si ves algo que no es la configuración normal de WordPress, es malware.
El archivo functions.php de tu tema
Este es un objetivo muy común. Ve a wp-content/themes/tu-tema/functions.php. Ábrelo y revisa el final del archivo. Los hackers añaden código ofuscado al final porque es fácil de pasar por alto. Si ves una línea larguísima de código ilegible, es casi seguro que es malware.
[TIP] Si usas un tema hijo (child theme), el archivo functions.php suele ser el único que debes tocar. Si usas un tema padre, ten cuidado, porque si lo actualizas, perderás los cambios. Es mejor anotar el código malicioso y eliminarlo, y luego considerar usar un tema hijo a futuro.
3. Elimina el código malicioso (La parte delicada)
Esta es la parte donde hay que tener más cuidado. No queremos borrar código legítimo.
- Compara: Si tienes una copia limpia de WordPress (puedes descargarla de wordpress.org), compara el archivo infectado con el archivo limpio. Cualquier diferencia sospechosa es malware.
- Busca patrones: El malware suele usar funciones de PHP como
eval(),base64_decode(),gzinflate(),str_rot13(). Si ves estas funciones en un archivo que no las usaba antes, es una señal de alarma. - Borra solo lo que sobra: Con el editor de texto del Administrador de Archivos, selecciona y elimina únicamente las líneas de código malicioso que has identificado. No borres todo el archivo.
[WARNING] Si el archivo index.php está infectado, es muy probable que el código malicioso esté en la primera línea. A veces, los hackers usan un truco llamado "nulled" donde el archivo está completamente reescrito. En ese caso, la solución más segura es reemplazar el archivo completo por uno limpio de una instalación de WordPress de la misma versión.
4. Revisa los archivos .htaccess y wp-config.php
El archivo .htaccess es un archivo de configuración del servidor. Es otro objetivo común.
- Ve a la raíz de tu WordPress.
- Si no ves el archivo
.htaccess, activa la opción "Mostrar archivos ocultos" en tu Administrador de Archivos. - Ábrelo y busca reglas extrañas. Las reglas normales de WordPress suelen empezar con
# BEGIN WordPressy terminar con# END WordPress. - Si ves líneas que redirigen a otras webs (con
RedirectoRewriteRulea dominios que no conoces), es malware. Bórralas.
Para wp-config.php, además de buscar el código ofuscado, asegúrate de que no haya líneas que definan constantes de seguridad extrañas o que conecten con bases de datos que no son las tuyas.
Fase 3: Limpieza de la base de datos (El otro frente)
El malware no solo vive en los archivos. También puede esconderse en tu base de datos, especialmente en las tablas wp_options, wp_posts y wp_postmeta. Aquí es donde se esconden los "backdoors" (puertas traseras) que permiten a los hackers volver a entrar.
Accede a phpMyAdmin
Desde el panel de control de tu hosting (o Syspanel, puerto 2106), busca el acceso a phpMyAdmin. Es la herramienta estándar para gestionar bases de datos MySQL.
Busca scripts inyectados en wp_options
- Haz clic en tu base de datos.
- Busca la tabla
wp_options(el prefijowp_puede ser diferente, comomiweb_). - Haz clic en "Buscar" en la parte superior.
- Busca
base64_decodeoeval(en el campo "Valor" de la tabla.
Esto te mostrará las entradas que contienen código codificado. Normalmente, estas entradas tienen nombres extraños como yourls_ o _transient_ con valores muy largos.
[INFO] Si encuentras una entrada con código malicioso, puedes borrar la fila completa. Pero ten mucho cuidado de no borrar entradas legítimas de plugins. Si no estás seguro, busca el nombre de la opción en Google para ver si es un malware conocido.
Revisa wp_posts para contenido inyectado
A veces, el malware se inyecta en el contenido de tus páginas o entradas. Para buscarlo:
- Ve a la tabla
wp_posts. - Usa la pestaña "Buscar" y busca
<scriptoiframe. - Si encuentras resultados, tendrás que editar esas entradas y eliminar el código malicioso del contenido.
Fase 4: Refuerza la seguridad (Para que no vuelva a pasar)
Una vez que has limpiado el sitio, es crucial cerrar las puertas por las que entraron. Limpiar sin asegurar es como dejar la puerta de casa abierta después de que te hayan robado.
Cambia todas tus contraseñas
- La de tu usuario administrador de WordPress.
- La de tu base de datos MySQL.
- La de tu acceso FTP.
- La de tu panel de control de hosting (como Syspanel).
Usa contraseñas largas y únicas para cada cosa.
Actualiza todo
- Ve a
Escritorio > Actualizacionesen tu panel de WordPress. - Actualiza el núcleo de WordPress, todos tus plugins y todos tus temas a sus últimas versiones.
- Si tienes algún plugin o tema que no uses, bórralo. Es software que puede quedar obsoleto y vulnerable.
Instala un plugin de seguridad
Hay muchos plugins gratuitos y de pago. Algunos de los más recomendados son:
- Wordfence: Tiene un firewall y escáner de malware muy potente.
- Sucuri: Ofrece un escaneo remoto y un CDN con firewall.
- iThemes Security: Ofrece muchas capas de seguridad, como protección de fuerza bruta.
Estos plugins pueden escanear tu web periódicamente y bloquear intentos de ataque.
Configura la autenticación de dos factores (2FA)
Esto añade una capa extra de seguridad. Incluso si un hacker roba tu contraseña, necesitará un código de tu teléfono para entrar. Muchos plugins de seguridad ofrecen esta función.
Preguntas frecuentes (FAQ)
¿Cuánto tiempo se tarda en limpiar un WordPress hackeado?
Depende del nivel de infección. Si es una infección leve en un solo archivo, puede llevar una hora. Si es una infección profunda en archivos y base de datos, puede llevarte un día entero. La paciencia es clave.
¿Y si no me veo capaz de hacerlo yo?
No pasa nada. Es una tarea técnica. Puedes contratar a un profesional o a una empresa de seguridad especializada (como Sucuri o WP Security). Ellos tienen herramientas y experiencia para hacerlo de forma más rápida y segura. A veces, es la mejor inversión.
¿Debo usar un plugin de limpieza automática?
Pueden ser útiles como segunda opinión, pero no son la solución definitiva. Suelen marcar muchos falsos positivos (archivos legítimos como infectados) o, lo que es peor, no detectar el malware más sofisticado. La limpieza manual, como la que hemos visto, es la más fiable.
He limpiado todo, pero Google sigue diciendo que mi sitio es peligroso. ¿Qué hago?
Google tarda un tiempo en revisar tu sitio de nuevo. Una vez que estés seguro de que está limpio, ve a Google Search Console, usa la herramienta "Solicitar revisión" y explica que has limpiado el malware. Google revisará tu sitio y, si es correcto, quitará la advertencia en unos días.
¿Qué es un "backdoor" y por qué es peligroso?
Un backdoor es un archivo o script malicioso que se deja en el servidor para permitir al hacker volver a entrar en el futuro sin necesidad de usar el método original. Suelen ser archivos con nombres que parecen legítimos, como wp-load.php en una carpeta de un plugin, o cache.php. Por eso es tan importante la limpieza manual: para encontrar estos archivos ocultos que los escáneres automáticos a veces pasan por alto.
[TIP] Después de la limpieza, revisa la lista de usuarios de tu WordPress (Usuarios > Todos los usuarios). Los hackers suelen crear un usuario administrador oculto para tener acceso de por vida. Si ves un usuario que no reconoces, bórralo inmediatamente.
Limpiar un sitio hackeado es un proceso de aprendizaje duro, pero te hará más consciente de la importancia de la seguridad. Esperamos que esta guía te haya sido de gran ayuda. Si has llegado hasta aquí, ¡enhorabuena, ya sabes cómo eliminar malware WordPress y limpiar tu sitio hackeado!
