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

Cómo eliminar malware de un sitio web en DirectAdmin: guía práctica

Actualizado el 11 de octubre de 2025

Primero: ¿Qué estás enfrentando y cómo saberlo con certeza?

Que tu sitio web haya sido infectado es una situación estresante, pero respira. Es más común de lo que crees y, sobre todo, tiene solución. Antes de lanzarnos a limpiar, necesitas confirmar que realmente hay malware. A veces, el problema es solo un plugin desactualizado o un error de configuración.

Los signos más habituales de un sitio infectado son:

  • Avisos del navegador: Chrome o Firefox te muestran una página de "Advertencia de seguridad" antes de entrar a tu dominio.
  • Redirecciones extrañas: Al visitar tu web, te lleva a páginas de publicidad, casinos o sitios de estafa.
  • Contenido invisible: Texto o enlaces ocultos que los buscadores ven pero los visitantes no (esto es típico del SEO spam).
  • Rendimiento pésimo: El sitio carga lentísimo porque está ejecutando scripts maliciosos en segundo plano.
  • Archivos nuevos y sospechosos: Aparecen archivos .php o .js en carpetas donde no deberían estar, con nombres aleatorios.

[WARNING] Si tu proveedor de hosting ya te ha suspendido la cuenta, no intentes acceder por FTP. Primero contacta con soporte para que te den acceso de solo lectura o te indiquen el procedimiento. Forzar el acceso podría empeorar las cosas.

Para confirmar el diagnóstico, puedes usar herramientas online gratuitas como Sucuri SiteCheck o VirusTotal (introduciendo tu dominio). Esto te dará un informe externo de qué archivos o URLs están marcados.

Una vez confirmado, pasamos a la acción. Esta guía está pensada para el panel de control DirectAdmin, que es uno de los más usados en hosting compartido y VPS. Si tu panel es Syspanel (antes conocido como HestiaCP), recuerda que el acceso se realiza a través del puerto 2106, pero los conceptos de limpieza a nivel de archivos y base de datos son idénticos.


## Preparación previa: El blindaje antes de tocar nada

No empieces a borrar archivos a lo loco. Eso es lo peor que puedes hacer. Necesitas un plan y un entorno seguro.

### 1. Cambia todas tus contraseñas YA

El malware suele entrar por una brecha, y una contraseña débil es la puerta de entrada más común. Cambia:

  • La contraseña del panel de DirectAdmin.
  • La contraseña de tu cuenta de FTP (si usas FileZilla o similar).
  • La contraseña de la base de datos MySQL.
  • La contraseña del correo electrónico asociado al dominio.

Hazlo desde una computadora que sepas que está limpia, no desde la que usaste para gestionar el sitio infectado.

### 2. Crea una copia de seguridad limpia (o no tan limpia)

Necesitas una copia de seguridad para poder restaurar si algo sale mal durante la limpieza. Pero ojo: la copia que hagas ahora contiene el malware. No la uses para restaurar directamente. Sirve como red de seguridad para extraer archivos de configuración o datos que no estén infectados.

En DirectAdmin, ve a Copia de seguridad y crea una copia completa de tu cuenta. Descárgala a tu ordenador. También es recomendable exportar las bases de datos desde MySQL Management.

[INFO] El objetivo de esta copia no es restaurarla, sino tener los archivos originales para comparar. Por ejemplo, si un archivo .htaccess está modificado, podrás ver el original y saber qué añadió el atacante.

### 3. Activa el modo de mantenimiento (si puedes)

Si tu sitio está caído o muy lento, déjalo así. Si aún responde, considera poner un archivo maintenance.php o usar un plugin (si usas WordPress) para mostrar un mensaje temporal. Así evitas que los visitantes se lleven una sorpresa y que los buscadores indexen contenido malicioso.


## La limpieza manual paso a paso en DirectAdmin

Esta es la parte central. Vamos a trabajar con el Administrador de archivos de DirectAdmin, que es más seguro que FTP porque no expone contraseñas adicionales.

### 1. Accede al Administrador de archivos

  • Entra a tu panel de DirectAdmin.
  • Busca la sección Administrador de archivos (normalmente en el grupo "Administración de archivos").
  • Selecciona la carpeta public_html (o domains/tudominio.com/public_html si tienes varios dominios).

### 2. Localiza los archivos modificados recientemente

El malware se cuela justo antes de que lo detectes. Por eso, los archivos más recientes son los sospechosos.

  • En el Administrador de archivos, usa la opción de ordenar por fecha de modificación (suele ser una columna con un icono de flecha).
  • Busca archivos modificados en los últimos 2-7 días que tengan extensiones como .php, .phtml, .php7, .js, .ico o .htaccess.
  • Si ves archivos con nombres extraños tipo wp-load.php.bak, 0xdd.php o index.php en carpetas donde no debería haber un index, es una bandera roja.

### 3. Inspecciona el .htaccess (el archivo rey)

El .htaccess es el archivo de configuración de Apache y es el favorito de los atacantes para inyectar redirecciones.

  • Busca el archivo .htaccess en la raíz de public_html.
  • Ábrelo con el editor de texto del Administrador de archivos (clic derecho -> Editar).
  • Busca patrones extraños como RewriteRule hacia dominios externos, SetEnvIf con códigos base64, o líneas de base64_decode.

[TIP] Una buena práctica es descargar el .htaccess original, limpiarlo y luego subirlo. Si no sabes qué líneas son legítimas, compara con el archivo de la copia de seguridad que hiciste antes.

### 4. Busca archivos PHP ofuscados (el corazón del malware)

El malware PHP suele estar ofuscado. Eso significa que el código está codificado en base64 o con funciones como eval(), gzinflate(), str_rot13().

  • En el Administrador de archivos, usa la búsqueda para localizar archivos .php.
  • Abre los que tengan un tamaño sospechosamente pequeño (menos de 2KB) o muy grande (más de 100KB) que no reconozcas.
  • Busca funciones peligrosas: eval, base64_decode, shell_exec, exec, passthru, system, assert.

Si encuentras un archivo con estas funciones y contenido ilegible, es casi seguro malware. Bórralo o, mejor aún, renómbralo a .txt (por ejemplo, malware.php.txt) para que no se ejecute mientras decides si lo necesitas.

### 5. Revisa las carpetas de uploads y temas

En WordPress, Joomla o cualquier CMS, los atacantes suben archivos PHP disfrazados de imágenes.

  • Ve a public_html/wp-content/uploads/ (si es WordPress).
  • Busca archivos con doble extensión: imagen.jpg.php, foto.png.php.
  • Revisa las carpetas de temas y plugins: wp-content/themes/ y wp-content/plugins/. A veces inyectan código en el functions.php del tema.

### 6. Limpia la base de datos

El malware también puede esconderse en la base de datos, sobre todo en las tablas de opciones (como wp_options) o en los contenidos de los posts.

  • Ve a MySQL Management en DirectAdmin.
  • Entra con phpMyAdmin.
  • Selecciona tu base de datos.
  • Ejecuta una búsqueda global (la pestaña "Buscar") por términos como eval( o base64_decode, o por URLs extrañas como http://spam.com o http://bit.ly/.
  • Si encuentras resultados, edítalos manualmente. No borres filas enteras de wp_options sin saber qué estás haciendo, podrías romper el sitio.

## Automatizar la limpieza: herramientas que te salvarán

Hacerlo todo a mano es agotador y propenso a errores. DirectAdmin te permite ejecutar comandos, pero si no te sientes cómodo con la terminal, hay plugins y scripts.

### 1. Instala un plugin de seguridad (si usas WordPress)

WordPress es el CMS más atacado, pero también el que más herramientas tiene.

  • Wordfence o Sucuri Security son excelentes. Instala uno, escanea el sitio y deja que te diga qué archivos están infectados.
  • Estos plugins también te permiten "reparar" archivos del core de WordPress (restaurando la versión original) y bloquear IPs maliciosas.

[INFO] Los plugins de seguridad no son infalibles. Si el malware está muy oculto, es posible que no lo detecten. Úsalos como complemento, no como única solución.

### 2. Usa un escáner externo (desde tu PC)

Descarga el contenido de tu sitio por FTP (o desde el Administrador de archivos comprimiendo todo en un ZIP) y pásale un antivirus local como Malwarebytes o un escáner online como VirusTotal (subiendo el ZIP). Esto te dará una segunda opinión.


## Después de limpiar: La restauración y verificación

Has eliminado los archivos maliciosos y limpiado la base de datos. Ahora toca asegurarse de que todo funciona.

### 1. Actualiza TODO

  • CMS: Ve a la última versión de WordPress, Joomla, etc.
  • Plugins y temas: Actualiza todos, sin excepción. El malware suele entrar por vulnerabilidades de plugins antiguos.
  • Elimina plugins y temas que no uses. Si no los necesitas, bórralos. Menos código, menos superficie de ataque.

### 2. Cambia las claves de seguridad de WordPress

Si usas WordPress, edita el archivo wp-config.php y cambia las constantes AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY y NONCE_KEY. Puedes generar nuevas desde api.wordpress.org/secret-key/. Esto invalida las sesiones activas de los atacantes.

### 3. Verifica con herramientas externas

  • Vuelve a pasar Sucuri SiteCheck y VirusTotal.
  • Si aparece limpio, genial. Si no, repite el proceso de inspección de archivos, porque puede que te hayas dejado algo.

### 4. Refuerza la seguridad de DirectAdmin

  • Activa la autenticación de dos factores (2FA) en tu cuenta de DirectAdmin. El panel te lo permite desde "Configuración de la cuenta".
  • Bloquea el acceso a wp-admin por IP si tienes una IP fija. Puedes hacerlo desde el .htaccess o desde el firewall del servidor (si tienes acceso a CloudLinux o CSF).
  • Desactiva la edición de archivos desde el panel de WordPress añadiendo define('DISALLOW_FILE_EDIT', true); al wp-config.php.

## Preguntas frecuentes (FAQ) sobre limpieza de malware

### ¿Cuánto tiempo tarda en limpiar un sitio infectado?

Depende del tamaño y del nivel de infección. Un sitio pequeño con un plugin infectado puede estar limpio en 1-2 horas. Un sitio grande con malware inyectado en muchos archivos puede llevarte un día entero. La paciencia es clave.

### ¿Debo pagar a un servicio profesional de limpieza?

Si el sitio es crítico para tu negocio y no te sientes seguro haciendo esto, sí merece la pena. Servicios como Sucuri (desde unos 200€/año) o agencias especializadas te garantizan la limpieza y un seguimiento posterior. Es una inversión en tranquilidad.

### ¿Puedo prevenir futuras infecciones?

Sí, pero no al 100%. El malware evoluciona constantemente. Tus mejores armas son:

  • Mantener todo actualizado (CMS, plugins, temas).
  • Usar contraseñas fuertes y únicas para cada servicio.
  • Instalar un firewall (como Wordfence o un WAF a nivel de servidor).
  • Hacer copias de seguridad automáticas semanales (y guardarlas fuera del servidor, por ejemplo en Google Drive o Amazon S3).
  • Desconfiar de plugins y temas piratas. Son la principal puerta de entrada.

### ¿Qué pasa si el malware vuelve a aparecer a los pocos días?

Esto significa que la puerta de entrada sigue abierta. Puede ser:

  • Una cuenta de FTP comprometida que no has cambiado.
  • Un plugin con una vulnerabilidad conocida que no has actualizado.
  • Un archivo PHP que se ejecuta desde fuera de tu public_html (por ejemplo, en /tmp o en la carpeta de logs).

En este caso, revisa los logs de acceso del servidor (en DirectAdmin, en "Registros" o "Logs") para ver qué archivos se están solicitando con más frecuencia. Ahí verás la IP del atacante y el archivo que está explotando.


## Conclusión: Tu sitio puede volver a estar sano

Limpiar un sitio infectado en DirectAdmin es un proceso metódico que combina inspección manual, uso de herramientas y una buena dosis de sentido común. No es agradable, pero es una experiencia de aprendizaje brutal en seguridad web.

Recuerda el orden: diagnóstico, copia de seguridad, limpieza de archivos, limpieza de base de datos, actualización y refuerzo. Si sigues estos pasos, en menos de 24 horas tu sitio debería estar funcionando sin problemas y, sobre todo, sin visitantes no deseados.

[TIP] Después de la limpieza, monitoriza tu sitio durante una semana. Revisa los logs de acceso y los archivos modificados cada dos días. Si todo sigue limpio, puedes bajar la guardia (pero no demasiado). La seguridad es un proceso continuo, no un evento puntual.

Si en algún momento del proceso te sientes abrumado, no dudes en contactar con el soporte de tu proveedor de hosting. Ellos pueden darte información sobre si el ataque fue a nivel de cuenta o de servidor, y pueden ayudarte a restaurar desde una copia anterior a la infección (si tienen una). Mucha suerte con la limpieza, y que tu sitio vuelva a estar saludable muy pronto.

¿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