Eliminar malware de WordPress en DirectAdmin: guía paso a paso
¡Entendido! Aquí tienes el artículo completo, siguiendo todas las reglas de formato y estilo que me has indicado.
¿Tu sitio web en WordPress va lento, muestra errores extraños o redirige a páginas desconocidas? Es muy probable que haya sido infectado con malware. No entres en pánico: es un problema más común de lo que parece, y en esta guía te voy a enseñar, paso a paso y sin tecnicismos, cómo eliminar malware WordPress cuando tu hosting utiliza el panel DirectAdmin.
Trabajaremos con calma, como si estuviéramos limpiando una casa de arriba a abajo. No necesitas ser un experto en programación, solo seguir las instrucciones al pie de la letra. Al final, tendrás tu sitio seguro WordPress y funcionando de nuevo.
¿Cómo sé si mi WordPress está hackeado? (Primeros síntomas)
Antes de lanzarnos a la limpieza, es importante confirmar nuestras sospechas. A veces, el malware es muy silencioso y otras veces es imposible de ignorar. Estos son los signos más comunes de que tu sitio ha sido comprometido:
- Redirecciones extrañas: Al visitar tu web, los usuarios (o tú mismo) sois redirigidos a páginas de spam, casinos o alertas falsas de virus.
- Avisos de Google: Si buscas tu sitio en Google y aparece un aviso que dice “Este sitio puede estar comprometido” o “Sitio engañoso”, es una señal inequívoca.
- Rendimiento horrible: Tu web tarda muchísimo en cargar o directamente se cae, porque el malware está utilizando los recursos del servidor para sus propios fines (como enviar correos basura).
- Contenido invisible o inyectado: Ves enlaces de texto ocultos al final de tus páginas, o aparecen anuncios que tú no has puesto.
- Usuarios administradores desconocidos: Al entrar en tu panel de WordPress (wp-admin), ves un usuario llamado "admin" o similar que tú no creaste.
- Archivos modificados o nuevos: En tu carpeta de WordPress aparecen archivos con nombres extraños (como
c0re.php,wp-update.php, etc.) que no reconoces.
Si has detectado al menos uno de estos síntomas, sigue leyendo. Vamos a entrar en acción.
Preparación inicial: Lo que necesitas antes de empezar
Limpiar un sitio hackeado requiere método. No se trata de borrar archivos al azar. Antes de tocar nada, prepara tu "kit de emergencia":
1. Copia de seguridad completa (¡IMPORTANTE!)
Aunque parezca contradictorio, necesitas una copia de seguridad del sitio infectado. ¿Por qué? Porque si durante la limpieza cometemos un error (como borrar un archivo legítimo por accidente), podremos restaurar el sitio a su estado infectado y volver a intentarlo. Además, nos sirve para analizar los archivos maliciosos en un entorno seguro.
[WARNING] No hagas una copia de seguridad y la subas a otro hosting sin limpiarla. El malware podría propagarse. Guárdala en tu ordenador o en un almacenamiento en la nube privado.
Para hacer la copia en DirectAdmin, ve a la sección "Gestor de Archivos" o usa un cliente FTP (como FileZilla) para descargar toda la carpeta public_html a tu ordenador. También exporta una copia de tu base de datos desde "MySQL Management".
2. Credenciales de acceso
Asegúrate de tener a mano:
- El usuario y contraseña de tu cuenta de DirectAdmin.
- El usuario y contraseña de tu base de datos MySQL.
- El acceso a tu panel de WordPress (wp-admin). Si no puedes entrar, lo solucionaremos más adelante.
3. Herramientas de escaneo (opcional pero recomendado)
Existen plugins de seguridad que te ayudarán a identificar archivos maliciosos. Los más populares son:
- Wordfence
- Sucuri Scanner
- iThemes Security
No los instales todavía. Primero, vamos a hacer una limpieza manual y luego los usaremos para verificar que todo está en orden.
Paso 1: Identificar el punto de entrada (Diagnóstico)
El malware no aparece solo. Casi siempre entra por una vulnerabilidad. Las más comunes son:
- Temas o plugins desactualizados: Son la puerta de entrada favorita de los atacantes.
- Contraseñas débiles: Especialmente la del usuario
admino la de tu cuenta de hosting. - Nulled themes (temas pirateados): Descargar temas premium de sitios no oficiales es casi una garantía de infección.
Este paso es crucial porque, si no encontramos la puerta de entrada, limpiaremos el sitio y en una semana volverá a estar infectado. Es como matar las hormigas que ves en la cocina sin encontrar el hormiguero.
¿Cómo encontrar el punto de entrada?
- Revisa tus plugins y temas: Anota todos los que tienes instalados y comprueba si tienen actualizaciones pendientes. Los que no uses, se eliminarán más tarde.
- Busca archivos PHP sospechosos: En tu gestor de archivos de DirectAdmin, entra en
public_html/wp-content/plugins/ypublic_html/wp-content/themes/. Busca archivos que no pertenezcan a los plugins o temas originales. A menudo, el malware se esconde en archivos con nombres comowp-load.php,xmlrpc.php(aunque este es legítimo, a veces se modifica) o en carpetas con nombres aleatorios.
[INFO] Los archivos legítimos de un plugin o tema siempre están dentro de su carpeta correspondiente. Si ves un archivo PHP suelto en la raíz de public_html que no es index.php, wp-config.php, .htaccess o wp-settings.php, es muy sospechoso.
Paso 2: Poner el sitio en "modo mantenimiento" (Aislar el problema)
Para evitar que el malware siga haciendo daño y que los motores de búsqueda sancionen tu web, es buena idea "cerrar la tienda" temporalmente.
- Ve a DirectAdmin -> Gestor de Archivos.
- Entra en tu carpeta
public_html. - Busca el archivo
.htaccess. Si no lo ves, activa la opción de "Mostrar archivos ocultos" en la esquina superior derecha del gestor. - Descárgalo a tu ordenador como respaldo.
- Edita el archivo
.htaccessy al principio del mismo, añade estas líneas:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !/wp-admin/.*
RewriteRule ^(.*)$ /maintenance.php [R=302,L]
</IfModule>
- Crea un archivo llamado
maintenance.phpen la raíz depublic_htmlcon un mensaje amigable como "Estamos en mantenimiento, volveremos pronto".
Esto hará que todos los visitantes (excepto tú, accediendo a /wp-admin) vean el mensaje de mantenimiento mientras trabajamos.
Paso 3: Limpiar el núcleo de WordPress (Archivos del sistema)
WordPress tiene un sistema de archivos estándar. La mejor manera de asegurarnos de que los archivos del núcleo están limpios es reinstalarlos.
- Ve a wordpress.org y descarga la última versión de WordPress en tu ordenador.
- Descomprime el archivo
.zipen tu ordenador. - Con tu cliente FTP o el Gestor de Archivos de DirectAdmin, sube el contenido de la carpeta
wordpressque acabas de descomprimir a tu carpetapublic_html. - Cuando el sistema pregunte si quieres "Sobrescribir" los archivos existentes, elige "Sí" o "Reemplazar" para todos.
[WARNING] Este paso NO borra tu contenido (posts, páginas, etc.) ni tus plugins o temas. Solo reemplaza los archivos del "núcleo" de WordPress. Tu base de datos, donde se almacena el contenido, no se ve afectada.
Este proceso restaura los archivos originales y limpios de WordPress, eliminando cualquier modificación maliciosa en ellos.
Paso 4: Limpiar la base de datos (La mente del sitio)
El malware también puede esconderse en tu base de datos, inyectando código malicioso en tus entradas o creando usuarios administradores ocultos. Vamos a limpiarla.
- Ve a DirectAdmin -> MySQL Management.
- Encuentra tu base de datos y haz clic en "phpMyAdmin".
- En el panel izquierdo, selecciona tu base de datos. Verás una lista de tablas.
- Lo primero: Busca la tabla
wp_users(el prefijo puede ser diferente, comowp_). Haz clic en "Examinar" (o "Browse"). - Revisa los usuarios: Asegúrate de que solo están los usuarios que tú conoces. Si ves uno llamado
adminque no es tuyo, o con un correo electrónico extraño, bórralo marcando la casilla y haciendo clic en "Eliminar". - Cambia tu contraseña: Aprovecha para cambiar la contraseña de tu usuario administrador principal desde aquí o desde el propio WordPress (si puedes acceder). Elige una contraseña larga y compleja.
[INFO] El código malicioso en la base de datos a menudo se esconde en la tabla wp_options (en el campo siteurl o home, por ejemplo, para redirigirte a otro sitio) o dentro del contenido de tus posts en la tabla wp_posts. Busca en estas tablas cualquier texto o enlace que no reconozcas. Si ves un <script> extraño en tus entradas, elimínalo.
Paso 5: Limpiar los archivos del tema y plugins
Aquí es donde el malware suele jugar al escondite. Vamos a revisar a fondo las carpetas de tus temas y plugins.
- Ve a
public_html/wp-content/plugins/. - Identifica los plugins que realmente usas. Si tienes una lista de 20 plugins y solo usas 5, deshazte de los que no uses.
- Para cada plugin que uses, descárgalo de nuevo desde el repositorio oficial de WordPress (o desde la web del desarrollador si es premium).
- Borra la carpeta del plugin que tienes en el servidor y sube la nueva versión que acabas de descargar.
Repite el mismo proceso con la carpeta public_html/wp-content/themes/. Descarga tu tema desde una fuente oficial y reemplázalo por completo.
[TIP] Este método de "reinstalar" es mucho más efectivo que buscar archivos maliciosos uno a uno. Es como tirar la ropa vieja y comprar una copia limpia y nueva.
Paso 6: Revisar archivos críticos (wp-config.php y .htaccess)
Estos dos archivos son los más atacados porque controlan la configuración del sitio.
wp-config.php: Este archivo está en la raíz depublic_html. Ábrelo con el editor de DirectAdmin. Debe contener tus credenciales de base de datos. Busca cualquier código extraño fuera de las definiciones normales (comodefine('DB_NAME', ...), etc.). Si ves algo que no entiendes, es sospechoso..htaccess: Este archivo también está en la raíz. Ábrelo. El contenido "normal" de un WordPress sin reglas personalizadas es algo como:
# 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
Cualquier otra cosa, como reglas que redirijan a otros dominios o código PHP, es malware. Si tienes dudas, elimina todo el contenido del archivo y pégalo de nuevo con el código de arriba.
[WARNING] Ten mucho cuidado con este archivo. Si tu hosting o tu tema tienen reglas especiales (como redirecciones 301), perderás esas reglas. Pero es mejor perder una redirección que tener un sitio hackeado.
Paso 7: Escaneo final y verificación (La limpieza con aspiradora)
Ahora que hemos hecho la limpieza manual, es hora de usar una herramienta automática para asegurarnos de que no queda nada.
- Vuelve a tu panel de WordPress (recuerda que en el paso 2 pusimos un mantenimiento, puedes quitarlo borrando el archivo
maintenance.phpy restaurando tu.htaccessoriginal si lo habías modificado). - Ve a Plugins -> Añadir nuevo.
- Busca e instala Wordfence o Sucuri Scanner.
- Activa el plugin y ejecuta un escaneo completo del sitio.
- Si el escáner encuentra archivos maliciosos, sigue sus instrucciones para "Reparar" o "Eliminar" los archivos infectados.
Este escáner actuará como una red de seguridad, detectando cualquier cosa que se nos haya pasado por alto.
Paso 8: Cambiar todas las contraseñas (La higiene final)
Considera esto como cambiar las cerraduras de tu casa después de un robo. Es imprescindible.
- Panel de DirectAdmin: Cambia la contraseña de tu cuenta de hosting.
- Base de datos MySQL: Cambia la contraseña del usuario de tu base de datos.
- Usuarios de WordPress: Cambia las contraseñas de todos los usuarios, especialmente los administradores.
- FTP/SSH: Si usas FTP, cambia también esa contraseña.
[TIP] Utiliza un gestor de contraseñas (como LastPass o Bitwarden) para generar y almacenar contraseñas seguras. No uses la misma contraseña para todo.
Prevención: Cómo evitar futuras infecciones (Seguridad WordPress)
Limpio el sitio, ahora toca blindarlo. La seguridad es un proceso continuo, no un evento puntual.
- Actualiza todo siempre: WordPress, tus temas y tus plugins. Activa las actualizaciones automáticas si es posible.
- Elimina lo que no uses: Borra temas y plugins que no estén activos. Cada plugin es una puerta de entrada potencial.
- Usa contraseñas fuertes: Para todo, desde el hosting hasta WordPress.
- Limita los intentos de acceso: Instala un plugin como Wordfence que limite los intentos de inicio de sesión fallidos.
- Haz copias de seguridad periódicas: Configura copias de seguridad automáticas de tu sitio (archivos y base de datos) para poder restaurar rápidamente si algo sale mal.
- Desconfía de temas y plugins pirateados: Son la principal fuente de malware.
FAQ: Preguntas frecuentes sobre la limpieza de malware
¿Qué hago si no puedo acceder a mi panel de WordPress?
Si el malware te bloquea el acceso, puedes acceder a tu base de datos a través de phpMyAdmin en DirectAdmin y cambiar tu contraseña directamente en la tabla wp_users. También puedes desactivar todos los plugins renombrando la carpeta public_html/wp-content/plugins a plugins_old a través del Gestor de Archivos. Esto desactivará todos los plugins y te permitirá entrar.
¿Cuánto tiempo se tarda en limpiar un WordPress hackeado?
Depende del nivel de infección. Si es un sitio pequeño y el malware es superficial, puede llevar un par de horas. Si la infección es profunda y ha afectado a muchos archivos, puede llevar un día entero.
¿Qué pasa si después de la limpieza, mi sitio sigue siendo marcado como peligroso por Google?
Google puede tardar días o incluso semanas en revisar tu sitio de nuevo. Después de la limpieza, puedes solicitar una revisión en Google Search Console. Mientras tanto, asegúrate de que tu sitio está completamente limpio y de que has eliminado todo el malware.
¿Necesito contratar a un profesional para eliminar el malware?
Si te sientes cómodo siguiendo esta guía, puedes hacerlo tú mismo. Sin embargo, si el malware es muy complejo o si no te sientes seguro, contratar a un servicio profesional de limpieza de malware (como Sucuri o un especialista) es una inversión que te ahorrará tiempo y dolores de cabeza.
[INFO] Recuerda que la limpieza manual es la más fiable, pero requiere
