Cómo eliminar malware de WordPress en tu hosting
Detectar que tu sitio web carga lento, muestra errores extraños o redirige a páginas desconocidas es una señal de alerta. Si además tu proveedor de hosting te ha enviado un aviso de “sitio infectado”, es normal sentir preocupación. Pero respira: eliminar malware de WordPress es un proceso que puedes realizar tú mismo siguiendo un orden lógico y con las herramientas adecuadas.
En esta guía extensa y paso a paso, te explicaré cómo limpiar virus en WordPress desde el panel de tu hosting, sin necesidad de ser un experto en programación. Abordaremos desde la identificación del problema hasta la prevención futura, con un enfoque práctico y didáctico.
1. Primeros pasos: Diagnóstico y preparación antes de eliminar malware
Antes de tocar nada, es crucial entender qué tipo de infección tienes y preparar el terreno para una limpieza segura. No se trata de borrar archivos al azar, sino de seguir un protocolo.
1.1. Señales comunes de un sitio infectado
Los síntomas pueden variar, pero los más habituales son:
- Aparición de ventanas emergentes (pop-ups) que no has creado.
- Redirecciones a webs de farmacia, casinos o contenido ilegal.
- Avisos de Google Safe Browsing al intentar entrar a tu dominio.
- Aumento repentino del consumo de CPU o memoria en tu hosting.
- Usuarios administradores nuevos que no reconoces (creados por el atacante).
- Código basura en archivos como
index.php,functions.phpo.htaccess.
1.2. Herramientas que necesitarás
Para limpiar virus en WordPress, vas a necesitar:
- Acceso a cPanel, Plesk o Syspanel (el panel de tu hosting). Si usas Syspanel, recuerda que el puerto de acceso es el 2106 (ejemplo:
https://tudominio.com:2106). - Cliente FTP (como FileZilla) o el administrador de archivos del propio panel.
- Acceso a phpMyAdmin para revisar la base de datos.
- Un plugin de seguridad en WordPress (Wordfence, Sucuri, etc.) o un escáner externo.
[WARNING] Antes de empezar a borrar nada, haz una copia de seguridad completa (archivos y base de datos). Si cometes un error, podrás restaurar todo. En Syspanel, busca la opción “Backup” o “Copias de seguridad” en el menú principal.
1.3. Poner el sitio en modo mantenimiento
Para evitar que los visitantes vean errores mientras limpias, activa un plugin de mantenimiento o crea un archivo maintenance.php temporal. Esto también evita que el malware se siga propagando a través de interacciones de usuarios.
2. Eliminar malware de WordPress: Limpieza manual de archivos
Esta es la fase más delicada. No borres archivos aleatoriamente. Sigue estos pasos para localizar el código malicioso.
2.1. Revisar archivos núcleo de WordPress
Los atacantes suelen ocultar código en archivos del núcleo (core). Para verificar su integridad:
- Descarga una copia limpia de WordPress desde wordpress.org (misma versión que la tuya).
- Compara los archivos de tu instalación con los de la copia limpia. Puedes hacerlo manualmente con un cliente FTP, pero es más eficiente usar un plugin de seguridad que haga esta verificación automáticamente.
- Reemplaza los archivos modificados por los originales. Presta especial atención a:
wp-config.php(aunque este no debe reemplazarse sin más, ya que contiene tus credenciales).wp-settings.php- Archivos de la carpeta
wp-includesywp-admin.
2.2. Revisar temas y plugins
Los temas y plugins son el punto de entrada favorito de los hackers. Especialmente si no los actualizas.
- Desactiva todos los plugins desde el panel de administración (si puedes acceder). Si no puedes, renombra la carpeta
wp-content/pluginsawp-content/plugins_desactivadosmediante FTP o el administrador de archivos. - Cambia temporalmente a un tema por defecto (como Twenty Twenty-Four). Renombra la carpeta de tu tema activo en
wp-content/themes/para forzar el cambio. - Busca archivos sospechosos dentro de estas carpetas. Los nombres comunes de malware son:
shell.php,c99.php,r57.php(webshells).- Archivos con doble extensión (
imagen.jpg.php). - Archivos
.icoo.txtcon código PHP muy largo.
[TIP] Si encuentras un archivo sospechoso, no lo abras en el navegador. Descárgalo a tu PC y ábrelo con un editor de texto (como Notepad++). Si ves código PHP ofuscado (con funciones como
eval(),base64_decode(),str_rot13()), es casi seguro que es malware.
2.3. El archivo .htaccess y otros archivos ocultos
El archivo .htaccess es un objetivo clásico. Los atacantes añaden reglas de redirección o código PHP que se ejecuta al inicio.
- Abre el
.htaccessdesde el administrador de archivos de tu hosting. - Busca líneas extrañas que no sean las típicas de WordPress (como
RewriteEngine Ono# BEGIN WordPress). - Si está infectado, reemplázalo por una copia limpia de un WordPress recién instalado, o elimínalo y deja que WordPress lo regenere (ve a Ajustes > Enlaces permanentes y pulsa “Guardar cambios”).
También revisa archivos como error_log, access.log y cualquier archivo con nombre raro en la raíz (por ejemplo, x.php, tmp.php, wp-login.php.bak).
3. Limpiar la base de datos (phpMyAdmin)
La infección puede estar en la base de datos, no solo en los archivos. Los hackers inyectan código en las tablas wp_options, wp_posts o wp_comments.
3.1. Buscar inyecciones SQL
-
Accede a phpMyAdmin desde tu panel de hosting (cPanel, Plesk o Syspanel).
-
Selecciona tu base de datos de WordPress.
-
Ve a la pestaña “Buscar” (Search) y busca:
base64_decodeeval((con paréntesis)document.write(iframehttp://(en campos donde no debería haber URLs, comowp_optionsen la opciónsiteurl).
-
Revisa las tablas
wp_options. Busca opciones comositeurlyhome; asegúrate de que apuntan a tu dominio correcto.
3.2. Limpiar usuarios administradores
- Ve a la tabla
wp_usersy revisa si hay usuarios que no reconoces. - Ve a la tabla
wp_usermetay verifica sus capacidades (wp_capabilities). Si encuentras un usuario con roladministratorque no creaste, elimínalo. - Cambia la contraseña de todos los administradores legítimos desde el panel de WordPress (o directamente en la base de datos con MD5, aunque es mejor desde el panel).
[WARNING] No ejecutes consultas SQL complejas si no estás seguro. Una mala consulta puede romper tu base de datos. Si no te sientes cómodo, usa un plugin de seguridad que automatice este proceso.
4. Uso de plugins de seguridad para eliminar malware
Los plugins son tus mejores aliados para automatizar la limpieza. No sustituyen la revisión manual, pero aceleran el proceso.
4.1. Wordfence (versión gratuita)
- Instala y activa Wordfence.
- Ve a “Escaneos” (Scan) y haz clic en “Nuevo escaneo”.
- Espera a que termine (puede tardar varios minutos).
- Wordfence te mostrará los archivos infectados. Puedes reparar los archivos del núcleo y poner en cuarentena los archivos de temas y plugins.
- En la pestaña “Herramientas” > “Diagnóstico”, puedes ver si hay archivos sospechosos en la raíz.
4.2. Sucuri Scanner (versión gratuita)
Este plugin es excelente para detectar malware en archivos y también ofrece un firewall (de pago). El escáner gratuito te permite:
- Comparar el hash de archivos del núcleo.
- Buscar firmas de malware.
- Revisar la lista negra de Google.
4.3. MalCare o BlogVault (soluciones más avanzadas)
Si la infección es grave y no puedes acceder al panel de administración, estos plugins (con plan de pago) ofrecen limpieza remota desde su propio servidor, sin necesidad de tocar archivos manualmente.
5. Medidas de seguridad post-limpieza para tu hosting
Una vez que has conseguido eliminar malware de WordPress, es hora de blindar tu instalación para que no vuelva a ocurrir. La seguridad es un proceso continuo, no una acción puntual.
5.1. Actualiza todo (WordPress, temas y plugins)
Esta es la medida más importante. Las vulnerabilidades explotadas suelen estar en versiones antiguas.
- Ve a
Escritorio > Actualizacionesy actualiza el núcleo de WordPress. - Actualiza todos los temas y plugins a sus últimas versiones.
- Elimina los temas y plugins que no uses. Un plugin inactivo pero desactualizado es una puerta abierta.
5.2. Cambia todas las contraseñas
- Cambia la contraseña de tu cuenta de hosting (cPanel, Plesk o Syspanel).
- Cambia la contraseña de la base de datos (desde el panel de hosting, no solo desde WordPress).
- Cambia la contraseña de FTP.
- Cambia la contraseña de todos los usuarios de WordPress.
5.3. Refuerza el acceso a wp-admin
- Cambia la URL de acceso a
wp-login.php. Puedes usar un plugin como “WPS Hide Login”. - Añade autenticación de dos factores (2FA) con un plugin como “Google Authenticator”.
- Limita los intentos de inicio de sesión con un plugin como “Limit Login Attempts Reloaded”.
5.4. Configura un firewall en tu hosting
- Si tu hosting lo permite, activa ModSecurity (un firewall de aplicaciones web).
- Utiliza plugins como Wordfence o Sucuri que ofrecen firewall a nivel de aplicación.
[INFO] En Syspanel, puedes revisar la sección de “Seguridad” para activar ModSecurity y otras protecciones básicas. El acceso es por el puerto 2106.
6. Preguntas frecuentes (FAQ) sobre sitios infectados
Aquí respondo a las dudas más comunes que recibimos en soporte técnico.
¿Cuánto tiempo se tarda en limpiar un WordPress infectado?
Depende de la gravedad. Una infección leve (solo archivos) puede tardar de 1 a 2 horas. Infecciones en la base de datos o con backdoors ocultos pueden requerir un día completo. La paciencia es clave.
¿Necesito pagar a un servicio profesional?
No siempre. Si sigues esta guía, podrás solucionarlo tú mismo en la mayoría de los casos. Sin embargo, si el sitio es crítico (tienda online) o la infección es muy compleja, un servicio profesional (como Sucuri o un desarrollador especializado) puede ahorrarte tiempo y dolores de cabeza. El costo suele ser menor que el de perder datos o clientes.
¿Qué hago si Google marca mi sitio como “Engañoso” o “Peligroso”?
Una vez que limpies el sitio:
- Ve a Google Search Console y verifica tu propiedad.
- Solicita una revisión del sitio en la sección “Problemas de seguridad”.
- Google revisará manualmente tu sitio y eliminará la advertencia en unos días.
¿Puedo prevenir futuros ataques al 100%?
No existe la seguridad absoluta. Pero siguiendo las medidas de prevención (actualizaciones, contraseñas fuertes, 2FA, firewall y copias de seguridad periódicas), reduces el riesgo en más de un 95%. Los ataques automatizados buscan sitios descuidados; si tu sitio está bien mantenido, los bots pasarán de largo.
¿Qué es un “backdoor” y por qué es peligroso?
Un backdoor es un archivo que permite al atacante volver a entrar en tu sitio incluso después de que cambies las contraseñas. Suelen estar ocultos en archivos con nombres inocentes (como cache.php o dentro de la carpeta uploads). Por eso es crucial revisar todos los archivos, no solo los más evidentes.
7. Resumen final: Tu plan de acción para eliminar malware
Para terminar, te dejo un checklist rápido para que no te pierdas:
- Copia de seguridad completa (archivos y base de datos).
- Escaneo inicial con un plugin de seguridad.
- Reemplazo de archivos del núcleo de WordPress.
- Desactivación y revisión de temas y plugins.
- Limpieza de la base de datos (usuarios y opciones maliciosas).
- Revisión del
.htaccessy archivos ocultos. - Cambio de todas las contraseñas (hosting, FTP, base de datos y WordPress).
- Actualización de todo y eliminación de elementos no usados.
- Activación de medidas de seguridad (2FA, firewall, limitación de intentos de acceso).
- Solicitud de revisión a Google si tu sitio estaba en lista negra.
[TIP] Después de la limpieza, programa escaneos de seguridad semanales con tu plugin. La prevención es mucho más barata y menos estresante que la curación.
Recuerda que tu hosting es tu primer muro de defensa. Si tienes dudas sobre cómo acceder a las herramientas de tu panel, consulta la documentación de tu proveedor o contacta con su soporte. Con paciencia y método, tu sitio volverá a estar sano y seguro. ¡Manos a la obra!
