Qué hacer si tu sitio web ha sido hackeado (WordPress y cPanel)
¡Tranquilo! Que te hayan dicho que tu sitio está web hackeada es una de las peores sensaciones para cualquier dueño de página. Ves tu trabajo, tus clientes o tu blog convertido en algo que no reconoces, lleno de spam, redirecciones extrañas o un mensaje de Google diciendo que tu sitio no es seguro.
Pero respira hondo. No estás solo y esto se puede solucionar. En esta guía extensa, paso a paso, te voy a explicar exactamente qué hacer si tu sitio WordPress ha sido comprometido o si sospechas que tu cPanel hackeado es el origen del problema. Vamos a limpiar malware, recuperar el control y, lo más importante, evitar que vuelva a pasar.
Vamos a dividirlo en dos grandes fases: primero, la emergencia (detener el daño y diagnosticar), y segundo, la limpieza profunda y la prevención.
FASE 1: LA EMERGENCIA - DETENER EL SANGRADO Y DIAGNOSTICAR
Antes de correr a limpiar archivos, hay que actuar con cabeza. Lo primero es aislar el problema y entender qué ha pasado.
1.1. Cambia todas tus contraseñas YA
Este es el paso número uno y el más urgente. Si el atacante tiene acceso a tus claves, todo lo demás será en vano.
- Contraseña de cPanel (o Syspanel): Ve a tu panel de hosting. Si usas Syspanel (antes conocido como HestiaCP, recuerda que el puerto de acceso es el 2106), cambia la contraseña del usuario administrador.
- Contraseña de la base de datos (MySQL/MariaDB): Desde tu panel (cPanel o Syspanel), busca la sección de bases de datos. Cambia la contraseña del usuario que tiene acceso a la base de datos de tu WordPress.
- Contraseña del administrador de WordPress: Si aún puedes acceder a tu wp-admin, cambia la contraseña de todos los usuarios, especialmente del administrador. Hazla larga, única y compleja (usa un gestor de contraseñas).
- Contraseñas de FTP/SFTP: Si usas FTP para subir archivos, cambia esa contraseña también.
[WARNING] No uses la misma contraseña para todo. Un atacante que entra por un lado no debería poder acceder a todo. Usa contraseñas diferentes y seguras.
1.2. Pon tu sitio en modo mantenimiento
No quieres que los visitantes (ni los buscadores) vean el desastre o, peor aún, se infecten. La forma más rápida es crear un archivo .maintenance en la raíz de tu instalación de WordPress (la carpeta public_html o www).
- Conéctate por FTP o al administrador de archivos de tu cPanel/Syspanel.
- Crea un archivo llamado
.maintenance(sin extensión). - Pega este contenido dentro:
<?php $upgrading = time(); ?> - Guarda el archivo. Esto mostrará un mensaje genérico de "Mantenimiento programado" a tus usuarios.
Otra opción más visual es instalar un plugin de "modo mantenimiento" (después de la limpieza, claro) o subir un archivo index.html básico con un mensaje, renombrando temporalmente tu index.php de WordPress.
1.3. Diagnóstico inicial: ¿Qué ha pasado?
Antes de limpiar, intenta entender el alcance.
- ¿Tu web redirige a otro sitio? (Ej: a páginas de farmacias, casinos o descargas).
- ¿Ves archivos extraños? En tu gestor de archivos, busca archivos con nombres raros (ej:
0x4.php,wp-login.php.bak,shell.php). - ¿Hay contenido nuevo que no has escrito? Revisa las entradas y páginas en tu wp-admin.
- ¿Recibes correos de Google Search Console? Google te avisará si ha detectado malware.
- ¿Tu cPanel tiene procesos extraños? En la sección "Administrador de procesos" o "Estadísticas", mira si hay procesos PHP que consumen mucha CPU de forma anormal.
[INFO] Si ves archivos con permisos 777 (lectura, escritura y ejecución para todos), esa es una puerta abierta. Los permisos correctos para archivos son 644 y para carpetas 755.
FASE 2: LA LIMPIEZA PROFUNDA - RECUPERAR WORDPRESS HACKEADO
Ahora sí, manos a la obra. Vamos a recuperar WordPress hackeado paso a paso. Hay dos caminos: la limpieza manual (más segura si sabes lo que haces) y la automática (con plugins). Te recomiendo combinar ambas.
2.1. Escanea tu web con plugins de seguridad (Limpieza Automática)
Instala y ejecuta un plugin de seguridad desde tu wp-admin (si aún puedes acceder). Si no, tendrás que subirlo manualmente por FTP.
- Wordfence Security: Es el más popular. Ve a "Wordfence > Scan" y ejecuta un escaneo completo. Te mostrará archivos modificados, plugins vulnerables y posibles backdoors.
- Sucuri Security: Excelente para escanear y limpiar. Su versión gratuita escanea el sitio y te dice qué archivos están infectados.
- MalCare Security: Es de pago, pero muy efectivo para limpiar sin tocar el servidor.
¿Qué hará el plugin?
- Escaneará todos los archivos de tu WordPress en busca de firmas de malware.
- Comparará los archivos del núcleo de WordPress con los originales (para detectar modificaciones).
- Te permitirá "poner en cuarentena" o eliminar archivos sospechosos.
[TIP] No confíes ciegamente en un solo escaneo. A veces el malware es muy hábil y se esconde. Ejecuta al menos dos plugins diferentes para estar seguro.
2.2. Limpieza Manual: Revisa los archivos clave (la parte más técnica)
Si el plugin no encuentra todo, o si quieres asegurarte al 100%, toca revisar manualmente. Conéctate a tu hosting por FTP o al administrador de archivos de cPanel/Syspanel.
¿Qué archivos revisar primero?
wp-config.php: El archivo más importante. Ábrelo y busca líneas extrañas al final o al principio (código PHP que no ponga nada relacionado con la configuración de la base de datos, claves de seguridad, etc.). Si ves algo comoeval(base64_decode(...)), es malware.functions.phpdel tema activo: Es un lugar favorito para los atacantes. Ve a/wp-content/themes/[tu-tema]/functions.phpy revísalo. Busca cualquier línea que no sea de tu tema original (especialmente al final del archivo).- Archivos
.htaccess: Hay uno en la raíz de tu WordPress y otro en/wp-content/uploads/. Ábrelos. Busca reglas de redirección extrañas (líneas conRewriteRuleque apunten a sitios raros). A menudo el malware añade reglas para redirigir el tráfico o mostrar contenido malicioso. - Carpeta
wp-content/uploads: Es donde se guardan las imágenes y archivos subidos. Revisa si hay archivos PHP (.php, .phtml, .php5) dentro. No debería haberlos. Si encuentras, elimínalos. - Archivos con nombres sospechosos en la raíz: Busca
shell.php,admin.php,c99.php,r57.phpo cualquier archivo que no sea parte de WordPress (comoindex.php,wp-login.php,xmlrpc.php, etc.).
¿Cómo saber si un archivo es legítimo?
- Tamaño: Un archivo de WordPress suele tener un tamaño pequeño (unos pocos KB). Un archivo infectado puede ser muy grande (cientos de KB) o muy pequeño (1-2 KB) y estar lleno de código ofuscado (sin sentido, lleno de
eval,base64_decode,gzinflate). - Fecha de modificación: Si un archivo del núcleo de WordPress (como
wp-login.php) tiene una fecha de modificación reciente y tú no lo has tocado, es sospechoso. - Contenido: Busca funciones peligrosas como
eval(),base64_decode(),exec(),system(),popen(),file_get_contents()con URLs extrañas.
2.3. Limpia la base de datos
El malware no solo se esconde en archivos. Puede inyectar código malicioso en tu base de datos, especialmente en la tabla wp_posts (dentro del contenido de las entradas) y en wp_options (para redirecciones o scripts maliciosos).
- Ve a tu cPanel/Syspanel y abre phpMyAdmin.
- Selecciona tu base de datos de WordPress.
- Haz clic en la tabla
wp_posts. - Busca en el campo
post_content(el contenido de las entradas) términos como<script,eval(,base64,iframeo enlaces a sitios extraños. - Si encuentras algo, edita la entrada y elimina el código malicioso. No borres toda la entrada, solo el fragmento malicioso.
- Revisa también la tabla
wp_options. Busca opciones comositeurl,home(que deben apuntar a tu dominio), y opciones que contengan scripts o redirecciones.
[WARNING] Ten mucho cuidado al editar la base de datos. Si borras algo importante, puedes romper tu sitio. Si no estás seguro, mejor contrata a un profesional.
2.4. Reinstala el núcleo de WordPress y los plugins/temas
Una vez que has limpiado los archivos principales, es hora de restaurar todo a su estado original.
- Descarga una copia limpia de WordPress desde wordpress.org.
- Reemplaza los archivos del núcleo: Excepto
wp-config.phpy la carpetawp-content(que contiene tus temas, plugins y subidas), sube todos los demás archivos de la nueva descarga a tu servidor, sobrescribiendo los existentes. Esto asegura que cualquier archivo del núcleo que estuviera infectado sea reemplazado. - Actualiza todos los plugins y temas: Desde tu wp-admin, ve a Plugins > Plugins instalados y actualiza todos. Haz lo mismo con Apariencia > Temas. Si algún plugin o tema está desactualizado, es probable que sea la puerta de entrada del ataque.
- Elimina plugins y temas que no uses: Cada plugin inactivo es un riesgo potencial. Si no lo necesitas, bórralo.
FASE 3: LIMPIAR cPanel HACKEADO (SI EL ATAQUE FUE MÁS ALLÁ)
A veces el ataque no se limita a WordPress, sino que compromete todo el cPanel hackeado. Esto es más grave, porque el atacante puede tener acceso a todos tus sitios web, cuentas de correo, bases de datos, etc.
3.1. Señales de que tu cPanel está comprometido
- Ves nuevos usuarios de FTP o de correo electrónico que no creaste tú.
- Hay tareas programadas (Cron Jobs) extrañas que ejecutan scripts PHP o comandos raros.
- El administrador de archivos muestra archivos con permisos 777 en carpetas donde no deberían estar.
- Recibes alertas de tu hosting sobre uso excesivo de CPU o ancho de banda.
3.2. Pasos para limpiar cPanel
- Cambia la contraseña principal de cPanel/Syspanel (puerto 2106). Hazla extremadamente segura.
- Revisa los Cron Jobs: Ve a "Tareas Programadas" (Cron Jobs) y elimina cualquier tarea que no reconozcas. Los atacantes suelen crear tareas que ejecutan un script PHP cada pocos minutos para mantener el acceso.
- Revisa las cuentas de FTP: Ve a "Cuentas FTP" y elimina cualquier cuenta que no hayas creado. Cambia las contraseñas de las que sí uses.
- Revisa las cuentas de correo: Ve a "Cuentas de Email" y busca cuentas extrañas. Los atacantes pueden usarlas para enviar spam.
- Verifica los registros de acceso (Access Logs): En "Estadísticas" o "Registros", busca IPs sospechosas que hayan accedido a archivos como
wp-login.phpoxmlrpc.phpmuchas veces. - Contacta a tu proveedor de hosting: Si sospechas que el ataque es grave o no puedes limpiarlo, contacta al soporte técnico. Muchos hosts ofrecen limpieza de malware como servicio o pueden restaurar una copia de seguridad limpia de tu cuenta.
[INFO] Si tu proveedor de hosting te ofrece una copia de seguridad anterior al ataque, esa es la solución más rápida y segura. Pídela y restaura tu sitio desde esa copia.
FASE 4: PREVENCIÓN - CÓMO EVITAR QUE VUELVA A PASAR
Ya has limpiado tu sitio. Has sufrido lo suficiente. Ahora, toma medidas para que no te vuelva a pasar.
4.1. Actualiza todo, siempre
- WordPress: Mantén el núcleo, los temas y los plugins siempre actualizados. Activa las actualizaciones automáticas si es posible.
- PHP: Usa la versión más reciente de PHP que sea compatible con tu WordPress (PHP 8.0 o superior).
- cPanel/Syspanel: Mantén actualizado tu panel de control (aunque esto suele hacerlo tu hosting).
4.2. Usa contraseñas fuertes y autenticación de dos factores (2FA)
- Contraseñas: Usa un gestor de contraseñas (como LastPass, 1Password o Bitwarden) para generar y almacenar contraseñas únicas y complejas.
- 2FA en WordPress: Instala un plugin como Google Authenticator o Wordfence Login Security para añadir un segundo factor de autenticación a tu wp-admin.
- 2FA en cPanel/Syspanel: Si tu hosting lo permite, activa la autenticación de dos factores para acceder a tu panel de control.
4.3. Protege tu wp-admin
- Cambia la URL de login: Usa un plugin como WPS Hide Login para que tu página de acceso no sea
/wp-admino/wp-login.php. - Limita los intentos de login: Con plugins como Limit Login Attempts Reloaded, bloquea IPs que intenten acceder muchas veces.
- Usa un firewall: Wordfence o Sucuri ofrecen firewalls que bloquean el tráfico malicioso antes de que llegue a tu servidor.
4.4. Haz copias de seguridad periódicas
- Automáticas: Configura copias de seguridad automáticas diarias o semanales de tu sitio (archivos y base de datos). Puedes usar plugins como UpdraftPlus, BackupBuddy o Jetpack.
- Almacena las copias fuera del servidor: Guárdalas en la nube (Google Drive, Dropbox, S3) o descárgalas a tu ordenador. No las guardes en el mismo servidor donde está el sitio.
4.5. Monitorea tu sitio regularmente
- Google Search Console: Revísalo periódicamente para ver si Google detecta algún problema de seguridad.
- Plugins de seguridad: Mantén activo un plugin de seguridad (Wordfence, Sucuri, MalCare) y ejecuta escaneos semanales.
- Revisa los logs de acceso: Mira de vez en cuando los registros de tu cPanel para detectar actividad sospechosa.
PREGUNTAS FRECUENTES (FAQ)
¿Cuánto tiempo se tarda en limpiar un sitio web hackeado?
Depende de la gravedad. Una limpieza básica con plugins puede tomar de 30 minutos a 2 horas. Una limpieza manual profunda puede llevar de 4 a 8 horas o más. Si tienes que restaurar desde una copia de seguridad, puede ser más rápido.
¿Es seguro restaurar una copia de seguridad de hace un mes?
Sí, pero asegúrate de que esa copia de seguridad sea anterior al ataque. Si haces una copia de seguridad después del ataque, restaurarás el malware. Lo ideal es
