🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo eliminar malware de un sitio WordPress en cPanel

Actualizado el 9 de septiembre de 2025

¿Tu sitio WordPress en cPanel ha sido hackeado? Es una sensación horrible, pero no entres en pánico. Miles de sitios sufren ataques de malware cada día. Lo bueno es que, con un poco de paciencia y las herramientas adecuadas, puedes limpiarlo tú mismo. Este artículo te guiará paso a paso, como si fueras un SysAdmin experimentado, para eliminar el malware, restaurar la seguridad de tu web y evitar que vuelva a ocurrir.

Vamos a usar únicamente las herramientas que vienen con tu panel de control (cPanel) y plugins de seguridad gratuitos. No necesitas ser un experto en Linux, solo seguir las instrucciones al pie de la letra. Empecemos.


Paso 1: Diagnóstico Rápido (¿Estás realmente infectado?)

Antes de lanzarte a borrar archivos al azar, confirma que el problema es malware. Los síntomas más comunes son:

  • Redirecciones extrañas: Al entrar a tu web, te lleva a sitios de farmacias, casinos o páginas de spam.
  • Anuncios emergentes (pop-ups): Aparecen ventanas que no has programado.
  • Ralentización extrema: Tu web carga muy lento o da error 500.
  • Contenido inyectado: Ves texto o enlaces sospechosos en tus páginas (por ejemplo, "viagra", "cáñamo", enlaces a sitios rusos).
  • Alertas de Google: Google Search Console te notifica que tu sitio está marcado como "peligroso" o "comprometido".
  • Archivos nuevos o modificados: Ves archivos con nombres raros como system.php, wp-cache.php o archivos con extensiones .zip o .exe en tu carpeta de WordPress.

[WARNING] No entres a tu web desde tu navegador habitual si ves redirecciones. El malware podría estar rastreando tus cookies. Usa una ventana de incógnito o un navegador diferente (como Firefox si usas Chrome).

Herramientas de diagnóstico online (gratuitas)

Usa estas herramientas para tener una segunda opinión:

  • Sucuri SiteCheck: Solo pon tu dominio. Te dirá si hay malware, redirecciones o listas negras.
  • Quttera: Escanea en busca de archivos maliciosos y enlaces sospechosos.
  • VirusTotal: Sube la URL de tu web y la analiza con más de 60 antivirus.

Si alguna de estas herramientas detecta algo, es hora de actuar.


Paso 2: Aislar el Sitio y Hacer una Copia de Seguridad (IMPORTANTE)

Antes de tocar nada, debes aislar el sitio para que el malware no se propague a otros sitios en tu mismo hosting y para que Google no siga penalizándote.

2.1. Poner el sitio en modo mantenimiento

Esto evita que los visitantes vean el caos y que el malware siga actuando.

  1. Entra a tu cPanel.

  2. Busca la sección "Archivos" y haz clic en "Administrador de archivos".

  3. Navega hasta la carpeta raíz de tu WordPress (normalmente public_html o el nombre de tu dominio).

  4. Busca el archivo .htaccess. Si no lo ves, activa la opción "Mostrar archivos ocultos" (punto de ajustes).

  5. Descarga una copia de este archivo a tu computadora (por si acaso).

  6. Edita el archivo .htaccess (clic derecho -> Editar).

  7. Borra todo el contenido del archivo y pégalo este código para mostrar una página de mantenimiento básica:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000
    RewriteCond %{REQUEST_URI} !^/maintenance\.html$
    RewriteRule ^(.*)$ /maintenance.html [R=503,L]
    

    Importante: Reemplaza 123\.456\.789\.000 con tu dirección IP real (puedes buscarla en Google "cuál es mi IP"). Esto te permitirá acceder a tu web para trabajar mientras los demás ven la página de mantenimiento.

  8. Crea un archivo vacío llamado maintenance.html en la misma carpeta raíz. Puedes ponerle un texto simple como "Estamos en mantenimiento, volvemos pronto".

2.2. Hacer una copia de seguridad COMPLETA (archivos + base de datos)

Este es tu salvavidas. Si algo sale mal, restauras la copia. No la guardes en el mismo servidor, descárgala a tu PC o a un servicio en la nube.

  1. En tu cPanel, busca la sección "Archivos" -> "Copias de seguridad".
  2. Descarga una copia de seguridad completa del sitio (normalmente es un botón que dice "Descargar una copia de seguridad completa del sitio" o "Backup"). Esto te dará un archivo .tar.gz con TODOS los archivos.
  3. Descarga una copia de seguridad de la base de datos. Busca la sección "Bases de datos" -> "phpMyAdmin":
    • Selecciona tu base de datos de WordPress (la que usas en tu wp-config.php).
    • Haz clic en la pestaña "Exportar".
    • Elige el método "Rápido" y formato "SQL".
    • Haz clic en "Continuar" y descarga el archivo .sql a tu PC.

[TIP] Si tu hosting tiene JetBackup (lo verás en cPanel), úsalo. Es más rápido y fiable. Crea un backup y luego descárgalo.


Paso 3: Escaneo y Limpieza con Plugin de Seguridad (Fácil)

La forma más segura para un usuario no experto es usar un plugin de seguridad. El mejor y gratuito es Wordfence Security.

3.1. Instalar Wordfence

  1. Desde el Escritorio de WordPress (si aún puedes acceder), ve a Plugins -> Añadir nuevo.
  2. Busca "Wordfence Security" e instálalo y actívalo.
  3. Si no puedes acceder al escritorio (error 500 o redirección), tendrás que hacerlo manualmente:
    • Descarga el plugin desde wordfence.com.
    • En cPanel -> Administrador de archivos, sube el archivo .zip a la carpeta wp-content/plugins.
    • Descomprímelo allí.
    • Actívalo desde el escritorio (si puedes) o desde cPanel -> phpMyAdmin (no recomendado para novatos). Mejor intenta acceder al escritorio después de subir los archivos.

3.2. Escaneo Completo

  1. En el menú de WordPress, ve a Wordfence -> Scan.
  2. Haz clic en "Start New Scan".
  3. Wordfence escaneará todos los archivos de tu WordPress, la base de datos y las opciones. Esto puede tardar varios minutos.
  4. Cuando termine, verás una lista de resultados. Los más comunes son:
    • Archivos modificados: Archivos legítimos de WordPress que han sido alterados con código malicioso.
    • Archivos sospechosos: Archivos que no pertenecen a WordPress (normalmente en wp-content/uploads/ o wp-content/themes/).
    • Malware en la base de datos: Código inyectado en las entradas o páginas.

3.3. Limpieza con Wordfence

  • Para archivos modificados: Wordfence te ofrece la opción de "Reparar archivo". Esto descargará la versión original del repositorio de WordPress y reemplazará el archivo dañado. Usa esta opción siempre que sea posible.
  • Para archivos sospechosos: Si el archivo no es de WordPress (por ejemplo, un .php en uploads), lo más seguro es eliminarlo. Wordfence te permite hacer clic en "Eliminar" o "Mover a cuarentena". Mueve a cuarentena primero para poder recuperarlo si es un falso positivo.
  • Para malware en la base de datos: Wordfence te mostrará las entradas infectadas. Puedes "Reparar" la entrada, lo que eliminará el código malicioso.

[WARNING] No elimines archivos del núcleo de WordPress (carpetas wp-admin, wp-includes) a menos que Wordfence te lo indique explícitamente. Si borras algo importante, tu web dejará de funcionar.


Paso 4: Limpieza Manual (Para Casos Persistente o si Wordfence no lo encuentra)

A veces, el malware es muy astuto y se esconde en lugares inesperados. Si después del escaneo de Wordfence tu web sigue infectada, toca hacer una limpieza manual.

4.1. Revisar el archivo wp-config.php

  1. En cPanel -> Administrador de archivos, abre el archivo wp-config.php (en la raíz).
  2. Busca cualquier línea que no sea la configuración estándar de WordPress. Especialmente, busca:
    • eval(base64_decode(...)) o gzinflate(base64_decode(...)) — Esto es código ejecutado maliciosamente.
    • Cualquier línea que comience con define('WP_... que no sea la de las claves de seguridad.
    • Código PHP que no esté dentro de las etiquetas <?php ... ?> correctas.
  3. Si encuentras algo extraño, copia el archivo a tu PC y luego elimina las líneas maliciosas. Guarda el archivo.

4.2. Revisar el archivo .htaccess (otra vez)

El .htaccess es un objetivo común. Vuelve a abrirlo (después de la copia que hicimos) y busca:

  • Redirecciones: Líneas como RewriteRule ^(.*)$ http://sitio-malicioso.com/$1 [R=301,L].
  • Código de eval: Lo mismo que en wp-config.php.
  • Reglas de bloqueo extrañas: Líneas que redirigen a tu web a otra parte.

Limpieza: Si ves algo sospechoso, elimínalo. Si no estás seguro, reemplaza todo el contenido por el .htaccess por defecto de WordPress:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

4.3. Revisar la carpeta wp-content/uploads/

Los hackers suelen subir archivos maliciosos aquí.

  1. En cPanel -> Administrador de archivos, navega a public_html/wp-content/uploads/.
  2. Busca archivos .php en esta carpeta. NO debería haber ninguno. Si los hay, son sospechosos. Elimínalos.
  3. Busca archivos con nombres extraños como system.php, wp-cache.php, shell.php, admin-ajax.php (en esta carpeta no debería estar).
  4. Revisa las subcarpetas de años y meses (por ejemplo, 2023/01/). Busca lo mismo.

4.4. Revisar los temas y plugins

Los temas y plugins desactualizados son la puerta de entrada favorita del malware.

  1. En cPanel -> Administrador de archivos, ve a wp-content/themes/.
  2. Revisa cada tema. Busca archivos .php que no reconozcas, especialmente functions.php (a menudo se inyecta código aquí).
  3. Haz lo mismo en wp-content/plugins/. Si ves un plugin que no instalaste, elimina toda su carpeta.
  4. Actualiza todos los temas y plugins desde el escritorio de WordPress. Si no puedes, descarga las últimas versiones desde wordpress.org y súbelas manualmente (reemplazando las carpetas).

Paso 5: Limpieza de la Base de Datos (MySQL)

El malware también puede esconderse en la base de datos, inyectando código en las entradas, páginas, opciones o usuarios.

5.1. Usar phpMyAdmin

  1. En cPanel, busca "Bases de datos" -> "phpMyAdmin".
  2. Selecciona tu base de datos de WordPress.
  3. Haz clic en la pestaña "Buscar".
  4. Busca términos comunes como:
    • <script> (para inyecciones de JavaScript).
    • eval( (código PHP ejecutado).
    • base64_decode(.
    • iframe (para iframes maliciosos).
    • El nombre de tu propio dominio (para ver si hay enlaces extraños).
  5. Revisa las tablas wp_posts, wp_options, wp_users y wp_comments.
    • En wp_posts: Busca entradas o páginas con contenido extraño (anuncios, enlaces). Puedes editar o eliminar esas entradas.
    • En wp_options: Busca opciones como siteurl, home, template, stylesheet. Asegúrate de que apuntan a tu dominio correcto. También busca opciones con nombres sospechosos como malware_option.
    • En wp_users: Busca usuarios con roles de Administrador que no reconozcas. Si hay, elimínalos (pero no te borres a ti mismo).
    • En wp_comments: Busca comentarios con enlaces maliciosos. Puedes eliminarlos en masa.

5.2. Usar un plugin para limpiar la base de datos

Si no te sientes cómodo con phpMyAdmin, instala el plugin "Better Search Replace" (gratuito).

  1. Ve a Plugins -> Añadir nuevo y busca "Better Search Replace".
  2. Actívalo.
  3. Ve a Herramientas -> Better Search Replace.
  4. Busca el código malicioso (por ejemplo, <script>alert('malware')</script>) y reemplázalo por nada (déjalo vacío).
  5. Selecciona todas las tablas y ejecuta el reemplazo.

[WARNING] Siempre haz una copia de seguridad de la base de datos antes de hacer reemplazos masivos. Un error puede romper tu web.


Paso 6: Endurecer la Seguridad (SysAdmin Mode)

Una vez limpio, es hora de poner barreras para que no vuelva a pasar. Esto es trabajo de SysAdmin.

6.1. Actualizar TODO

  • WordPress: A la última versión.
  • Todos los temas y plugins: A la última versión.
  • PHP: En cPanel -> Seleccionar versión de PHP, elige la versión más reciente estable (PHP 8.0 o superior). Las versiones antiguas tienen vulnerabilidades.

6.2. Cambiar contraseñas

  • Contraseña de cPanel/FTP: Fuerte, larga, con símbolos.
  • Contraseña de la base de datos: En cPanel -> Bases de datos MySQL, cambia la contraseña del usuario de la BD.
  • Contraseña de administrador de WordPress: Cámbiala desde el escritorio (Usuarios -> Tu perfil).

6.3. Instalar un Firewall (WAF)

Wordfence ya incluye un firewall, pero puedes reforzarlo:

  • Wordfence -> Firewall: Actívalo en modo "Extended Protection" (necesitas tu API key gratuita de Wordfence).
  • Cloudflare (gratuito): Es un CDN que también actúa como firewall. Oculta tu IP real y bloquea tráfico malicioso. Configúralo desde cPanel (suele tener un integrador).

6.4. Deshabilitar la edición de archivos desde el escritorio

Esto evita que un hacker pueda modificar archivos si accede a tu panel de administración.

Añade esta línea a tu archivo wp-config.php (justo antes de la línea /* That's all, stop editing! */):

define('DISALLOW_FILE_EDIT', true);

6.5. Escaneo periódico

Configura Wordfence para que escanee automáticamente tu web cada día. Ve a

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel