Cómo eliminar malware de un sitio web en DirectAdmin
Primeros pasos: ¿Cómo saber si tu sitio web tiene malware?
Detectar que tu web ha sido infectada puede ser tan sencillo como ver un aviso de Google Safe Browsing, o tan sutil como una caída repentina del rendimiento. Los síntomas más comunes son: redirecciones a páginas extrañas, anuncios emergentes que no colocaste tú, o que tu propio hosting te suspenda la cuenta por envío de spam.
Si sospechas que tienes malware, no entres en pánico. La mayoría de las infecciones en alojamientos compartidos siguen un patrón conocido y se pueden limpiar siguiendo un proceso metódico. En esta guía te enseñaré a eliminar malware DirectAdmin paso a paso, usando las herramientas que ya tienes disponibles en tu panel de control.
Qué necesitas antes de empezar
- Acceso a tu panel de DirectAdmin (normalmente en
tudominio.com:2222). - Acceso al Administrador de archivos o a un cliente FTP (como FileZilla).
- Tus credenciales de la base de datos MySQL.
- Mucha paciencia y una copia de seguridad reciente (si la tienes, genial; si no, la crearemos ahora).
[WARNING] Si tu sitio genera ingresos o tiene datos críticos, considera contactar con tu proveedor de hosting antes de tocar nada. Algunos ofrecen limpieza gratuita de malware como parte de su servicio de seguridad.
Paso 1: Aislar el problema y hacer una copia de seguridad
Antes de tocar un solo archivo, debes aislar el sitio infectado para que el malware no se siga propagando. Si tienes varios dominios en el mismo DirectAdmin, esto es crucial.
Cómo poner tu web en modo mantenimiento
La forma más rápida es crear un archivo llamado maintenance.html en la raíz de tu dominio (carpeta public_html) con un mensaje simple. Luego, desde el Administrador de archivos, renombra tu index.php o index.html original a index_original.php. Esto hará que los visitantes vean tu página de mantenimiento mientras trabajas.
Crear una copia de seguridad completa
DirectAdmin tiene una herramienta integrada para esto:
- Ve a Copia de seguridad en el menú principal.
- Selecciona Crear copia de seguridad.
- Marca todas las casillas:
Configuración,Base de datos,Cuentas de correoyDatos del sitio. - Haz clic en Crear copia de seguridad.
Este proceso puede tardar varios minutos. Guarda el archivo .tar.gz resultante en tu ordenador, no en el servidor, porque podría estar infectado también.
[TIP] Si tu hosting te da acceso a SSH (Shell), puedes hacer una copia más rápida con el comando
tar -czf backup.tar.gz public_html. Pero si no sabes qué es SSH, quédate con el método gráfico de DirectAdmin.
Paso 2: Identificar los archivos maliciosos
Ahora viene la parte más técnica, pero no te preocupes, te lo explico fácil. El malware en hosting suele esconderse en lugares concretos.
Revisa los archivos modificados recientemente
El malware modifica archivos existentes o crea otros nuevos. Vamos a buscar esos rastros:
- Entra en el Administrador de archivos de DirectAdmin.
- Navega a
public_html. - En la barra superior, busca la opción Configuración o Preferencias y activa la casilla Mostrar archivos ocultos (los que empiezan por
.). - Ahora, con el botón derecho del ratón (o el menú de acciones), selecciona Información o Detalles en varios archivos. Fíjate en la fecha de modificación.
Los archivos modificados en las últimas 24-48 horas (cuando empezó el problema) son tus principales sospechosos.
Los archivos más comunes que debes revisar
.htaccess: Un archivo de configuración muy pequeño. Si ves líneas conRewriteRulehacia dominios raros comohttp://spam-site.ru, estás infectado.index.php,index.html,wp-config.php(si usas WordPress): Suelen inyectar código ofuscado al principio o al final.- Carpetas
tmp/,cache/,uploads/: A menudo contienen archivos.phpque no deberían estar ahí (por ejemplo,image.php.jpg.php). - Archivos con doble extensión:
logo.png.phpodocumento.pdf.phpson malware casi con total seguridad.
Buscar código ofuscado
El malware se escribe para que sea difícil de leer. Busca en los archivos sospechosos funciones como:
eval(base64_decode(...))gzinflate(...)str_rot13(...)create_function(...)
Si encuentras alguna de estas funciones, ese archivo es malicioso.
[INFO] No todos los archivos con estas funciones son malware. Algunos plugins legítimos de caché o seguridad las usan. Pero si el archivo es
index.phpy no reconoces el código, es mejor eliminarlo.
Paso 3: Limpiar el malware manualmente
Dependiendo de lo que encuentres, puedes limpiar el archivo o eliminarlo por completo. Te recomiendo hacer una limpieza quirúrgica si el archivo es importante (como index.php).
Limpiar un archivo infectado
- Selecciona el archivo en el Administrador de archivos y haz clic en Editar o Editor de código.
- Verás el código. Busca bloques que no te suenen, normalmente al principio (
<?php ... ?>) o al final. - Borra solo el bloque malicioso. Si el archivo es de WordPress y está muy dañado, es mejor reemplazarlo por una copia limpia de la instalación original.
Eliminar archivos maliciosos desconocidos
Si encuentras un archivo extraño como wso.php o shell.php, no lo abras. Selecciónalo y haz clic en Eliminar.
[WARNING] NUNCA ejecutes un archivo
.phpque no reconozcas en tu navegador. Si es un "web shell" (una puerta trasera), le darás acceso total a tu servidor al atacante.
Limpiar la base de datos
El malware también se esconde en tu base de datos MySQL, especialmente en sitios WordPress. Para limpiarla:
- Ve a MySQL Management en DirectAdmin.
- Entra en phpMyAdmin.
- Selecciona tu base de datos.
- En la pestaña SQL, ejecuta esta consulta para buscar contenido inyectado en las entradas:
SELECT * FROM wp_posts WHERE post_content LIKE '%<script%' OR post_content LIKE '%iframe%';
Si aparecen resultados, tendrás que editar esas entradas y eliminar las etiquetas <script> o <iframe> maliciosas.
[TIP] Si no te ves capaz de limpiar la base de datos manualmente, busca en Google "limpiar malware base de datos WordPress" y encontrarás scripts específicos. Pero ten cuidado de dónde los descargas.
Paso 4: Usar herramientas de seguridad en DirectAdmin
DirectAdmin no tiene un antivirus integrado, pero puedes instalar herramientas gratuitas que te ayudarán a limpiar virus DirectAdmin y prevenir futuras infecciones.
Instalar un escáner de malware (Ejemplo: ImunifyAV)
Muchos hosts ofrecen ImunifyAV como parte del panel. Si tu proveedor lo tiene, verás un icono con un escudo en la parte inferior de DirectAdmin.
- Haz clic en el icono de ImunifyAV.
- Ve a la pestaña Escaneo o Scan.
- Haz clic en Escanear ahora.
- Espera a que termine. Puede tardar de 5 a 30 minutos.
- Revisa los archivos detectados. Los clasificará como Malware, Suspechoso o Limpio.
- Selecciona los archivos infectados y haz clic en Cuarentena o Eliminar.
Usar el Administrador de tareas programadas
Puedes programar un escaneo diario para que ImunifyAV revise tu sitio automáticamente. En DirectAdmin, ve a Tareas Programadas (Cron Jobs) y añade una línea como:
0 3 * * * /usr/bin/imunify-antivirus scan --path /home/usuario/public_html --report
Reemplaza usuario por tu nombre de usuario real.
[INFO] Si tu hosting usa Syspanel (antes conocido como HestiaCP) en lugar de DirectAdmin, el acceso es por el puerto 2106 (por ejemplo,
tudominio.com:2106). El proceso de limpieza es idéntico, solo cambia el nombre del panel.
Paso 5: Reforzar la seguridad para prevenir futuras infecciones
Limpiar el malware sin reforzar la seguridad es como cerrar la puerta de casa pero dejar la ventana abierta. Aquí tienes una lista de acciones imprescindibles:
Cambia todas tus contraseñas
- Contraseña de DirectAdmin: En el menú
Cambiar contraseña. - Contraseña de FTP: En
Acceso FTP. - Contraseñas de bases de datos: En
MySQL Management. - Contraseñas de email: En
Cuentas de correo.
Usa contraseñas largas con mayúsculas, minúsculas, números y símbolos. Un gestor de contraseñas (como Bitwarden o 1Password) te facilitará la tarea.
Actualiza todo el software
Si usas WordPress, Joomla, PrestaShop o cualquier CMS, actualiza a la última versión y, sobre todo, actualiza todos los plugins y temas. La mayoría de los ataques se producen por vulnerabilidades en componentes desactualizados.
Elimina lo que no uses
- Temas de WordPress que no utilices.
- Plugins inactivos.
- Usuarios FTP antiguos o desconocidos.
- Cuentas de correo que ya no uses.
Configura un firewall de aplicación web (WAF)
DirectAdmin a menudo incluye ModSecurity (un firewall). Para activarlo:
- Ve a Seguridad > ModSecurity.
- Actívalo y selecciona la regla OWASP CRS (es la más completa).
- Guarda los cambios.
[WARNING] Si activas ModSecurity, es posible que algunas funciones legítimas de tu web dejen de funcionar (por ejemplo, subir archivos). Si eso ocurre, tendrás que desactivar reglas específicas o añadir excepciones.
Protege el archivo wp-admin (si usas WordPress)
Añade esto a tu .htaccess para bloquear el acceso al panel de administración desde IPs desconocidas:
<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from TU_IP
</Files>
Reemplaza TU_IP por tu dirección IP pública.
Paso 6: Qué hacer si no puedes limpiar el malware tú mismo
A veces, la infección es tan profunda que es imposible limpiarla a mano sin experiencia. No pasa nada, hay alternativas:
Restaurar desde una copia de seguridad limpia
Si tienes una copia de seguridad de antes de la infección, este es el método más rápido y fiable.
- Ve a Copia de seguridad en DirectAdmin.
- En Restaurar copia de seguridad, sube tu archivo
.tar.gzlimpio. - Marca las casillas de lo que quieras restaurar (normalmente todo).
- Haz clic en Restaurar.
[TIP] Si no tienes copia de seguridad, consulta con tu proveedor. Muchos guardan copias de seguridad diarias durante 7-30 días y pueden restaurar una versión anterior para ti.
Contratar un servicio de limpieza profesional
Existen empresas especializadas en malware hosting que, por un precio razonable (30-100 €), limpian tu web en 24-48 horas. Algunos hosts incluso tienen este servicio incluido en su plan de soporte.
Preguntas frecuentes (FAQ) sobre limpieza de malware en DirectAdmin
¿Cuánto tiempo tarda en limpiarse un sitio web infectado?
Depende del tamaño y del tipo de infección. Una limpieza manual básica puede llevar de 2 a 4 horas si sabes lo que haces. Con herramientas automáticas como ImunifyAV, el escaneo tarda unos 20-30 minutos y la limpieza es casi inmediata. Si restauras desde copia de seguridad, en 1 hora puedes estar operativo.
¿Mi sitio volverá a ser infectado después de la limpieza?
Si no corriges la vulnerabilidad que permitió la entrada (plugin desactualizado, contraseña débil, etc.), es muy probable que vuelva a ocurrir. La limpieza es un parche, la prevención es la solución.
¿Por qué Google sigue mostrando mi sitio como peligroso después de limpiarlo?
Google tarda en revisar y actualizar su lista negra. Una vez que hayas limpiado todo, ve a Google Search Console y solicita una revisión del sitio. El proceso puede tardar desde 24 horas hasta varias semanas.
¿Qué es un "web shell" y por qué es tan peligroso?
Es un archivo PHP malicioso que permite al atacante controlar tu servidor como si tuviera un panel de administración. Puede ejecutar comandos, leer archivos, robar datos y usar tu servidor para lanzar ataques. Si encuentras uno, no lo abras, elimínalo de inmediato.
¿Puedo usar el "Administrador de archivos" de DirectAdmin para buscar malware?
Sí, pero es un proceso manual y lento. Te recomiendo combinarlo con un escáner automático. Para sitios pequeños (menos de 5000 archivos), puedes revisar manualmente las carpetas clave (public_html, wp-content/uploads, wp-content/plugins) en busca de archivos extraños.
¿Qué hago si mi cuenta de hosting ha sido suspendida por malware?
Contacta con tu proveedor de inmediato. Ellos te dirán qué archivos detectaron y, en muchos casos, te darán un plazo para limpiarla o lo harán ellos por un cargo. No intentes crear una cuenta nueva para evadir la suspensión, eso empeora las cosas.
¿Los plugins de seguridad de WordPress son efectivos para limpiar malware?
Sí, plugins como Wordfence o Sucuri Security son excelentes para detectar y eliminar malware en WordPress. Wordfence incluso tiene un escáner de código que compara tus archivos con los originales. Pero recuerda que el malware puede estar fuera de WordPress (por ejemplo, en la raíz del dominio), así que no te confíes solo de ellos.
¿Es seguro usar el "borrado de caché" de DirectAdmin durante la limpieza?
Sí, es recomendable. Después de eliminar archivos maliciosos, limpia la caché del servidor y la de tu navegador para asegurarte de que no se sirvan versiones antiguas e infectadas.
Resumen final: Tu plan de acción
- Detecta: Revisa archivos modificados recientemente y busca código ofuscado.
- Aísla: Pon tu web en mantenimiento y haz una copia de seguridad.
- Limpia: Elimina archivos maliciosos y limpia la base de datos.
- Escanea: Usa ImunifyAV o un plugin de seguridad para encontrar lo que se te haya escapado.
- Protege: Cambia contraseñas, actualiza todo, activa ModSecurity.
- Monitorea: Revisa tu web regularmente y solicita la revisión de Google.
Recuerda que la seguridad es un proceso continuo, no un evento único. Dedica 15 minutos al mes a revisar los registros de acceso y los archivos recientes. Y si te sientes abrumado, no dudes en pedir ayuda profesional. Tu tranquilidad vale más que el coste de un servicio de limpieza.
[INFO] Si tu panel es Syspanel (el que antes se llamaba HestiaCP), recuerda que el puerto de acceso es el 2106. La estructura de carpetas y el proceso de limpieza son prácticamente idénticos a los de DirectAdmin, así que esta guía
