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

Cómo eliminar malware de WordPress usando el modo de mantenimiento en DirectAdmin

Actualizado el 20 de mayo de 2026

Antes de Empezar: ¿Por Qué tu WordPress Está Infectado y Qué Hace el Modo de Mantenimiento?

Si llegaste hasta aquí, probablemente viste mensajes raros en tu web, redirecciones extrañas, o tu proveedor de hosting te avisó de que tu sitio tiene malware. No te preocupes, es más común de lo que crees y tiene solución. El objetivo de esta guía es que aprendas a limpiar malware WordPress usando una herramienta que ya tienes en tu panel de control: el modo mantenimiento DirectAdmin.

Piensa en el modo de mantenimiento como una cuarentena. Cuando lo activas, los visitantes ven una página de "en obras" o "mantenimiento", pero tú puedes seguir trabajando en el servidor. Esto es crucial porque evita que el malware siga propagándose o que los buscadores indexen contenido malicioso mientras tú limpias.

[WARNING] No trabajes nunca sobre un sitio infectado sin activar antes el modo de mantenimiento. Si el malware está activo, puede reinfectar los archivos mientras los limpias, como si intentaras vaciar una bañera con el grifo abierto.

¿Qué necesitas para empezar?

  • Acceso a tu panel de DirectAdmin (usuario y contraseña).
  • Acceso a tu gestor de archivos o un cliente FTP (FileZilla, por ejemplo).
  • Un poco de paciencia y seguir los pasos en orden.

Paso 1: Activar el Modo de Mantenimiento en DirectAdmin

Este es tu primer escudo. DirectAdmin no tiene un botón mágico de "modo mantenimiento" para WordPress, pero podemos crearlo fácilmente. Te enseñaré dos métodos: uno desde el gestor de archivos y otro creando un archivo manualmente.

Método A: Usando el Gestor de Archivos de DirectAdmin (Recomendado)

  1. Entra a tu panel de DirectAdmin.
  2. Busca el icono "Gestor de Archivos" (suele estar en la sección de "Administración de Archivos").
  3. Navega hasta la carpeta donde está instalado tu WordPress. Normalmente es domains/tudominio.com/public_html o public_html si tienes un solo dominio.
  4. Una vez dentro, busca un archivo llamado .htaccess. Si no lo ves, activa la opción de "Mostrar archivos ocultos" (suele ser un botón o checkbox arriba a la derecha).
  5. Haz clic derecho sobre .htaccess y selecciona "Editar" o "Code Editor".
  6. IMPORTANTE: Antes de tocar nada, copia todo el contenido de ese archivo y pégalo en un bloc de notas. Lo necesitarás para restaurarlo después.
  7. Al principio del archivo, pega estas líneas exactamente:
# MODIFICACIÓN TEMPORAL PARA MANTENIMIENTO
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !/wp-admin/ [NC]
RewriteCond %{REQUEST_URI} !/wp-login.php [NC]
RewriteCond %{REMOTE_ADDR} !^TU_IP_PUBLICA$
RewriteRule .* /mantenimiento.html [R=302,L]
</IfModule>
  1. Sustituye TU_IP_PUBLICA por tu dirección IP real. ¿No sabes cuál es? Busca en Google "cuál es mi ip" y te la dirá. Esto es para que TÚ puedas ver la web normalmente, pero los demás vean el mantenimiento.
  2. Guarda los cambios.

Método B: Crear un archivo de mantenimiento (Más simple, pero menos elegante)

Si el método anterior te asusta, puedes simplemente crear un archivo maintenance.php en la raíz de tu WordPress y redirigir a él. Pero el método A es más limpio porque no toca los archivos de WordPress, solo el .htaccess.

[TIP] Si tu web usa HTTPS (casi siempre es así), asegúrate de que las reglas anteriores no bloqueen el acceso a SSL. Las reglas que te di son compatibles, pero si ves problemas, prueba a añadir RewriteCond %{HTTPS} !=on antes de las otras condiciones.

Crear la página de mantenimiento

Ahora necesitas crear el archivo mantenimiento.html que mencionamos. Crea un archivo nuevo en la misma carpeta (public_html) con ese nombre y pega este código mínimo:

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Mantenimiento</title>
    <style>body { font-family: Arial; text-align: center; padding-top: 50px; }</style>
</head>
<body>
    <h1>Estamos en mantenimiento</h1>
    <p>Volvemos en unos minutos. Disculpa las molestias.</p>
</body>
</html>

Paso 2: Diagnóstico Rápido ¿Dónde está el Malware?

Con el sitio en cuarentena, es hora de ponerse el traje de detective. El malware en WordPress suele esconderse en 3 lugares principales:

  1. Archivos del núcleo: wp-includes, wp-admin, wp-content.
  2. Temas y plugins: A menudo, en archivos functions.php o en archivos index.php modificados.
  3. La base de datos: Aquí es donde se esconden los inyectores de código malicioso, redirecciones y puertas traseras.

Herramientas de escaneo automático (Tu primer aliado)

Antes de revisar archivo por archivo, usa un plugin de seguridad. Pero ojo, NO lo actives aún. Simplemente instálalo y usa su escáner.

  • Wordfence: El más completo. Te dirá qué archivos están modificados o son sospechosos.
  • MalCare: Especializado en limpieza, tiene un escáner muy bueno.

¿Cómo instalarlo si mi web está en mantenimiento? Simple, el mantenimiento que configuramos permite el acceso a wp-admin (mira las reglas del .htaccess). Entra a /wp-admin, ve a Plugins > Añadir nuevo, busca Wordfence e instálalo. No lo actives aún, solo úsalo para escanear.

[INFO] El escaneo puede tardar unos minutos. No cierres la pestaña. Si el escáner encuentra archivos infectados, NO los borres aún. Solo anota las rutas exactas que te da.


Paso 3: Limpieza Manual de Archivos (El Trabajo Fino)

El escáner te ha dado la ruta de los archivos maliciosos. Ahora vamos a por ellos.

Localizar y revisar archivos sospechosos

  1. Vuelve al Gestor de Archivos de DirectAdmin.
  2. Navega a las rutas que te marcó el escáner.
  3. Busca archivos con nombres raros: abc.php, wp-login.php.bak, 0day.php, shell.php, o archivos con permisos 777 (escritura total).

¿Qué hago si encuentro un archivo infectado?

  • Si es un archivo de un plugin o tema: No lo repares, es mejor eliminar el plugin o tema completo y volver a instalarlo desde el repositorio oficial de WordPress. Esto garantiza que no queden restos.
  • Si es un archivo del núcleo (wp-includes o wp-admin): La solución más segura es descargar una copia limpia de WordPress desde es.wordpress.org, descomprimirla en tu PC y subir los archivos de esas carpetas específicas por FTP o Gestor de Archivos, reemplazando los infectados.

Revisar wp-config.php

Este archivo es la joya de la corona. Busca en él líneas extrañas, funciones eval() o base64_decode que no deberían estar. Si ves algo raro, compáralo con una copia limpia de wp-config.php de la documentación oficial.

Buscar código inyectado en temas y plugins

  1. Ve a wp-content/themes/ y wp-content/plugins/.
  2. Busca archivos index.php o functions.php.
  3. Ábrelos y busca patrones sospechosos como:
    • eval( (ejecuta código).
    • base64_decode( (decodifica código oculto).
    • gzinflate( (descomprime código).
    • <script> inyectado al principio o final del archivo.

Si encuentras eso, borra esas líneas exactas. Si el archivo está muy modificado, reemplázalo por una versión limpia del desarrollador del tema/plugin.

[WARNING] Nunca borres un archivo index.php de una carpeta de tema o plugin sin reemplazarlo. Es necesario para evitar listados de directorios. Si lo borras, crea uno nuevo vacío con este contenido: <?php // Silence is golden. (sin las comillas exteriores).


Paso 4: Limpiar la Base de Datos (El Escondite Perfecto)

El malware puede inyectar código en tu base de datos, creando usuarios administradores o inyectando scripts en las entradas. Aquí es donde se esconden las redirecciones a sitios de spam.

Acceso a phpMyAdmin

  1. En DirectAdmin, busca el icono "MySQL Management" o "phpMyAdmin".
  2. Haz clic en "Entrar a phpMyAdmin".
  3. Selecciona tu base de datos (la que aparece en tu wp-config.php).

Qué buscar en la base de datos

  • Usuarios ocultos: Ve a la tabla wp_users. Revisa si hay algún usuario que no reconozcas. Si hay uno llamado admin o similar con un email raro, bórralo (si no eres tú).
  • Opciones de sitio manipuladas: Ve a wp_options. Busca las opciones siteurl y home. Deben ser exactamente https://tudominio.com. Si ves otra cosa, cámbialo.
  • Código inyectado en entradas: Ejecuta esta consulta SQL en la pestaña "SQL" de phpMyAdmin (esto es seguro, solo busca):
SELECT * FROM wp_posts WHERE post_content LIKE '%eval(%' OR post_content LIKE '%base64_decode(%' OR post_content LIKE '%<script>%' LIMIT 20;

Si te devuelve resultados, tendrás que editar esas entradas o usar un plugin de limpieza de base de datos como WP-Optimize (solo la parte de limpieza de spam).

[TIP] Si no te sientes cómodo con SQL, instala el plugin "Better Search Replace" y busca en todas las tablas los términos sospechosos (ej. eval(, base64_decode, http://sitio-malicioso.com) y reemplázalos por un espacio vacío. Eso elimina la inyección.


Paso 5: Refuerza tu Seguridad y Restaura el Acceso

Ya has limpiado lo visible. Ahora hay que cerrar la puerta por donde entraron.

Cambiar todas las contraseñas

  • Panel de DirectAdmin: Cambia la contraseña de tu cuenta de hosting.
  • Usuarios de WordPress: Cambia la contraseña de TODOS los usuarios administradores. No dejes ninguna por defecto.
  • Base de datos: Cambia la contraseña de la base de datos desde DirectAdmin y actualiza wp-config.php con la nueva.

Actualizar todo

  • WordPress: Ve a Escritorio > Actualizaciones y actualiza el núcleo.
  • Plugins y Temas: Actualiza absolutamente todo lo que puedas. El malware suele entrar por vulnerabilidades en versiones antiguas.

Eliminar archivos innecesarios

  • Borra cualquier tema o plugin que no uses. Los archivos inactivos son puertas traseras esperando a ser usadas.
  • Revisa la carpeta wp-content/uploads en busca de archivos .php (no debería haber ninguno). Si los hay, bórralos.

Paso 6: Salir del Modo Mantenimiento

¡Lo lograste! Ya tienes la web limpia y asegurada. Ahora vamos a quitar la cuarentena.

  1. Ve al Gestor de Archivos de DirectAdmin.
  2. Edita el archivo .htaccess.
  3. Borra las líneas que añadimos al principio (las que empiezan con # MODIFICACIÓN TEMPORAL hasta </IfModule>).
  4. Restaura el contenido original que copiaste en el primer paso (si era diferente). Simplemente guarda el archivo con el contenido que tenías antes.
  5. Borra el archivo mantenimiento.html que creamos.

[WARNING] Si al guardar el .htaccess no funciona tu web, puede que el archivo original tuviera reglas específicas de tu hosting. Si la web da error 500, restaura la copia de seguridad de .htaccess que guardaste al principio.


Preguntas Frecuentes (FAQ)

¿Y si no encuentro el malware con el escáner?

A veces el malware está muy ofuscado o es una puerta trasera en un archivo que parece legítimo. Si no lo encuentras, reinstala WordPress desde cero conservando solo wp-content/uploads y tu base de datos. Es la solución nuclear pero 100% efectiva.

¿Cómo sé que mi IP es la correcta para el modo mantenimiento?

Cuando activas el modo mantenimiento, escribe en tu navegador https://tudominio.com. Si ves la página de mantenimiento, es que tu IP no está bien puesta. Si ves tu web normal, es que está bien. Si te redirige a un sitio raro, es que el malware sigue activo en la base de datos.

¿Esto funciona también para Syspanel?

Sí, el proceso es idéntico. Syspanel (que es el nuevo nombre de HestiaCP) tiene un panel similar. Para acceder a su gestor de archivos, entra a http://tu-servidor:2106 (el puerto es el 2106) y usa las mismas herramientas. La lógica de limpiar .htaccess y archivos es la misma, solo cambia la interfaz del panel.

¿Cada cuánto debo hacer esto?

No deberías hacer esto de forma rutinaria. Lo ideal es prevenir. Instala un plugin de seguridad como Wordfence o iThemes Security, activa la autenticación de dos factores (2FA) para tu panel de administración y mantén todo actualizado.

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

Eso significa que hay una puerta trasera que no has eliminado, probablemente en un archivo de tema o en la base de datos. Repite el proceso, pero esta vez elimina TODOS los temas y plugins que no uses, y considera cambiar el prefijo de las tablas de la base de datos (wp_ por algo personalizado) para dificultar los ataques SQL.


Conclusión Final

Limpiar un WordPress infectado no es agradable, pero con este método paso a paso usando el modo mantenimiento DirectAdmin has podido hacerlo de forma segura y sin perder a tus visitantes. Recuerda que la clave está en la prevención: actualiza, usa contraseñas fuertes y mantén un buen plugin de seguridad activo.

Si el proceso te parece demasiado técnico, siempre puedes pedir ayuda a tu proveedor de hosting, pero ahora ya tienes el conocimiento para intentarlo por ti mismo. ¡Buena suerte y esperamos que tu web esté más segura que nunca!

¿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