Cómo escanear y eliminar malware en WordPress desde cPanel (guía completa)
¿Por qué tu WordPress puede estar infectado y qué hacer al respecto?
Si has llegado hasta aquí, probablemente has notado algo raro en tu sitio web: redirecciones extrañas, anuncios emergentes, lentitud inesperada, o quizás Google te ha marcado como sitio peligroso. Respira hondo. No estás solo y, sobre todo, tiene solución.
Detectar y eliminar malware WordPress puede parecer una tarea de expertos, pero con las herramientas adecuadas y una guía paso a paso, puedes hacerlo tú mismo desde tu panel de control. En este artículo te voy a enseñar exactamente cómo hacerlo usando cPanel, sin necesidad de ser un gurú de la programación.
La seguridad de tu web es como la de tu casa: no esperas a que entren a robarte para poner una alarma. Sin embargo, si ya te han robado, lo primero es asegurar la puerta y limpiar el desorden. Vamos a hacer precisamente eso.
Primeros pasos: Antes de tocar nada, haz una copia de seguridad
Esta regla es sagrada y no negociable. Antes de ejecutar cualquier scanner o borrar archivos sospechosos, necesitas una copia de seguridad completa de tu sitio. ¿Por qué? Porque si algo sale mal durante la limpieza, podrás restaurar todo a como estaba (aunque estuviera infectado).
Cómo hacer una copia de seguridad completa en cPanel
- Accede a tu cPanel. Normalmente es algo como
tudominio.com/cpanelotudominio.com:2083. - Busca la sección "Archivos" y haz clic en "Copias de seguridad" o "Backup".
- Haz clic en "Backup completo" o "Download a Full Account Backup".
- Elige la opción de "Home Directory" y descarga el archivo a tu ordenador. Esto incluye todos tus archivos y bases de datos.
[WARNING] No omitas este paso. Es tu red de seguridad. Un sitio sin copia de seguridad es un accidente esperando a ocurrir.
Identificar la infección: ¿Cómo saber si mi WordPress tiene malware?
A veces los síntomas son evidentes, pero otras veces el malware se esconde muy bien. Antes de ejecutar el scanner malware cPanel, revisa estos signos comunes:
- Redirecciones a sitios de spam o casinos que no reconoces.
- Anuncios emergentes que aparecen incluso cuando navegas en tu propio sitio.
- Avisos de Google Safe Browsing al intentar visitar tu web.
- El sitio va muy lento sin razón aparente.
- Usuarios nuevos y desconocidos en tu panel de administración de WordPress.
- Archivos nuevos en tu servidor que no recuerdas haber subido.
Si has notado al menos uno de estos síntomas, es hora de pasar a la acción.
Método 1: Usar el Administrador de Archivos de cPanel para buscar archivos maliciosos
Este método es manual, pero muy efectivo para localizar archivos PHP infectados, que son los que los hackers suelen usar para inyectar código malicioso.
Pasos para explorar tus archivos
- Ve a cPanel y busca la sección "Archivos" y haz clic en "Administrador de Archivos".
- Accede a
public_html(ohtdocsen algunos servidores). Esta es la raíz de tu sitio web. - Haz clic en "Configuración" (arriba a la derecha) y activa la opción "Mostrar archivos ocultos (dotfiles)". Pulsa Guardar. Esto es crucial, ya que el malware a menudo se esconde en archivos con nombres como
.htaccess,.phpo en carpetas ocultas. - Ordena los archivos por "Tipo" o por "Fecha de modificación". Los archivos que se modificaron justo antes de que empezaras a notar los problemas son sospechosos principales.
- Busca archivos con nombres raros como
wp-admin.php,0x.php,shell.php,c99.php,r57.phpo cualquier combinación de letras y números sin sentido. Estos son a menudo backdoors (puertas traseras) que los atacantes dejan para volver a entrar.
[TIP] Si ves un archivo PHP en la raíz de
public_htmlque no esindex.php,wp-config.phpowp-blog-header.php, es altamente sospechoso. Investígalo antes de borrarlo.
¿Qué hago con los archivos sospechosos?
No los borres inmediatamente. Primero, haz clic derecho sobre el archivo y selecciona "Editar". Busca código que no parezca de WordPress, como funciones eval(), base64_decode(), gzinflate() o str_rot13(). Estas funciones se usan a menudo para ocultar código malicioso.
Si encuentras ese tipo de código, puedes renombrar el archivo (por ejemplo, de wp-load.php a wp-load.php.bak) para desactivarlo temporalmente. Si tu sitio sigue funcionando bien, es casi seguro que era malware y puedes proceder a eliminarlo.
Método 2: Escanear con herramientas integradas de cPanel (Scanner de Virus)
Muchos paneles de cPanel incluyen una herramienta de escaneo de virus integrada, a menudo llamada "Scanner de Virus" o "ClamAV".
Cómo usar el scanner de malware de cPanel
- En tu cPanel, busca la sección "Seguridad" y haz clic en "Scanner de Virus" o "Virus Scanner".
- Selecciona la opción de "Escaneo completo" (o "Full Scan") si está disponible.
- Elige el directorio a escanear. Selecciona
public_htmlpara que empiece a trabajar. - Haz clic en "Escanear ahora" y espera. Dependiendo del tamaño de tu sitio, puede tardar desde unos minutos hasta un par de horas.
- Cuando termine, te mostrará una lista de archivos infectados. Revísalos uno a uno. No todos los resultados son malware real; a veces hay falsos positivos.
[INFO] Si tu cPanel no tiene esta herramienta, no te preocupes. Puedes usar el método manual o pasar a la siguiente sección, que es la más efectiva de todas.
Método 3: Instalar un plugin de seguridad en WordPress (la solución más fácil)
Esta es, sin duda, la forma más amigable para un usuario sin experiencia técnica. Un buen plugin de seguridad hará el trabajo pesado por ti. Vamos a usar uno de los más populares y gratuitos: Wordfence.
Pasos para instalar y ejecutar un escaneo con Wordfence
- Accede a tu wp-admin (ej:
tudominio.com/wp-admin) e inicia sesión. - Ve a "Plugins" > "Añadir nuevo".
- En el buscador, escribe "Wordfence Security".
- Haz clic en "Instalar ahora" y luego en "Activar".
- Cuando se active, verás un asistente de configuración. Puedes saltarte los pasos avanzados y hacer clic en "Continuar" hasta llegar al panel principal.
- Ve a la pestaña "Escaneo" (o "Scan") en el menú lateral.
- Haz clic en el botón grande "Iniciar nuevo escaneo" (o "Start New Scan").
- Espera a que termine. Wordfence analizará todos los archivos de tu sitio, los comparará con la base de datos de WordPress.org y buscará código malicioso.
¿Qué hago con los resultados del escaneo?
Wordfence clasificará los problemas como "Críticos", "Altos", "Medios" o "Bajos".
- Para los archivos modificados (que no sean el core de WordPress), puedes ver el diff (diferencias) para ver qué cambió.
- Si un archivo es claramente malware, puedes hacer clic en "Reparar" o "Eliminar".
- Si el archivo es del core de WordPress y está modificado, puedes hacer clic en "Restaurar" para que Wordfence lo descargue de nuevo desde el repositorio oficial.
[WARNING] Si Wordfence encuentra un archivo llamado
mu-pluginso algo enwp-content/uploadsque parezca un.php, es casi seguro que es malware. WordPress no ejecuta PHP desde la carpeta de uploads de forma legítima.
Limpiar la base de datos: El malware también se esconde ahí
Muchos ataques inyectan código malicioso directamente en tu base de datos de WordPress. Aquí es donde las cosas se ponen un poco más técnicas, pero sigue siendo manejable.
Cómo usar phpMyAdmin para limpiar la base de datos
- Vuelve a tu cPanel y busca la sección "Bases de datos" y haz clic en "phpMyAdmin".
- Selecciona tu base de datos de WordPress (normalmente empieza con tu usuario de cPanel seguido de un nombre).
- En la parte superior, haz clic en la pestaña "Buscar".
- En el campo "Buscar texto", escribe "base64_decode" o "eval(". En "Buscar en tablas", elige "Seleccionar todo".
- Haz clic en "Buscar". Esto buscará en todas tus tablas el código malicioso típico.
- Si aparecen resultados, verás en qué tabla y campo está el código. Normalmente estará en la tabla
wp_optionso en entradas dewp_posts.
[INFO] Editar la base de datos es delicado. Si no te sientes seguro, una alternativa más sencilla es usar el plugin "WP-Optimize" o "Advanced Database Cleaner" para limpiar revisiones y opciones basura, pero para eliminar malware inyectado, lo mejor es usar la búsqueda de phpMyAdmin.
Si encuentras el código malicioso, puedes editar el registro y eliminar las líneas de código extrañas, dejando solo el contenido legítimo. Recuerda que una entrada de blog puede tener código PHP malicioso añadido al principio o al final.
Revisar los archivos .htaccess y wp-config.php
Estos dos archivos son los más atacados. Un simple error aquí puede romper tu sitio o redirigir a tus visitantes a sitios maliciosos.
Cómo revisar el .htaccess
- En el Administrador de Archivos, muestra los archivos ocultos (como hicimos antes).
- Busca el archivo
.htaccessenpublic_html. - Haz clic derecho y selecciona "Editar".
- Un
.htaccessde WordPress legítimo debería verse más o menos así:
# 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
Si ves líneas extrañas como redirecciones a dominios que no reconoces o reglas de RewriteRule sospechosas, es malware. Puedes borrar todo el contenido y pegar el código legítimo de arriba.
Cómo revisar el wp-config.php
Este archivo contiene las claves de acceso a tu base de datos. Si el malware lo ha modificado, puede estar añadiendo código al principio o al final.
- En el Administrador de Archivos, ve a
public_htmly buscawp-config.php. - Ábrelo. Debe empezar con
<?phpy no debe haber espacios ni caracteres antes de esa etiqueta. - Al final del archivo, justo después de la línea
require_once ABSPATH . 'wp-settings.php';, no debería haber nada más. Si hay código extra comoeval()o funciones extrañas, es malware. Bórralo y guarda el archivo.
[WARNING] Si el
wp-config.phpestá corrupto o ha sido modificado de forma extraña, la forma más segura es reemplazarlo con una copia de seguridad limpia. Si no tienes una, puedes descargar WordPress desde wordpress.org, extraer elwp-config-sample.phpy configurarlo con tus datos de la base de datos.
Cambiar todas tus contraseñas (sí, todas)
Una vez que has limpiado los archivos y la base de datos, es imperativo cambiar las contraseñas. El atacante pudo haber dejado una puerta trasera con tus credenciales.
Contraseñas que debes cambiar sí o sí:
- Contraseña de administrador de WordPress (ve a Usuarios > Tu perfil > Generar contraseña).
- Contraseña de cPanel (esto se hace desde tu proveedor de hosting).
- Contraseña de la base de datos MySQL (en cPanel > Bases de datos MySQL).
- Contraseñas de FTP (si usas FTP, cámbialas desde el administrador de archivos del hosting).
[TIP] Usa un gestor de contraseñas como Bitwarden o 1Password para generar y guardar contraseñas fuertes y únicas para cada servicio.
Prevenir futuros hackeos: Tu plan de seguridad a largo plazo
Ahora que ya sabes cómo limpiar web infectada, vamos a asegurarnos de que no vuelva a pasar. La prevención es mucho más barata que la limpieza.
Medidas de seguridad esenciales
- Mantén WordPress, temas y plugins actualizados. Las actualizaciones corrigen vulnerabilidades conocidas. Activa las actualizaciones automáticas para versiones menores.
- Elimina plugins y temas que no uses. Cada plugin inactivo es una puerta de entrada potencial.
- Cambia tu prefijo de base de datos de
wp_a algo único (solo si estás empezando; si ya tienes un sitio funcionando, esto requiere un plugin especializado). - Instala un firewall como Cloudflare (tiene plan gratuito) o el firewall de Wordfence. Esto bloquea el tráfico malicioso antes de que llegue a tu servidor.
- Limita los intentos de inicio de sesión. Usa un plugin como "Limit Login Attempts Reloaded" para evitar ataques de fuerza bruta.
- Activa la autenticación de dos factores (2FA) para tu cuenta de administrador de WordPress. Wordfence incluye esta función.
- Haz copias de seguridad semanales automáticas. Muchos hostings las ofrecen de forma gratuita. Si no es tu caso, usa un plugin como UpdraftPlus para programarlas.
[INFO] Si tu sitio está alojado en un panel alternativo como Syspanel (el acceso se realiza a través del puerto 2106), los pasos son prácticamente los mismos, ya que la estructura de archivos es similar. Busca las secciones de "Administrador de archivos" y "phpMyAdmin" dentro de ese panel.
Preguntas frecuentes (FAQ)
¿Cuánto tiempo tarda en limpiar un WordPress infectado?
Depende del nivel de infección. Un escaneo con Wordfence puede tardar entre 10 y 30 minutos. La limpieza manual de archivos puede llevar entre 1 y 3 horas si eres meticuloso.
¿Puedo eliminar todo y reinstalar WordPress?
Sí, pero es una solución drástica. Si lo haces, asegúrate de no restaurar archivos infectados desde una copia de seguridad vieja. La reinstalación limpia es la opción más segura si la infección es muy severa y no puedes localizar todos los archivos maliciosos.
¿Qué hago si Google sigue marcando mi sitio como peligroso después de limpiarlo?
Después de limpiar, solicita una revisión en Google Search Console. Ve a "Problemas de seguridad" y haz clic en "Solicitar revisión". Google tardará unos días en revisar tu sitio y, si está limpio, quitará la advertencia.
¿Debo contratar a un profesional?
Si después de seguir toda esta guía te sientes abrumado o el malware reaparece una y otra vez, es hora de considerar un servicio profesional de limpieza de malware. Muchas empresas de hosting lo ofrecen como servicio adicional, y vale la pena la inversión para proteger tu negocio.
Conclusión: Tú puedes con esto
Eliminar malware WordPress desde cPanel es un proceso que requiere paciencia y método, pero está totalmente a tu alcance. Hemos cubierto desde la copia de seguridad inicial, pasando por el scanner malware cPanel, hasta la limpieza manual de archivos y base de datos
