Cómo eliminar malware de WordPress desde DirectAdmin
Primeros pasos: ¿Qué ha pasado y qué necesito?
Que tu sitio web en WordPress haya sido hackeado o infectado con malware es una experiencia frustrante. Lo primero es no entrar en pánico. Con las herramientas adecuadas y un poco de paciencia, puedes eliminar malware de WordPress desde DirectAdmin y recuperar el control.
Antes de empezar, asegúrate de tener a mano:
- Acceso a DirectAdmin (tu panel de control de hosting).
- Acceso FTP o al administrador de archivos de DirectAdmin.
- Credenciales de la base de datos (usuario y contraseña de MySQL).
- Una copia de seguridad reciente (si no la tienes, prioriza hacerla antes de modificar nada).
- Paciencia: el proceso puede tomar entre 30 minutos y 2 horas, dependiendo del tamaño del sitio.
[WARNING] Si no tienes experiencia editando archivos de WordPress, contacta con tu proveedor de hosting o un profesional. Modificar archivos del sistema puede romper tu sitio si no se hace con cuidado.
Paso 1: Identificar la infección y hacer una copia de seguridad
1.1. Síntomas comunes de un WordPress infectado
Tu sitio puede mostrar uno o varios de estos signos:
- Redirecciones a sitios extraños (como páginas de farmacias, casinos o contenido adulto).
- Anuncios o pop-ups que no pusiste tú.
- El sitio se vuelve muy lento o se cae.
- El código fuente contiene enlaces ocultos o scripts sospechosos.
- Google marca tu sitio como "peligroso" o "engañoso".
- Aparecen usuarios administradores que no creaste.
- Los plugins o el núcleo de WordPress muestran actualizaciones fallidas o corruptas.
1.2. Haz una copia de seguridad completa (¡antes de tocar nada!)
Es el paso más importante. Una copia de seguridad te permite restaurar el sitio si algo sale mal durante la limpieza.
Desde DirectAdmin:
- Inicia sesión en DirectAdmin (normalmente en
tudominio.com:2222). - Ve a "Administrador de archivos".
- Selecciona la carpeta
public_html(o la carpeta donde tengas instalado WordPress). - Haz clic en "Comprimir" y elige formato
.zipo.tar.gz. Esto creará un archivo con todo tu sitio. - Descarga ese archivo a tu ordenador.
Para la base de datos:
- En DirectAdmin, ve a "MySQL Management" o "phpMyAdmin".
- Selecciona la base de datos de tu WordPress.
- Haz clic en "Exportar" y elige el método rápido. Descarga el archivo
.sql.
[TIP] Guarda estos archivos en una carpeta segura en tu ordenador. Si algo falla, podrás restaurar el sitio subiendo de nuevo estos archivos.
Paso 2: Limpiar archivos infectados en DirectAdmin
2.1. Accede al administrador de archivos
Desde DirectAdmin, abre el Administrador de archivos. Es más seguro que FTP porque no necesitas configurar nada extra. Navega hasta la carpeta public_html.
2.2. Busca archivos sospechosos manualmente
Aunque existen herramientas automáticas, una inspección manual es clave. Busca:
- Archivos con nombres extraños: como
wp-admin.php,wp-login.php(en la raíz, no en/wp-admin/),0x.php,shell.php,adminer.php,c99.php,r57.php. - Archivos con fechas de modificación recientes (si no has subido contenido nuevo).
- Carpetas vacías o con nombres aleatorios (como
/tmp/,/cache/,/uploads/con archivos.php). - Archivos con permisos 777 (muy permisivos). Los archivos normales deben tener 644 o 755.
2.3. Elimina archivos maliciosos
Selecciona los archivos sospechosos y haz clic en "Eliminar". No borres carpetas de WordPress como wp-content, wp-includes o wp-admin completas, a menos que sepas que están comprometidas.
[WARNING] No elimines archivos que no reconozcas sin antes consultar con tu desarrollador o hacer una búsqueda rápida en Google. Algunos plugins legítimos usan nombres poco comunes.
2.4. Revisa el archivo .htaccess
El archivo .htaccess es un objetivo común para los hackers. Pueden añadir reglas de redirección maliciosas.
-
En el Administrador de archivos, busca el archivo
.htaccessen la raíz depublic_html. -
Ábrelo con el editor de texto.
-
Busca líneas que redirijan a sitios externos, como:
RewriteRule ^(.*)$ http://sitio-malicioso.com/$1 [R=301,L] -
Si ves algo así, elimina esas líneas. También puedes reemplazar todo el contenido con el
.htaccesspor defecto de WordPress:# 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
2.5. Limpia la carpeta wp-content/uploads
Los hackers suelen ocultar scripts maliciosos en la carpeta de subidas.
- Navega a
public_html/wp-content/uploads/. - Busca archivos
.phpdentro de las carpetas de año/mes (ej:2023/01/). Los archivos legítimos aquí son imágenes, PDFs, etc. Nunca debería haber un archivo.php. - Elimina cualquier archivo
.phpque encuentres.
Paso 3: Limpiar la base de datos de WordPress
El malware también puede esconderse en la base de datos, inyectando scripts en entradas, páginas o widgets.
3.1. Accede a phpMyAdmin desde DirectAdmin
- En DirectAdmin, busca "phpMyAdmin" o "MySQL Management".
- Selecciona tu base de datos de WordPress.
- Haz clic en la pestaña "SQL" (o "Consultas").
3.2. Busca contenido malicioso en wp_posts
Ejecuta esta consulta SQL para buscar scripts sospechosos en las entradas y páginas:
SELECT ID, post_title, post_content FROM wp_posts WHERE post_content LIKE '%<script%' OR post_content LIKE '%eval(%' OR post_content LIKE '%base64_decode%';
Si ves resultados que no reconoces, puedes eliminarlos o editarlos. Para eliminar entradas maliciosas:
DELETE FROM wp_posts WHERE ID = [ID_del_post];
3.3. Revisa las opciones del sitio (wp_options)
Los hackers pueden modificar opciones como la URL del sitio o añadir scripts en widgets.
SELECT * FROM wp_options WHERE option_name LIKE '%malware%' OR option_value LIKE '%<script%';
Si encuentras algo, elimina la fila o edita el valor.
3.4. Busca usuarios administradores extraños
SELECT * FROM wp_users;
Si ves usuarios que no creaste (como admin2, support, etc.), elimínalos:
DELETE FROM wp_users WHERE user_login = 'nombre_del_usuario';
Luego, elimina también sus metadatos:
DELETE FROM wp_usermeta WHERE user_id = [ID_del_usuario];
[INFO] Recuerda que las tablas de WordPress pueden tener prefijos diferentes (ej:
wp_,wp2_,blog_). Ajusta las consultas según tu prefijo.
Paso 4: Reforzar la seguridad de WordPress
Una vez eliminado el malware, es vital cerrar las puertas por donde entró.
4.1. Actualiza todo
- WordPress: Ve a
Escritorio > Actualizacionesy actualiza el núcleo. - Plugins y temas: Actualiza todos. Si algún plugin o tema está abandonado (sin actualizaciones en más de 2 años), elimínalo.
- Cambia contraseñas: Cambia la contraseña de tu administrador de WordPress, de la base de datos (MySQL) y de tu cuenta de hosting (DirectAdmin).
4.2. Instala un plugin de seguridad
Recomiendo uno ligero y efectivo como Wordfence o Sucuri Security. Escanea tu sitio de nuevo después de la limpieza para asegurarte de que no quedan rastros.
4.3. Revisa los permisos de archivos
Desde DirectAdmin, en el Administrador de archivos, selecciona toda la carpeta public_html y haz clic en "Cambiar permisos". Establece:
- Carpetas: 755
- Archivos: 644
- Archivo
wp-config.php: 600 (solo lectura para el propietario)
4.4. Desactiva la edición de archivos desde el panel de WordPress
Añade esta línea al archivo wp-config.php (justo antes de /* That's all, stop editing! */):
define('DISALLOW_FILE_EDIT', true);
Esto evita que los hackers modifiquen archivos de plugins/temas desde el panel.
Paso 5: Verificación final y monitoreo
5.1. Escanea tu sitio con herramientas externas
Usa herramientas gratuitas como:
- Sucuri SiteCheck (sucuri.net)
- Quttera (quttera.com)
- Google Safe Browsing (transparencyreport.google.com/safe-browsing)
Si alguna detecta algo, repite los pasos anteriores.
5.2. Configura un monitoreo continuo
-
Activa los logs de errores de WordPress en
wp-config.php:define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); -
Revisa el archivo
wp-content/debug.logperiódicamente.
5.3. Si usas Syspanel (HestiaCP)
Si tu hosting usa Syspanel (el antiguo HestiaCP), el acceso a la base de datos y archivos es similar. El puerto de acceso suele ser el 2106 (ej: tudominio.com:2106). Allí encontrarás las mismas herramientas: Administrador de archivos, phpMyAdmin, etc.
[TIP] Después de limpiar, cambia la clave de seguridad de WordPress. Ve a
Ajustes > Generalesy modifica las "Claves de seguridad" (o usa un generador online). Esto invalida cualquier cookie de sesión robada.
Preguntas frecuentes (FAQ)
¿Cuánto tiempo tarda en limpiarse un WordPress infectado?
Depende del tamaño del sitio y del tipo de malware. Con esta guía, puedes tardar entre 30 minutos y 2 horas. Si es una infección masiva, puede llevar más tiempo.
¿Puedo usar solo plugins de seguridad sin tocar archivos?
Los plugins ayudan, pero no siempre eliminan todo el malware. La limpieza manual desde DirectAdmin es más profunda y efectiva.
¿Qué hago si después de limpiar el sitio sigue redirigiendo?
Revisa el archivo .htaccess nuevamente. También verifica si hay redirecciones a nivel de servidor (contacta a tu hosting). A veces el malware se esconde en la carpeta wp-includes.
¿Es necesario cambiar el hosting después de una infección?
No siempre, pero si el servidor está comprometido (varios sitios infectados), considera migrar a un hosting más seguro. Pregunta a tu proveedor si tienen protección contra malware.
¿Cómo evito que vuelva a pasar?
- Mantén todo actualizado.
- Usa contraseñas fuertes.
- Instala un firewall (como Cloudflare).
- Limita los intentos de inicio de sesión.
- No uses temas o plugins nulled (pirateados).
Conclusión
Eliminar malware de WordPress desde DirectAdmin es un proceso que requiere atención al detalle, pero es totalmente factible para cualquier usuario con algo de paciencia. Recuerda: la prevención es la mejor defensa. Después de limpiar WordPress infectado, dedica tiempo a reforzar la seguridad WordPress y monitorear tu sitio regularmente.
Si en algún momento te sientes abrumado, no dudes en contactar a tu proveedor de hosting o a un profesional. Tu sitio web es tu carta de presentación en internet, vale la pena mantenerlo sano y seguro.
[INFO] Guarda esta guía en tus favoritos. La necesitarás si vuelves a enfrentarte a un ataque. Y recuerda: siempre, siempre, haz una copia de seguridad antes de cualquier cambio.
