Backdoor en WordPress: cómo detectarlo y eliminarlo

Recupera tu WordPress o PrestaShop hackeado — Servicio profesional de limpieza de malware, diagnóstico gratuito y respuesta en menos de 24 horas. ManuelFolgar.com

Qué es un backdoor en WordPress y por qué es tan peligroso

Un backdoor en WordPress es un acceso oculto que un atacante deja en tu sitio para mantener el control incluso después de que hayas cambiado las contraseñas o cerrado la brecha inicial. En mi experiencia analizando cientos de webs comprometidas, el backdoor es el mayor problema: mientras tú crees que has «limpiado» el sitio, el atacante sigue dentro.

Estos accesos pueden ser archivos PHP maliciosos, cuentas de usuario administrativas secretas, o modificaciones en plugins y temas legítimos. Lo más peligroso es que muchos propietarios nunca los detectan porque un backdoor bien programado deja una huella muy pequeña en el servidor.

Diferencia entre acceso y backdoor

Es crucial entender que un backdoor no es lo mismo que un ataque único. Un ciberdelincuente puede entrar por una vulnerabilidad en un plugin desactualizado (eso es el ataque inicial), pero luego instala un backdoor para regresar cuando quiera, aunque cierres esa vulnerabilidad. Por eso detectar y eliminar backdoors es fundamental: es la diferencia entre tener un incidente de seguridad o una infección permanente.

Tipos de backdoors más comunes en WordPress

Webshells y shells de administración

Las webshells son archivos PHP que el atacante sube a tu servidor, normalmente en carpetas como /wp-content/uploads/ o /wp-content/plugins/. Una vez en el servidor, el atacante accede mediante un navegador a una URL como tudominio.com/wp-content/uploads/shell.php y obtiene una interfaz desde la que ejecutar comandos.

Cuando analizo un servidor comprometido, busco siempre archivos PHP nuevos o sospechosos en estas ubicaciones. Los nombres típicos que ves son: admin.php, wp-admin.php, index.php, o nombres aleatorios como a1b2c3.php. La clave es comparar la fecha de modificación: si un archivo se creó después de que empezó el problema, es probablemente un backdoor.

Cuentas de usuario administrativas fantasma

Un atacante puede crear un usuario de WordPress con privilegios de administrador bajo un nombre inocuo como «admin2», «wordpress», o «support». Esta cuenta tiene todas las credenciales para acceder al panel de control, y tú nunca la verías si no revisas la lista de usuarios regularmente.

Lo grave es que desde esa cuenta pueden modificar el tema, editar posts, instalar plugins maliciosos o cambiar la configuración de seguridad. Todo queda registrado como si fueras tú quien lo hizo.

Modificaciones en plugins y temas legítimos

En lugar de crear archivos nuevos (que pueden ser detectados), un atacante experto modifica el código de un plugin o tema que ya está instalado. Añade unas líneas de código malicioso al archivo functions.php del tema o a un archivo principal del plugin. Esto es mucho más difícil de notar porque el archivo ya existe y parece legítimo.

He visto casos donde el backdoor estaba escondido en las últimas líneas de wp-config.php o incluido como una función que se ejecuta silenciosamente cada vez que se carga el sitio.

Hooks y filtros maliciosos

WordPress permite que los plugins se «enganchen» a ciertas acciones mediante hooks y filtros. Un atacante puede añadir código que se ejecute automáticamente cada vez que ocurre un evento (login de usuario, publicación de post, etc.). Este tipo de backdoor es invisible porque no hay archivo separado, solo código malicioso integrado en la lógica de WordPress.

Señales de alerta: cómo saber si tienes un backdoor

Cambios en archivos sin motivo aparente

Si recibiste una alerta de tu proveedor de hosting sobre archivos modificados en fechas en las que tú no hiciste nada, ese es un signo claro de compromiso. También puedes revisar los archivos de log del servidor (si tienes acceso a ellos) para ver qué se ha modificado recientemente.

Usuarios sospechosos en la base de datos

Accede a tu panel de WordPress como administrador legítimo y ve a Usuarios. ¿Hay alguno que no reconoces? ¿Alguno creado hace poco? Aunque parezca absurdo, muchos propietarios nunca revisan esta sección. Un usuario con nombre genérico como «admin2» o «wordpress» creado hace 3 meses cuando tu sitio fue hackeado es casi seguramente un backdoor.

Tráfico inusual o peticiones HTTP extrañas

Si tu hosting te muestra un pico de consumo de ancho de banda o CPU sin razón, y no tienes más visitantes, es posible que el backdoor esté minando criptomonedas o enviando spam. Revisa los logs de acceso (access.log) buscando peticiones POST sospechosas a archivos ocultos.

Inyección de código en la portada o emails automáticos

Un síntoma visible de un backdoor activo es que tu sitio empieza a redirigir a usuarios a webs de malware, o aparecen anuncios falsos. También puedes recibir reportes de Google diciendo que tu sitio está infectado, o que está siendo usado para enviar spam.

Comportamiento lento o errores 500 repentinos

Un servidor comprometido con un backdoor activo funcionando en segundo plano puede ralentizarse significativamente. Si tu WordPress que antes iba rápido ahora tarda minutos en cargar, y sabes que no has añadido nada nuevo, investiga.

Pasos para detectar un backdoor en WordPress

Paso 1: Usa herramientas de escaneo automatizadas

Comienza con un escaneo superficial usando herramientas online. Sucuri SiteCheck es gratuito y detecta malware conocido. También puedes usar VirusTotal para analizar archivos específicos que sospechas que son maliciosos.

Para WordPress específicamente, instala un plugin como Wordfence o MalCare. Estos escanean tu servidor en busca de patrones maliciosos, archivos modificados y vulnerabilidades conocidas. Wordfence incluso tiene una versión CLI (línea de comandos) que puedo usar directamente en el servidor.

Paso 2: Revisa manualmente los directorios clave

Accede a tu servidor por SFTP o por el gestor de archivos de tu hosting. Navega a estas ubicaciones y busca archivos sospechosos:

  • /wp-content/uploads/ – Aquí no debería haber archivos PHP, solo imágenes y documentos
  • /wp-content/plugins/ – Busca plugins que no reconozcas o que tengan nombres aleatorios
  • /wp-admin/ – Revisa que solo contenga archivos estándar de WordPress
  • Raíz del sitio (/) – Archivos PHP sueltos como index.php, shell.php, etc.
  • /wp-includes/ – Modificaciones en archivos core de WordPress

Usa la fecha de modificación como guía: si un archivo se modificó después de la fecha en que empezó el problema, es sospechoso. Descárgalo y analízalo en VirusTotal.

Paso 3: Examina la lista de usuarios de WordPress

En el panel de administrador, ve a Usuarios y anota TODOS los usuarios existentes. Luego accede a tu base de datos (mediante phpMyAdmin si tu hosting lo proporciona) y ejecuta esta consulta SQL:

SELECT * FROM wp_users WHERE user_registered > ‘2024-01-01’;

Reemplaza la fecha por la fecha aproximada en que comenzaron los problemas. Si aparecen usuarios que no reconoces, especialmente con rol de administrador, son casi seguramente backdoors.

Paso 4: Analiza los archivos modificados recientemente

En la línea de comandos del servidor (si tienes acceso SSH), usa:

find /home/usuario/public_html -type f -name «*.php» -mtime -30

Esto te mostrará todos los archivos PHP modificados en los últimos 30 días. Revisa cada uno: ¿son cambios que hiciste tú? ¿Actualizaciones de plugins? ¿O código extraño?

Paso 5: Busca código malicioso en theme functions.php

Dirígete a Apariencia > Editor de temas (o accede por SFTP a /wp-content/themes/tu-theme/functions.php). Busca líneas sospechosas como:

  • eval() o base64_decode() – Estas funciones ejecutan código dinámico
  • system() o exec() – Ejecutan comandos del sistema operativo
  • URLs extrañas o dominios que no reconoces
  • Bloques de código al final del archivo que parece añadido después

Si encuentras algo así, es un backdoor. Anótalo pero no lo borres aún, porque necesitarás verificarlo primero.

Paso 6: Revisa la configuración de permisos y .htaccess

Un atacante a veces modifica el archivo .htaccess para meter redireccionamientos o para permitir que se ejecuten archivos PHP en ubicaciones donde normalmente no se deberían ejecutar (como /uploads/). Busca líneas como:

AddType application/x-httpd-php .jpg .png

Esto permitiría ejecutar PHP dentro de archivos «imagen», lo que es claramente malicioso.

Cómo eliminar un backdoor correctamente

No borres todo de golpe

Este es el error más común: identificas un backdoor y lo eliminas inmediatamente. Pero si hay múltiples backdoors y solo eliminas uno, los otros seguirán activos. Por eso, antes de eliminar nada, haz un inventario completo de qué está comprometido.

Realiza un backup limpio antes de nada

Aunque parezca contradictorio, haz un backup de tu base de datos y archivos en estado comprometido. Guárdalo en un lugar seguro separado. Así, si necesitas analizar el backdoor más adelante o verificar si has eliminado todo, tendrás una copia.

Elimina usuarios administrativos fantasma

Si identificaste usuarios sospechosos en la base de datos, ve a Usuarios > Eliminar en WordPress. Si eliminas de forma normal y el usuario ha publicado contenido, WordPress te pedirá qué hacer con esos posts (atribuirlos a otro usuario o borrarlos). Elige lo que corresponda.

Si prefieres usar SQL directamente:

DELETE FROM wp_users WHERE ID = [ID del usuario malicioso];

Borra archivos maliciosos identificados

Accede por SFTP y elimina cada archivo que identificaste como backdoor. Si es un archivo PHP suelto en /uploads/ o en la raíz, simplemente bórralo. Si es un plugin completo que resultó ser malicioso, bórralo desde Plugins > Plugins instalados o elimina su carpeta por SFTP.

Limpia el código inyectado en archivos legítimos

Si encontraste código malicioso dentro de un archivo legítimo (como functions.php), edítalo manualmente y borra SOLO las líneas malicioso. Ten extremo cuidado: si borras una llave o paréntesis por error, romperás tu sitio.

Una forma más segura es descargar el archivo limpio de WordPress.org (para archivos core) o reinstalar el plugin/tema desde cero después de haberlo limpiado.

Resetea el archivo .htaccess

Si encontraste modificaciones maliciosas en .htaccess, lo más seguro es eliminarlo completamente. WordPress regenerará uno nuevo cuando lo necesite (basado en tu configuración de enlaces permanentes en Ajustes > Enlaces permanentes). Solo click en guardar y se recrea.

Cambia TODAS las contraseñas

Una vez hayas eliminado los backdoors visibles, cambia:

  • Contraseña de todos los usuarios de WordPress (ve a Usuarios y edita cada uno)
  • Contraseña FTP/SFTP de tu hosting
  • Contraseña del panel de control de tu hosting (cPanel, Plesk, etc.)
  • Contraseña de acceso a la base de datos (en wp-config.php)
  • Contraseña raíz del servidor si tienes acceso SSH

Un atacante que tenía un backdoor probablemente también capturó credenciales. Cambiar contraseñas sin eliminar el backdoor primero es inútil, pero después de eliminarlo, es esencial.

Hardening: cómo evitar que vuelva a pasar

Protege el acceso a WordPress

Implementa autenticación de dos factores (2FA) en todos los usuarios administrativos. Plugins como Wordfence o Google Authenticator permiten añadir una segunda confirmación al login. Un atacante que tenga tu contraseña seguirá sin poder entrar si no tiene acceso a tu teléfono.

También limita los intentos de login fallidos. OWASP recomienda bloquear después de 5-10 intentos fallidos. Wordfence hace esto automáticamente.

Deshabilita la edición de archivos desde WordPress

Añade esta línea al final de tu wp-config.php:

define(‘DISALLOW_FILE_EDIT’, true);

Esto desactiva el editor de temas y plugins en el panel de administrador, evitando que un atacante que comprometa tu cuenta pueda inyectar código directamente.

Configuración de permisos correcta

Los permisos de carpetas deben ser:

  • Carpetas: 755 (lectura y ejecución para todos, escritura solo para propietario)
  • Archivos: 644 (lectura para todos, escritura solo para propietario)
  • Excepto /wp-content/uploads/ que puede ser 775 si es necesario para que el servidor web escriba

Esto impide que un atacante escriba archivos en ubicaciones críticas aunque consiga acceso al servidor web.

Actualiza todo constantemente

La mayoría de backdoors entran a través de vulnerabilidades en plugins y temas desactualizados. Revisa Panel de control > Actualizaciones cada semana. Si ves que tienes plugins sin actualizar, hazlo inmediatamente. Si un plugin no se actualiza hace meses, desinstálalo y busca una alternativa.

Usa un plugin de seguridad profesional

Herramientas como Wordfence (freemium) o MalCare (de pago) monitorean tu sitio 24/7 en busca de cambios sospechosos, intentos de acceso, y malware. Son tu mejor defensa después de la limpieza.

Implementa HSTS y CSP

Estos headers HTTP añaden capas extra de seguridad. HSTS (HTTP Strict Transport Security) fuerza HTTPS. CSP (Content Security Policy) previene que se inyecte código externo. Puedes añadirlos en .htaccess o mediante un plugin de seguridad.

Cuándo necesitas ayuda profesional

Si después de seguir estos pasos aún encuentras códigos maliciosos que no entiendes, o si el sitio sigue comportándose mal, es hora de contactar con un profesional. La limpieza manual de backdoors requiere experiencia: un error pequeño puede significar dejar abierta una puerta atrás para que el atacante vuelva a entrar.

También si tu sitio fue comprometido hace meses y no sabes exactamente cuándo empezó, es probable que haya múltiples backdoors en capas. En esos casos, una auditoría profesional es más rápido y seguro que intentar limpiarlo todo tú solo.

Resumen y próximos pasos

Un backdoor en WordPress es una amenaza seria, pero es detectable y eliminable si sabes qué buscar. Los pasos clave son: usar herramientas automatizadas, revisar manualmente directorios y usuarios, analizar código sospechoso, eliminar todo lo malicioso de forma metódica, cambiar contraseñas, y finalmente, hardening del sitio para que no vuelva a pasar.

Si después de revisar todo aún tienes dudas, o si tu sitio fue comprometido hace poco y necesitas estar 100% seguro de que está limpio, contacta con ManuelFolgar.com. Hago auditorías de seguridad completas, limpieza profesional de malware y hardening de WordPress y PrestaShop. Una auditoría me deja tranquilo de que tu sitio está realmente limpio.