Cómo limpiar WordPress de malware desde DirectAdmin
¿Tu WordPress está actuando raro? ¿Redirecciones extrañas, anuncios que no pusiste o un aviso de Google diciendo que tu sitio es peligroso? Respira hondo. Que tu WordPress esté infectado no significa el fin del mundo, y mucho menos si tu hosting usa DirectAdmin, porque esta herramienta te da acceso total a los archivos y la base de datos sin necesidad de ser un hacker.
En esta guía extensa y paso a paso, voy a explicarte, como si estuviéramos tomando un café, cómo limpiar malware en WordPress desde DirectAdmin. No necesitas ser un experto en programación, solo seguir el orden lógico que te propongo. Vamos a quitar el virus, asegurar las puertas de entrada y, de paso, blindar tu sitio para el futuro.
Primeros Síntomas: ¿Cómo Saber si tu WordPress está Infectado?
Antes de lanzarnos a borrar archivos como locos, es crucial identificar si realmente tienes un problema. A veces el mal rendimiento se confunde con malware. Estos son los signos más comunes de un WordPress infectado en DirectAdmin:
- Redirecciones fantasma: Al visitar tu web desde Google, te lleva a páginas de farmacias, casinos o sitios de criptomonedas.
- Anuncios invasivos: Aparecen pop-ups o banners que tú no has creado, incluso en tu administrador.
- Alertas del navegador o de Google: Chrome, Firefox o Google Search Console te avisan de que el sitio tiene "contenido engañoso" o "software no deseado".
- Usuarios administradores desconocidos: Hay cuentas nuevas con rol de Administrador que tú no creaste.
- Código extraño en el código fuente: Al hacer clic derecho y "Ver código fuente" (Ctrl+U), ves scripts en la parte inferior o en el
<head>que no reconoces. - Tu hosting te suspende la cuenta: Por consumo excesivo de CPU o envío de spam desde tus scripts.
Si tienes uno o varios de estos síntomas, es hora de ponerse el traje de detective. No te asustes, DirectAdmin es tu mejor aliado.
Preparación y Plan de Ataque: Antes de Tocar Nada
La paciencia es clave aquí. No entres a tu WordPress todavía. Si el malware está activo, al cargar la web puedes volver a infectarte o dar pistas al atacante de que estás limpiando.
1. Cambia tus Contraseñas Inmediatamente (Desde DirectAdmin)
Esto es lo primero, siempre. Si el hacker entró por una contraseña débil, debemos cerrarle la puerta ya.
- Accede a tu panel de DirectAdmin (normalmente en
tudominio.com:2222). - Ve a la sección "Cambiar Contraseña" (suele estar en el menú superior o en el panel de cuenta).
- Cambia la contraseña de tu cuenta principal de hosting.
- Luego, ve a "Administrador de Bases de Datos" (MySQL) y cambia la contraseña de la base de datos de tu WordPress.
[WARNING] No uses la misma contraseña para todo. Usa un gestor de contraseñas para generar claves largas y únicas. Esto es vital para la seguridad WordPress con DirectAdmin.
2. Haz una Copia de Seguridad (Sí o Sí)
Parece contradictorio, pero necesitas una copia del sitio infectado. ¿Por qué? Porque si algo sale mal durante la limpieza, podrás restaurar y volver a intentarlo. Además, te servirá para comparar archivos.
- En DirectAdmin, busca la sección "Copia de Seguridad" o "Backup".
- Selecciona la opción de crear una copia completa (todos los archivos y bases de datos).
- Descarga el archivo
.tar.gzresultante a tu ordenador.
[INFO] No restaures esta copia de seguridad en un sitio limpio. Guárdala solo como red de seguridad temporal. Si la restauras, el virus volverá.
3. Identifica tu Versión de PHP y Ruta de Archivos
Para trabajar cómodo, necesitas saber dónde están tus archivos. Normalmente, en DirectAdmin, tu WordPress está en la carpeta public_html o en una subcarpeta (ej. public_html/blog). Anota esta ruta.
Fase 1: Limpiar el Código Fuente (Archivos del Tema y Núcleo)
Ahora sí, vamos a ensuciarnos las manos. Esta es la parte más técnica, pero la haremos con calma.
1. Accede al Administrador de Archivos de DirectAdmin
- En tu panel, busca el icono "Administrador de Archivos" (File Manager).
- Navega hasta tu carpeta
public_html(o donde tengas WordPress).
2. Busca Archivos Modificados Recientemente (El Rastro del Hacker)
Los archivos infectados suelen tener una fecha de modificación muy reciente, a veces del mismo día o minuto que la infección.
- En el Administrador de Archivos, ordena los archivos por "Fecha de modificación" (suele haber una columna para ello).
- Revisa los archivos
.phpque aparezcan en las últimas 24-48 horas. No toques los.logni los.zip. - Si ves un archivo con un nombre extraño (ej.
wp-upload.php,x9d2.php,c.php), no lo borres aún. Ábrelo con el editor de texto del propio panel para ver su contenido.
3. El Clásico: Archivos en la Raíz y en /wp-includes/
Los hackers suelen colocar scripts maliciosos en la raíz de WordPress o en carpetas del sistema.
- En la raíz, busca archivos como
wp-config.php.bak,index.phpcon códigos extraños, o archivos.phpque no pertenezcan al núcleo (comoshell.php,cmd.php). - Entra en la carpeta
wp-includesy busca archivos comoclass-wp-locale.php(a veces lo sustituyen por uno malicioso) o archivos con nombres de funciones de PHP que no suenan a WordPress.
¿Cómo sé si un archivo es legítimo? La clave está en el tamaño y el contenido. Un index.php legítimo de WordPress tiene solo unas pocas líneas. Si ves una línea gigante de código codificado (base64), es malware.
[TIP] No borres archivos a la ligera. Si no estás seguro de si
wp-settings.phpes legítimo, compáralo con la versión oficial de WordPress.org para tu versión. La mayoría de las veces, el malware está en archivos que no existen en la instalación original.
4. Limpia tu Tema Activo (Carpeta /wp-content/themes/tu-tema/)
El malware a menudo se esconde en functions.php de tu tema.
- Ve a
wp-content/themes/tu-tema-activo/. - Descarga el
functions.phpa tu ordenador y ábrelo con un editor de texto (Bloc de notas o Notepad++). - Al final del archivo o al principio, busca código ofuscado (una línea muy larga que empieza con
eval(gzinflate(base64_decode(...)))o similar). - Elimina esa línea y sube el archivo limpio de vuelta, reemplazando el infectado.
Fase 2: Limpiar la Base de Datos (Inyección SQL)
El malware no solo vive en archivos; también se esconde en tu base de datos. Aquí es donde DirectAdmin brilla con su herramienta phpMyAdmin.
1. Entra a phpMyAdmin
- En DirectAdmin, busca "Administrador de Base de Datos MySQL".
- Haz clic en tu base de datos de WordPress (la que empieza con tu usuario, ej.
usuario_wp). - Esto abrirá phpMyAdmin en una pestaña nueva.
2. Busca Inyecciones en las Tablas
El atacante suele inyectar código en las opciones del sitio o en el contenido de los posts.
- Ve a la tabla
wp_options(el prefijo puede ser distinto, ej.wp_). - Busca la fila donde
option_nameessiteurlyhome. Asegúrate de que apuntan a tu dominio real, no a un dominio ruso o chino. - Busca en la misma tabla cualquier
option_nameque contengaeval,base64ogzinflate. Si encuentras algo raro, bórralo.
3. La Tabla de Publicaciones y Comentarios
- Ve a la tabla
wp_posts. - Haz clic en la pestaña "Buscar" (arriba).
- Busca el texto
eval(obase64_decode(. Si aparece en algún post o página, es que está inyectado. - Edita esa entrada y elimina el script malicioso del contenido.
[WARNING] Ten mucho cuidado al borrar filas en la base de datos. Exporta una copia de la base de datos antes de hacer cambios (pestaña "Exportar" en phpMyAdmin). Así, si cometes un error, puedes importarla de nuevo.
Fase 3: Reinstalar el Núcleo de WordPress (La Restauración Quirúrgica)
La forma más segura de eliminar cualquier virus del núcleo es reemplazar todos los archivos del sistema con archivos limpios. No pierdes tus posts ni tus temas, solo "reinstalas" el WordPress.
1. Descarga una Copia Limpia
- Ve a
es.wordpress.orgy descarga el archivo.zipde la misma versión que tienes instalada (o la más reciente, si tu versión es muy vieja).
2. Sube y Reemplaza (Excepto wp-content y wp-config.php)
- Descomprime el
.zipen tu ordenador. - Sube todos los archivos de la carpeta
wordpressa tupublic_htmlusando el Administrador de Archivos de DirectAdmin. - Cuando te pregunte si quieres "Sobrescribir" o "Reemplazar", selecciona SÍ.
- IMPORTANTE: No subas la carpeta
wp-contentque viene en el zip. Solo sube las carpetaswp-admin,wp-includesy los archivos sueltos de la raíz (comowp-login.php,wp-settings.php, etc.).
Este paso elimina cualquier archivo corrupto o hackeado del núcleo y lo reemplaza por uno oficial.
Fase 4: Limpiar Carpeta wp-content (Plugins y Subidas)
Aquí es donde se esconden la mayoría de los scripts maliciosos, especialmente en plugins desactualizados o nulos.
1. Revisa la Carpeta de Subidas (wp-content/uploads)
- Ve a
wp-content/uploads/. - Busca archivos
.phpen esta carpeta. No debería haber ninguno. Si encuentras un.phpaquí, es 99% malware. Bórralo. - Revisa especialmente las carpetas con fechas recientes.
2. Desactiva y Reinstala tus Plugins
No puedes confiar en los plugins que tienes. Un plugin legítimo puede haber sido modificado.
- En tu WordPress (si aún puedes entrar), ve a "Plugins" y desactívalos todos.
- Desde DirectAdmin, renombra la carpeta
wp-content/pluginsaplugins_malware. Esto fuerza a WordPress a desactivar todo. - Crea una carpeta nueva llamada
pluginsvacía. - Entra a tu WordPress. Ahora estará limpio de plugins.
- Ve a "Añadir nuevo" e instala solo los plugins que realmente necesitas, descargándolos del repositorio oficial.
- Actívalos uno a uno y comprueba que tu sitio sigue funcionando.
[TIP] Si usabas un plugin "Premium" descargado de sitios piratas, ese es el foco de la infección. No lo vuelvas a instalar. Busca alternativas gratuitas en el repositorio oficial o paga la licencia.
Fase 5: Endurecer la Seguridad (Prevenir Futuras Infecciones)
Una vez que tu sitio está limpio, no queremos que vuelva a pasar. Aquí tienes las medidas imprescindibles de seguridad WordPress con DirectAdmin.
1. Actualiza Todo (Núcleo, Temas y Plugins)
Es aburrido, pero es la vacuna. Las versiones antiguas tienen agujeros de seguridad conocidos. Mantén todo actualizado.
2. Cambia el Prefijo de la Base de Datos
Esto es avanzado, pero muy útil. En tu wp-config.php, cambia $table_prefix = 'wp_'; por algo como $table_prefix = 'miwp7_';. Deberás renombrar las tablas en phpMyAdmin para que coincidan. Esto confunde a los bots que atacan con consultas SQL predeterminadas.
3. Instala un Plugin de Seguridad
- Wordfence o iThemes Security son excelentes. Configura el firewall y el escaneo de malware programado.
4. Activa la Autenticación de Dos Factores (2FA)
Para tu usuario administrador, activa 2FA. Así, aunque roben tu contraseña, no podrán entrar sin el código de tu móvil.
5. Protege el wp-admin con Contraseña (DirectAdmin)
- En DirectAdmin, busca "Protección de Directorios con Contraseña".
- Selecciona la carpeta
wp-admin. - Crea un usuario y contraseña. Esto añadirá una capa extra de autenticación antes de llegar al login de WordPress.
FAQ: Preguntas Frecuentes (Resolviendo Dudas Comunes)
¿Cuánto tiempo tarda en limpiar un WordPress infectado?
Depende del nivel de infección. Si es solo un archivo, en 30 minutos. Si es una infección profunda en la base de datos y muchos archivos, puede llevarte una tarde entera. Ve con calma.
¿Necesito ser un programador para hacer esto?
No. Con las herramientas visuales de DirectAdmin (Administrador de Archivos y phpMyAdmin) y esta guía, puedes hacerlo. Solo necesitas paciencia y seguir los pasos en orden.
¿Qué pasa si no encuentro el malware?
A veces es muy sofisticado. Si tras seguir todos los pasos el problema persiste, considera contratar un servicio profesional de limpieza. Muchas empresas de hosting ofrecen este servicio por un costo adicional.
¿Y si el malware está en un plugin que no puedo borrar?
Si un plugin está inyectado, lo mejor es borrarlo por completo desde DirectAdmin (eliminar la carpeta del plugin en wp-content/plugins/) y reinstalarlo desde cero desde el repositorio oficial.
¿Por qué me siguen hackeando si ya limpié todo?
Porque no cerraste la puerta de entrada. La causa más común es una contraseña débil en el FTP, en la base de datos o en el panel de administración. Cambia todas las contraseñas y activa 2FA.
¿Qué es eso de "Syspanel"?
Es una alternativa de panel de control como DirectAdmin, pero con una interfaz diferente. Si tu hosting usa Syspanel (antes conocido como HestiaCP), el acceso es a través del puerto 2106 (ej. tudominio.com:2106). El proceso de limpieza es idéntico, solo cambia la apariencia de los botones: encontrarás "Administrador de Archivos" y "phpMyAdmin" en el menú lateral.
Conclusión: Tu WordPress, Más Fuerte que Nunca
Limpiar un WordPress infectado en DirectAdmin es un proceso metódico, pero totalmente realizable. Has aprendido a identificar los síntomas, a limpiar los archivos del núcleo, a purgar la base de datos y a blindar tu instalación para el futuro.
Recuerda la máxima: la prevención es mejor que la cura. Mantén todo actualizado, usa contraseñas robustas y no instales plugins de fuentes dudosas. Tu sitio web es tu activo digital; cuidarlo es una inversión.
Ahora que has llegado hasta aquí, tómate un respiro. Tu sitio está limpio y, con los cambios de seguridad, mucho más difícil de vulnerar. ¡Buen trabajo!
