Cómo limpiar una web WordPress infectada (cPanel y DirectAdmin)
¿Tu web WordPress ha sido hackeada? Respira hondo. No eres el primero al que le pasa y, lo más importante, tiene solución. Verás mensajes extraños, redirecciones a páginas raras, o quizás Google te ha marcado como sitio peligroso. Da igual el síntoma, el diagnóstico es el mismo: malware.
En esta guía extensa y práctica, voy a explicarte paso a paso cómo limpiar un WordPress infectado utilizando las herramientas que ya tienes en tu panel de control, ya sea cPanel o DirectAdmin. No necesitas ser un experto en programación, solo seguir el orden lógico de este manual y tener un poco de paciencia.
Vamos a ensuciarnos las manos, pero con método. El objetivo es eliminar malware de WordPress de forma efectiva y, sobre todo, evitar que vuelva a ocurrir.
Fase 1: Diagnóstico Inicial y Preparación (Antes de Tocar Nada)
Antes de lanzarnos a borrar archivos como locos, debemos saber qué estamos buscando. Actuar sin un plan puede romper tu sitio por completo.
¿Cómo sé que mi WordPress está infectado?
Los síntomas más comunes son:
- Redirecciones a sitios de farmacia, casinos o pornografía.
- Ventanas emergentes (pop-ups) invasivas.
- Tu web aparece en listas negras de Google o navegadores (aviso de "Sitio engañoso").
- Nuevos usuarios administradores que no creaste tú.
- El código fuente (ver con clic derecho > "Ver código fuente") contiene enlaces ocultos a webs externas.
- Tu hosting te suspende la cuenta por envío de spam.
Herramientas que necesitas para empezar
- Acceso a tu panel de control (cPanel o DirectAdmin).
- Acceso FTP (FileZilla es gratuito y perfecto). Si no sabes qué es, en tu panel de control hay un apartado llamado "FTP" o "Cuentas FTP" donde podrás ver los datos de conexión y crear usuarios si es necesario.
- Acceso a phpMyAdmin (desde el panel de control) para gestionar la base de datos.
- Un editor de texto plano (Bloc de Notas o Notepad++).
[WARNING] Antes de hacer CUALQUIER cambio, crea una copia de seguridad completa (archivos y base de datos). Si algo sale mal, podrás volver al estado actual. En cPanel busca "Backup" o "Copias de seguridad". En DirectAdmin, busca "Copias de seguridad" o "Backups". Descarga todo a tu ordenador.
Fase 2: Limpieza de Archivos en el Servidor (cPanel y DirectAdmin)
Esta es la parte más tediosa pero crucial. El malware suele esconderse en archivos PHP. Vamos a encontrarlos y eliminarlos.
Paso 1: Accede por FTP o al Administrador de Archivos
- En cPanel: Busca el ícono "Administrador de Archivos" (File Manager). Entra a la carpeta
public_html(o la carpeta raíz de tu dominio). - En DirectAdmin: Busca "Administrador de Archivos" en el menú superior. Navega a tu carpeta
domains->tudominio.com->public_html.
[TIP] Si tu web está en una subcarpeta (ej: public_html/blog), entra ahí.
Paso 2: Identifica archivos sospechosos por fecha
Una vez dentro, ordena los archivos por "Fecha de modificación". Los archivos que han sido modificados justo antes de que empezaras a notar los problemas son los principales sospechosos.
Busca archivos con extensiones extrañas como .php7, .phtml, .php5, .suspected, o nombres aleatorios como wp-login.php.bak, 0xdd.php, c.php, etc.
Paso 3: Busca código malicioso en el functions.php de tu tema
Este es el escondite favorito. Ve a wp-content -> themes -> tutemaactivo -> functions.php.
Ábrelo con el editor de texto. Al principio y al final del archivo, busca líneas de código que empiecen con eval(base64_decode( o gzinflate(base64_decode(. Esto es malware camuflado. También busca líneas larguísimas sin espacios.
[WARNING] Si no estás seguro de qué es código bueno y qué es malo, no borres todo el archivo. Mejor descarga una copia limpia del tema desde wordpress.org y reemplázalo por completo (perdiendo tus personalizaciones, eso sí).
Paso 4: Revisa los archivos .htaccess
Este archivo de configuración es vital. El malware lo usa para redirigir tu tráfico. Está en la raíz de public_html.
Ábrelo y busca líneas que contengan RewriteRule o Redirect apuntando a dominios raros que no reconoces. Si ves algo como https://sitiomalicioso.com, bórralo.
[INFO] Un .htaccess limpio de WordPress suele tener unas 15-20 líneas. Si el tuyo tiene 200 líneas llenas de reglas extrañas, está infectado. Puedes reemplazarlo por el estándar de WordPress (lo encuentras fácilmente buscando "WordPress .htaccess default" en Google).
Paso 5: Revisa los plugins y el núcleo de WordPress
Los archivos de plugins y del core de WordPress también pueden ser modificados.
- Ve a
wp-content->plugins. Desactiva todos los plugins (renombra la carpeta de cada uno añadiendo-oldal final, ej:contact-form-7-old). Esto los inutiliza sin borrarlos. - Luego, en la raíz, borra las carpetas
wp-adminywp-includes, y todos los archivos PHP de la raíz (excepto.htaccessywp-config.php).
[WARNING] No borres wp-content todavía. Ahí están tus imágenes y subidas.
Paso 6: Reinstala el núcleo de WordPress
Ahora ve a wordpress.org/download y descarga la última versión de WordPress en español. Descomprime el ZIP en tu ordenador.
Sube por FTP (o arrastra en el Administrador de Archivos) el contenido de la carpeta wordpress que has descomprimido a tu public_html, sobrescribiendo todos los archivos existentes.
Esto restaurará los archivos del núcleo, wp-admin y wp-includes a su estado original y limpio.
Fase 3: Limpieza de la Base de Datos (phpMyAdmin)
El malware no solo vive en los archivos, también se esconde en la base de datos. Aquí es donde se inyectan los famosos "hacks" que crean administradores ocultos.
Paso 1: Accede a phpMyAdmin
- En cPanel: Busca el ícono "Bases de datos MySQL" o directamente "phpMyAdmin".
- En DirectAdmin: Busca "MySQL Management" y luego haz clic en "phpMyAdmin".
Paso 2: Revisa la tabla de usuarios
Selecciona tu base de datos. Busca una tabla que se llame wp_users (si tu prefijo es distinto, ej: miweb_users, será ese).
Haz clic en "Examinar" (o Browse). Revisa la lista de usuarios. ¿Ves alguno que no reconozcas? Si es así, es un usuario creado por el hacker.
Paso 3: Elimina al usuario malicioso
Marca la casilla del usuario sospechoso y haz clic en "Eliminar" (o Delete) en la parte inferior.
[WARNING] NO elimines tu propio usuario administrador. Solo borra los que no hayas creado tú.
Paso 4: Revisa las opciones del sitio
En la tabla wp_options, busca una fila donde option_name sea siteurl o home. Asegúrate de que apuntan a tu dominio correcto (ej: https://tudominio.com). A veces el malware cambia esto para redirigirte.
Fase 4: Cambia TODAS tus Contraseñas
Después de limpiar, debes asumir que tus credenciales están comprometidas. Es imprescindible cambiarlas todas.
Contraseñas a cambiar:
- Panel de control (cPanel/DirectAdmin): La más importante.
- Base de datos MySQL: Cambia la contraseña del usuario de la base de datos y actualiza el archivo
wp-config.phpen tu servidor con la nueva. - Usuarios de WordPress: Entra en tu panel de
wp-admin(si puedes) y cambia la contraseña de todos los usuarios, especialmente los administradores. - FTP: Cambia la contraseña de tus cuentas FTP.
Fase 5: Seguridad Post-Limpieza (Prevenir Futuros Ataques)
Limpio tu WordPress hackeado, pero si no tapas el agujero por donde entró el hacker, volverá. Aquí tienes una lista de acciones para blindar tu sitio.
Instala un plugin de seguridad
Recomiendo encarecidamente instalar un plugin como Wordfence o iThemes Security. Son gratuitos y ofrecen:
- Firewall: Bloquean tráfico malicioso.
- Escaneo de malware: Detectan archivos infectados automáticamente.
- Protección de inicio de sesión: Limitan los intentos de acceso para evitar ataques de fuerza bruta.
Actualiza TODO
- WordPress: Ve a
Escritorio->Actualizaciones. - Temas:
Apariencia->Temas-> clic en "Actualizar". - Plugins:
Plugins-> clic en "Actualizar".
Un WordPress desactualizado es la puerta de entrada más común para los hackers.
Elimina plugins y temas que no uses
Cada plugin o tema inactivo es una potencial puerta trasera. Si no lo usas, bórralo por completo. No lo dejes desactivado, elimínalo.
Cambia el prefijo de la base de datos
Esto es más avanzado, pero muy efectivo. Cambiar wp_ a algo como miweb_ en las tablas de la base de datos y en el archivo wp-config.php confunde a los bots que intentan inyectar SQL.
[TIP] Puedes usar un plugin como "iThemes Security" que hace este cambio automáticamente por ti.
Oculta la URL de acceso (wp-admin)
Limitar el acceso a tu panel de administración es una gran barrera. Puedes usar plugins de seguridad para restringir el acceso por IP o añadir una capa extra de autenticación.
Fase 6: Caso Especial - Syspanel (Antes HestiaCP)
Para aquellos que usáis Syspanel (el antiguo HestiaCP), el proceso de limpieza es similar, pero el acceso al panel es diferente.
El acceso a Syspanel se realiza a través del puerto 2106 (ej: https://tudominio.com:2106).
Dentro de Syspanel, la estructura es muy parecida a DirectAdmin:
- Archivos: Busca "Administrador de Archivos" en el menú lateral. Navega a
domains->tudominio.com->public_html. - Base de Datos: Busca "Base de Datos" o "phpMyAdmin" en el menú lateral.
El resto de los pasos (limpieza FTP, base de datos, etc.) son exactamente los mismos.
Preguntas Frecuentes (FAQ) sobre WordPress Hacked
¿Cuánto tiempo tarda en desaparecer el aviso de Google de "Sitio engañoso"?
Una vez que hayas limpiado tu sitio, debes solicitar una revisión a Google a través de Google Search Console. El proceso puede tardar desde unas horas hasta varios días.
¿Qué hago si mi hosting está suspendido?
Ponte en contacto con tu proveedor de hosting de inmediato. Explícales que has limpiado el malware y muéstrales las acciones que has tomado. Normalmente te reactivarán la cuenta.
¿Puedo evitar que esto vuelva a pasar?
Sí. La seguridad es un proceso continuo. Mantén todo actualizado, usa contraseñas fuertes, instala un buen plugin de seguridad y realiza copias de seguridad periódicas (diarias o semanales). Muchos hostings ofrecen copias de seguridad automáticas, actívalas.
¿Y si no me atrevo a hacerlo yo?
Si la tarea te supera, no pasa nada. Es una situación compleja. Puedes contratar un servicio profesional de limpieza de malware. Muchos proveedores de hosting ofrecen este servicio por un costo adicional, o puedes buscar agencias especializadas en seguridad WordPress cPanel.
En resumen: la limpieza de un WordPress infectado requiere tiempo y paciencia, pero siguiendo estos pasos de forma metódica, podrás recuperar tu sitio y, con las medidas de seguridad adecuadas, mantenerlo a salvo en el futuro. No te saltes ningún paso, especialmente el de las contraseñas y las actualizaciones. ¡Buena suerte!
