Cómo eliminar malware de WordPress desde cPanel (limpieza manual)
¿Tu WordPress ha sido hackeado? Respira hondo. No eres el primero al que le pasa y, lo más importante, tiene solución. Si tienes acceso a tu panel de control de hosting (cPanel), puedes limpiar el malware manualmente sin necesidad de pagar a un experto. En esta guía extensa y paso a paso, te voy a enseñar exactamente cómo hacerlo, usando únicamente las herramientas que ya tienes en tu cPanel. Vamos a ensuciarnos las manos (virtualmente) y a expulsar a los intrusos de tu sitio.
Antes de empezar, una aclaración importante: este proceso requiere paciencia y un poco de método. No es magia, es cirugía. Pero si sigues cada paso al pie de la letra, podrás limpiar malware WordPress cPanel de forma efectiva y devolver la salud a tu web.
Preparación: El Kit de Emergencia Antes de la Limpieza
No entres a cPanel a lo loco borrando archivos. Eso sería como entrar a una habitación oscura con una espada. Primero, necesitas preparar el terreno.
1. Cambia Todas tus Contraseñas (YA)
El hacker tiene una puerta de entrada. Si no la cierras, volverá a entrar al día siguiente de que la limpies. Este es el paso más crítico y el que más gente se salta.
Ve a cPanel y cambia:
- La contraseña principal de cPanel.
- La contraseña de la base de datos de tu WordPress (la encontrarás en la sección "Bases de datos MySQL").
- La contraseña del usuario administrador de tu WordPress. Si no puedes entrar a tu wp-admin, tendrás que hacerlo desde la base de datos (te explico cómo más abajo).
[WARNING] No uses una contraseña simple. Usa un generador de contraseñas y guarda el resultado en un gestor de contraseñas. Un atacante con acceso a tu servidor puede estar monitorizando tus teclas (keylogger) o tus cookies de sesión.
2. Haz una Copia de Seguridad Completa (Sí o Sí)
Este es tu salvavidas. Si algo sale mal durante la limpieza, podrás restaurar tu sitio al estado actual (hackeado, pero restaurable). Sin copia de seguridad, cualquier error puede ser fatal.
En tu cPanel, busca la sección "Archivos" y haz clic en "Administrador de copias de seguridad" o "Backup". Crea una copia completa que incluya:
- Directorio principal (todo el contenido de
public_html). - Bases de datos MySQL (todas las que uses para WordPress).
Descarga estos archivos a tu ordenador. No te fíes de que el backup se quede en el servidor, porque el malware podría borrarlo.
3. Identifica el Método de Ataque (El Origen del Problema)
Antes de borrar, debes saber qué estás buscando. El malware en WordPress suele colarse por:
- Temas o plugins desactualizados: La causa más común. Los hackers explotan vulnerabilidades conocidas.
- Archivos de temas o plugins modificados: A veces el código malicioso se inyecta en archivos legítimos como
functions.phpoheader.php. - Usuarios administradores ocultos: El atacante crea un usuario con rol de administrador para volver a entrar.
- Archivos inyectados en la raíz: Suelen ser archivos
.phpcon nombres raros comowp-login.php.bak,0day.php,c99.phpo similares.
La Limpieza Manual Paso a Paso desde cPanel
Ahora sí, vamos a la acción. Abre tu cPanel e inicia sesión.
Paso 1: Accede al Administrador de Archivos
En cPanel, busca la sección "Archivos" y haz clic en "Administrador de archivos" (File Manager). Se abrirá una nueva pestaña o ventana. Navega hasta la carpeta donde está instalado tu WordPress. Normalmente es public_html, pero puede ser una subcarpeta si tienes el sitio en un subdirectorio.
Paso 2: La Búsqueda del Tesoro (Encontrar los Archivos Maliciosos)
Esta es la parte que requiere más ojo. No te abrumes, vamos a ir por partes.
2.1. Revisa la Raíz de tu WordPress (public_html)
Mira los archivos que hay en la carpeta principal. Deberías ver archivos normales como wp-admin, wp-includes, wp-content, index.php, wp-config.php, etc.
Presta atención a:
- Archivos con doble extensión:
archivo.php.jpg,imagen.png.php. Son una señal de alarma. - Archivos con nombres sospechosos:
hack.php,shell.php,upload.php,c99.php,r57.php,0x.php, o cualquier nombre aleatorio comoa1b2c3.php. - Archivos
.htaccess: Ábrelo con el editor de texto del Administrador de archivos. Si ves código raro que no entiendes, como líneas conRewriteRuleapuntando a dominios extraños, es que está infectado. Un.htaccesslimpio de WordPress suele ser muy corto.
[WARNING] No borres archivos del núcleo de WordPress (como wp-login.php o wp-settings.php) si no estás 100% seguro de que son maliciosos. Podrías romper tu sitio. La regla de oro es: si no sabes qué es, no lo borres, pero búscalo en Google primero.
2.2. Explora la Carpeta wp-content
Esta es la zona de juegos favorita de los hackers. Entra en wp-content.
- Carpeta
themes: Revisa cada tema instalado. Un truco es que el malware se esconde en los archivos de los temas. Abre elfunctions.phpde tu tema activo y busca código que no reconozcas. Si ves funciones extrañas comoeval(base64_decode(...))o enlaces a sitios web externos, está infectado. - Carpeta
plugins: Igual que los temas. Revisa los archivos principales de cada plugin activo. Si encuentras un plugin que no instalaste tú, bórralo. - Carpeta
uploads: Aquí se suben las imágenes. El malware puede esconderse en archivos PHP disfrazados de imágenes. Usa la búsqueda del Administrador de archivos (botón "Buscar") y busca archivos con extensión.phpdentro deuploads. Si hay alguno, es 99% malicioso. Bórralo.
[TIP] Usa la función de búsqueda del Administrador de archivos. Puedes buscar por extensión. Escribe *.php y te listará todos los archivos PHP. Es más fácil revisar la lista que hacerlo carpeta por carpeta.
2.3. Revisa los Usuarios Administradores Ocultos
Una vez que hayas limpiado los archivos, debes asegurarte de que no hay un usuario falso con privilegios de administrador.
- Ve a tu cPanel y entra en "Bases de datos MySQL".
- Encuentra la base de datos de tu WordPress y haz clic en "phpMyAdmin".
- En la lista de tablas de la izquierda, busca una que se llame
wp_users(si cambiaste el prefijo de las tablas, se llamará diferente, comomi_prefijo_users). - Haz clic en "Examinar" (Browse) en esa tabla.
- Verás la lista de usuarios. Busca cualquier nombre de usuario que no reconozcas. Si encuentras uno, no lo borres solo. Primero, haz clic en "Editar" (Edit) y cambia el
user_logina algo que no conozca el hacker, y ponle unuser_passnuevo (selecciona MD5 en el menú desplegable de la función). Después, bórralo.
[INFO] El prefijo de las tablas de WordPress está definido en tu archivo wp-config.php. Si usas el prefijo por defecto wp_, es más fácil de hackear. Considera cambiarlo en el futuro.
Paso 3: La Limpieza Profunda (Archivos Infectados)
Has encontrado archivos sospechosos. Ahora toca decidir: ¿borrarlos o limpiarlos?
3.1. Borrar Archivos Maliciosos
Si el archivo es claramente un malware (un shell PHP, un archivo con doble extensión, un plugin desconocido), bórralo sin piedad. En el Administrador de archivos, selecciona el archivo, haz clic derecho y elige "Eliminar".
3.2. Limpiar Archivos Legítimos Infectados
Si el archivo es legítimo (por ejemplo, el functions.php de tu tema) pero tiene código malicioso inyectado, debes editarlo.
- Haz clic derecho sobre el archivo y elige "Editar" (o "Code Editor").
- Busca el código malicioso. Normalmente es una línea larga y encriptada que empieza con
eval(base64_decode(...))ogzinflate(base64_decode(...)). - Elimina solo esa línea y guarda el archivo.
[WARNING] Si no te sientes cómodo editando código, mejor borra el archivo y reinstala el tema o plugin desde cero. Es más limpio y seguro. Para ello, borra la carpeta del tema o plugin infectado y luego instálalo de nuevo desde el repositorio de WordPress.
Paso 4: Limpiar la Base de Datos (Inyecciones SQL)
El malware no solo se esconde en archivos, también puede estar en tu base de datos. Busca en las tablas de wp_options y wp_posts contenido sospechoso.
- En phpMyAdmin, haz clic en la tabla
wp_options. - Busca una opción llamada
siteurlyhome. Asegúrate de que apuntan a tu dominio correcto (conhttps://ywwwsi es el caso). Si apuntan a otro sitio, cámbialo. - Haz clic en la tabla
wp_posts. - Usa la búsqueda de phpMyAdmin (botón "Buscar") y busca términos como
<script>,eval(,iframe,base64_decode. Si encuentras resultados en elpost_contentopost_excerpt, es que tu contenido ha sido manipulado. Deberías limpiar esas entradas.
[TIP] Si tu base de datos es muy grande, la búsqueda puede tardar. Ten paciencia.
Paso 5: Reinstala el Núcleo de WordPress (La Red de Seguridad)
Para asegurarte de que no queda nada en los archivos del núcleo, la mejor opción es reinstalar WordPress. Esto no borra tu contenido, solo reemplaza los archivos del sistema.
- Ve a la sección "Administrador de archivos" y navega hasta
public_html. - NO borres la carpeta
wp-contentni el archivowp-config.php. - Borra las carpetas
wp-adminywp-includes, y todos los archivos.phpde la raíz (exceptowp-config.php). - Ve a
wordpress.org/downloady descarga la última versión de WordPress en tu ordenador. - Descomprime el archivo
.zip. - Sube el contenido de la carpeta
wordpress(las carpetaswp-admin,wp-includesy los archivos.php) a tupublic_htmlusando el Administrador de archivos o un cliente FTP como FileZilla. - Cuando te pregunte si quieres sobrescribir archivos, dile que sí.
[INFO] Este paso es como reinstalar Windows en tu PC. No toca tus documentos (uploads) ni tu configuración de usuario (base de datos).
Paso 6: Verifica la Integridad de los Archivos (Opcional pero Recomendado)
Una vez que has reinstalado el núcleo, es buena idea verificar que no hay más archivos corruptos. Puedes hacerlo comparando los checksums (hashes) de los archivos de WordPress.
- En tu cPanel, busca la herramienta "Verificador de integridad de archivos" o "File Integrity Checker" (depende de tu hosting, puede estar en "Seguridad" o "Administrador de archivos").
- Esta herramienta compara los archivos de tu instalación con los oficiales de WordPress y te reporta cuáles han sido modificados. Si hay alguno, sabrás dónde mirar.
Después de la Limpieza: Blindando tu WordPress
Has eliminado el malware. ¡Enhorabuena! Pero la guerra no ha terminado. Ahora debes asegurarte de que no vuelva a pasar. Es el momento de ponerle un buen candado a tu casa.
1. Actualiza Todo
- Entra en tu
wp-adminy 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.
2. Cambia tus Claves de Seguridad (Salts)
En tu archivo wp-config.php, hay unas constantes llamadas AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, etc. Estas "sales" son como la sal de una receta secreta. Si el hacker las conoce, puede forjar cookies de sesión.
- Ve a https://api.wordpress.org/secret-key/1.1/salt/ y copia las nuevas claves.
- Reemplaza las que están en tu
wp-config.php.
3. Instala un Plugin de Seguridad
No es una opción, es una necesidad. Plugins como Wordfence, Sucuri o iThemes Security te ofrecen:
- Firewall: Bloquean el tráfico malicioso antes de que llegue a tu sitio.
- Escaneo de malware: Revisan tus archivos en busca de código sospechoso.
- Protección de inicio de sesión: Limitan los intentos de acceso y bloquean IPs.
[TIP] No instales varios plugins de seguridad a la vez. Pueden entrar en conflicto. Elige uno bueno y configúralo bien.
4. Activa la Autenticación de Dos Factores (2FA)
Esto añade una capa extra de seguridad a tu inicio de sesión. Incluso si alguien roba tu contraseña, no podrá entrar sin el código de tu teléfono.
5. Limpia tu Ordenador
El malware puede estar en tu PC. Si el hacker entró a través de una contraseña robada, es posible que tengas un keylogger. Escanea tu ordenador con un buen antivirus.
Preguntas Frecuentes (FAQ) sobre la Limpieza de WordPress
¿Cuánto tiempo se tarda en limpiar un WordPress hackeado?
Depende del tamaño de tu sitio y de la gravedad de la infección. Para un sitio pequeño, puede llevar de 2 a 4 horas si eres meticuloso. Para un sitio grande, puede ser un trabajo de un día entero.
¿Qué pasa si no encuentro el malware?
Si has seguido todos los pasos y no encuentras nada, pero tu sitio sigue mostrando anuncios raros o redirige a otras páginas, puede ser un problema de tu red de distribución de contenido (CDN) o de tu servidor a nivel de sistema. En ese caso, contacta con tu proveedor de hosting y pídeles que revisen los logs del servidor.
¿Puedo usar un plugin para limpiar el malware?
Sí, puedes usar plugins como Wordfence o Sucuri para escanear y eliminar malware. Sin embargo, la limpieza manual que te he enseñado es más exhaustiva y te permite entender qué ha pasado. Te recomiendo hacer la limpieza manual primero y luego usar el plugin como herramienta de prevención.
¿Es necesario cambiar el prefijo de las tablas de la base de datos?
No es obligatorio, pero es una buena práctica de seguridad. Si tu prefijo es wp_, es el más conocido por los hackers. Cambiarlo a algo personalizado como miweb_ dificulta los ataques de inyección SQL.
¿Qué hago si no tengo acceso a cPanel?
Si tu plan de hosting no incluye cPanel, contacta con tu proveedor de soporte. Ellos podrán ayudarte a acceder a los archivos a través de FTP o a la herramienta de administración que utilicen. Recuerda que si tu hosting usa Syspanel (antes conocido como HestiaCP), el acceso se realiza a través del puerto 2106 (ej: https://tu-dominio.com:2106).
[WARNING] Si no tienes una copia de seguridad reciente y tu sitio es muy valioso, considera contratar un servicio profesional de limpieza de malware como Sucuri o Wordfence. Ell
