Si tienes WP File Manager instalado, lo que necesitas hacer hoy son tres cosas: comprobar si alguien lo ha usado contra ti, quitarlo, y asegurarte antes de quitarlo de que no te quedas sin forma de tocar tus archivos. Es un plugin muy útil y muy cómodo, y precisamente por eso es de los que más webs ha tumbado en España. Este artículo va de cerrar esa puerta sin quedarte fuera de tu propia casa.
Aviso para tranquilizar: tener el plugin instalado no significa que estés comprometido. Significa que tienes un riesgo evitable que puedes retirar en veinte minutos.
Por qué un gestor de archivos dentro de WordPress es tan goloso para un atacante
Piensa en qué hace el plugin: te da, desde el navegador y sin salir del escritorio de WordPress, la capacidad de ver, editar, subir, descargar, mover, comprimir y borrar cualquier archivo de tu alojamiento. Es exactamente lo que un atacante quiere conseguir cuando entra en una web. El plugin se lo regala hecho.
Eso convierte cualquier fallo del plugin en un fallo de máxima gravedad. En un plugin de formularios, un error acaba en un correo falso; en un gestor de archivos, acaba en un PHP ajeno dentro de tu servidor, que es la definición de puerta trasera. Y hay un agravante: estos plugins incluyen una librería de terceros (elFinder) con su propio «conector» PHP. Si ese conector queda accesible por su ruta directa sin comprobar quién eres, el atacante ni siquiera necesita una contraseña.
Es lo que ocurrió en 2020: se publicó un fallo que permitía subir un archivo sin estar identificado, y en horas había campañas automatizadas rastreando internet en busca de esa ruta. El plugin se corrigió, pero el patrón se repite: «gestor de archivos + acceso web + un fallo cualquiera» siempre será catastrófico.
Es el mismo criterio que aplico al resto de plugins con permisos amplios en la guía sobre vulnerabilidades en plugins de WordPress y cómo saber si te afectan: prioriza por lo que el fallo permite hacer, no por lo grave que suene el aviso.
Cómo saber si lo tienes instalado, aunque no lo instalaras tú
Es habitual encontrarlo en webs cuyo dueño jura no haberlo instalado. Las explicaciones normales: lo puso la agencia para una migración y se olvidó de quitarlo, lo instaló el soporte del hosting, o lo instaló el atacante para volver a entrar más adelante.
Comprobaciones, de la más rápida a la más fiable:
- Plugins → Plugins instalados y busca «file manager». Mira también los desactivados. Los nombres habituales son WP File Manager, File Manager Advanced, Filester o similares.
- Mira el menú lateral del escritorio: si hay una entrada tipo «WP File Manager», está activo.
- Mira el disco directamente, que es lo único que no se puede falsear desde el escritorio. Por SFTP o con el gestor de archivos de tu hosting, entra en
/wp-content/plugins/y busca carpetas comowp-file-managerofile-manager-advanced. Si la carpeta está y el plugin no aparece en la lista de WordPress, mala señal. - Con acceso SSH:
wp plugin list --fields=name,status,versionyls -la wp-content/plugins/. La fecha de modificación de la carpeta te dice cuándo apareció, y ese dato vale oro para reconstruir qué pasó.
Un matiz importante: un plugin desactivado no lo carga WordPress, así que normalmente no se ejecuta. Pero sus archivos siguen en el servidor, y un PHP mal escrito que no comprueba si se le llama desde WordPress se puede invocar por su ruta directa. Desactivar no es quitar.
Qué buscar si sospechas que ya lo han usado contra ti
Antes de borrar nada, mira. Si borras primero, pierdes las pistas y no sabrás si además te dejaron algo.
1. La carpeta donde aterrizan las subidas
El gestor deja los archivos que se suben a través de él dentro de su propia estructura, típicamente en /wp-content/plugins/wp-file-manager/lib/files/. En una instalación limpia y sin uso, esa carpeta está vacía o casi. Si encuentras ahí archivos .php con nombres que imitan a los del propio plugin o a los de WordPress, tienes un problema y ya no es una revisión de rutina.
2. Los registros de acceso del servidor
Los logs del servidor web guardan cada petición. Búscalos en cPanel, en Métricas → Accesos sin procesar, o en /home/tuusuario/logs/, y busca peticiones (sobre todo POST) hacia rutas dentro del plugin, del estilo /wp-content/plugins/wp-file-manager/lib/php/. Con SSH:
grep -i "wp-file-manager" /home/tuusuario/logs/tudominio.com-ssl_log | tail -50
Una ristra de POST desde direcciones IP que no son la tuya, con respuesta 200, es la firma clásica del ataque automatizado. Que aparezcan peticiones con respuesta 404 o 403 es mucho menos preocupante: significa que llamaron a la puerta y no se abrió.
3. Archivos nuevos por toda la instalación
Si el gestor se usó contra ti, lo normal es que dejaran más de un archivo repartido. Con SSH, esto te da los ficheros PHP modificados en los últimos treinta días:
find /home/tuusuario/public_html -name "*.php" -mtime -30 -ls
Y estos dos son los que casi siempre cantan, porque en esas carpetas no debería haber PHP en absoluto:
find wp-content/uploads -name "*.php"
ls -la wp-content/mu-plugins/
Si aparecen resultados, contrástalos con lo que explico sobre los plugins que suben archivos a uploads y cómo acaban convertidos en puertas traseras: el patrón de nombres y de ubicación es el mismo.
4. Comportamiento visible desde fuera
Si tu web manda a otro sitio a los visitantes que llegan desde Google, o solo lo hace en el móvil, el gestor de archivos pudo ser la entrada y la redirección es la consecuencia. Para localizar el punto exacto desde el que se lanza, sigue el método del artículo sobre qué hacer cuando la web redirige a otra página.
Cómo quitarlo sin perder el acceso a tus archivos
Aquí está la trampa que hace que mucha gente no lo quite: lo usa como única forma de tocar archivos. Así que el orden importa.
- Primero consigue una vía alternativa y compruébala. Pide a tu hosting los datos de SFTP (usuario, servidor, puerto 22) o entra en el gestor de archivos del panel (cPanel, Plesk, DirectAdmin) y navega hasta
public_html. Hasta que no hayas entrado de verdad por esa vía, no toques el plugin. - Haz copia de seguridad completa (archivos y base de datos) y descárgala.
- Desactiva y borra el plugin en Plugins → Plugins instalados. Usa la opción de borrar, no te limites a desactivar.
- Verifica en el disco que la carpeta
/wp-content/plugins/wp-file-manager/ha desaparecido: a veces el borrado falla por permisos y deja restos. - Si no puedes entrar al escritorio, renombra la carpeta por SFTP (a
wp-file-manager-OFF): WordPress deja de cargarlo al instante. Es un parche; después bórrala.
Un gestor de archivos no aporta nada a la parte pública de la web, así que al quitarlo no se rompe nada.
Alternativas: SFTP, el gestor del hosting y accesos temporales
Todo lo que hacías con el plugin lo puedes hacer mejor y sin exponerlo en la web:
- SFTP con un cliente como FileZilla o WinSCP. Insiste en SFTP (sobre SSH, puerto 22) o FTPS; el FTP clásico manda la contraseña en claro y hay hostings que ya lo tienen desactivado, con razón.
- El gestor de archivos del panel del hosting. Hace lo mismo que el plugin, pero vive detrás del login del panel, no detrás del login de WordPress, que es el que atacan por fuerza bruta todos los días.
- SSH y WP-CLI si tu plan lo incluye. Es la vía más rápida para lo que hace un profesional, y muchos hostings españoles lo ofrecen aunque no lo anuncien: pregunta.
- Accesos temporales para terceros. Cuando una agencia necesite tocar archivos, dale una cuenta FTP propia limitada a la carpeta que necesite y bórrala al terminar. Nunca compartas la tuya.
Y de paso, desactiva el editor de código integrado de WordPress (Apariencia → Editor de archivos de tema) añadiendo en wp-config.php la línea define('DISALLOW_FILE_EDIT', true);. Así, quien entre en tu escritorio no podrá editar código desde el navegador.
Si lo necesitas sí o sí: cómo limitar quién puede usarlo
Hay escenarios legítimos: un hosting sin SFTP, un cliente que solo sabe manejar el escritorio de WordPress, una migración concreta. Si es tu caso, sé honesto contigo mismo y reduce la exposición al mínimo:
- Instálalo solo mientras dure la tarea y bórralo al acabar. Es la medida que más reduce el riesgo y no cuesta dinero.
- Mantenlo actualizado el mismo día que salga la actualización. Este plugin no es de los que pueden esperar al mantenimiento mensual.
- Restringe por rol en los ajustes del plugin, de modo que solo lo vean los administradores, y revisa que no haya administradores de más.
- Protege
/wp-admin/con contraseña a nivel de servidor (en cPanel, Privacidad del directorio; en nginx,auth_basic). Añade una barrera que el atacante automatizado no supera, aunque encuentre un fallo en el plugin. - Verificación en dos pasos para todos los administradores, sin excepciones.
Y una advertencia concreta: no lo descargues nunca de una web de plugins «nulled» ni de un repositorio raro. Un gestor de archivos manipulado es el regalo perfecto para quien te lo entrega. Si tienes dudas sobre el origen de algún plugin de tu web, revisa cómo se detecta esto en la guía sobre cómo saber si un plugin nulled tiene una puerta trasera.
Qué revisar después: usuarios, tareas programadas y ficheros nuevos en uploads
Quitar el plugin cierra la vía de entrada, pero no deshace lo que ya hubieran hecho. Repasa esta lista corta:
- Usuarios → Todos, filtro Administrador. Borra los que no reconozcas y cambia la contraseña de los que sí.
- Ajustes → Generales: que el correo del administrador sea tuyo y que Cualquiera puede registrarse esté desmarcado si no tienes tienda ni área de clientes.
- Tareas programadas. Instala temporalmente WP Crontrol y revisa la lista, o con SSH
wp cron event list. Una tarea con nombre inventado que se ejecuta cada hora es un mecanismo de reinfección clásico. - Claves de seguridad. Genera nuevas salts en
wp-config.php: cierra todas las sesiones abiertas, incluida la del atacante. - Contraseñas de FTP, base de datos y panel del hosting. Si llegaron a leer
wp-config.php, tienen las credenciales de tu base de datos.
La frontera está clara: si encuentras archivos que reaparecen después de borrarlos, administradores que vuelven a crearse solos, o el hosting sigue avisando de malware, ya no estás haciendo mantenimiento sino limpiando una web comprometida, y ahí hace falta alguien que sepa buscar puertas traseras. Si no aparece nada de eso y el plugin estaba actualizado, lo más probable es que no haya pasado nada y no necesites pagar a nadie.
Para salir de dudas sin instalar más cosas: si lo has tenido instalado, comprueba gratis tu web con PathScan antes de darlo por cerrado. Analiza tu dominio desde fuera, sin registro y sin tocar tu instalación, y te dice qué está viendo un visitante (o un buscador) que tú no ves desde el escritorio.
Seguir leyendo en esta sección
- Elementor y sus complementos: cómo saber si tienes una versión vulnerable
- LiteSpeed Cache: cómo saber si tu versión es vulnerable y qué revisar después
- Duplicator y All-in-One WP Migration: las copias que te dejas en el servidor
- WPBakery viene con mi tema y no puedo actualizarlo: qué hacer
- ¿Es vulnerable mi WooCommerce? Cómo comprobarlo y qué revisar en la tienda
- Contact Form 7: cómo saber si tu formulario es un agujero de seguridad
Ver todo en Avisos de plugins concretos → · Mapa completo del sitio