NexaTech Studio

Guía técnica · NexaTech

Hay un administrador desconocido en mi WordPress que no he creado

Qué hacer si aparece un administrador que nadie ha creado: cómo verificarlo en la base de datos, borrarlo sin perder contenido y cerrar la puerta de entrada.

admin

·

29 de octubre de 2026

Respuesta corta: si aparece un administrador desconocido en tu WordPress (uno que nadie ha creado), trátalo como un acceso no autorizado hasta que demuestres lo contrario. Anota sus datos, confirma que no es de tu hosting ni de un proveedor, y bórralo reasignando su contenido. Después cambia todas las contraseñas, cierra sesiones, revisa si el registro está abierto como administrador y busca por dónde entraron, porque un administrador puede haber dejado instalado cualquier cosa.

Un administrador en WordPress puede instalar plugins, editar código, exportar datos y crear más usuarios (lo detalla la documentación oficial de roles y capacidades). Por eso es lo primero que crea un atacante cuando consigue entrar. Esta guía forma parte de nuestra guía sobre qué hacer con un WordPress hackeado.

Por qué aparece un administrador que no has creado

Un administrador desconocido puede tener causas inocentes y causas que no lo son. Las inocentes, primero, para descartarlas:

  • Tu hosting o un servicio gestionado (copias, seguridad, migraciones) crea un usuario de soporte.
  • Un antiguo proveedor, diseñador o becario al que nadie quitó el acceso.
  • Alguien del equipo del cliente que se creó una cuenta con un correo personal.

Y las que no lo son:

  • Un plugin vulnerable que permite a cualquiera registrarse o subir su rol a administrador. Es un tipo de fallo muy frecuente en los avisos de seguridad de WordPress. Mira cómo saber si tus plugins son vulnerables.
  • Una contraseña filtrada de otro administrador, usada para crear una cuenta nueva y tener una segunda puerta.
  • El registro abierto con rol de administrador: el atacante cambia dos opciones y se registra como uno más.
  • Una puerta trasera en un fichero PHP que vuelve a crear el usuario aunque lo borres.

Cómo saber si te pasa

1. Lista los administradores

wp user list --role=administrator --fields=ID,user_login,user_email,user_registered
wp user list --fields=ID,user_login,user_email,user_registered,roles --orderby=user_registered --order=DESC --number=20

El segundo comando enseña los 20 usuarios más recientes con su rol. Fíjate en fechas de registro que no cuadran, correos de dominios desechables o nombres genéricos como support, wpadmin o admin2.

2. Compara con la base de datos

Un atacante puede esconder su usuario de la pantalla de Usuarios con unas líneas de código. La base de datos no miente:

wp db query "SELECT u.ID, u.user_login, u.user_email, u.user_registered, m.meta_key FROM wp_users u JOIN wp_usermeta m ON m.user_id = u.ID WHERE m.meta_key LIKE '%capabilities' AND (m.meta_value LIKE '%administrator%' OR m.meta_value LIKE '%manage_options%' OR m.meta_value LIKE '%edit_users%') ORDER BY u.user_registered DESC"

Cambia wp_ por tu prefijo (wp db prefix). La consulta también saca usuarios que no tienen el rol de administrador pero sí capacidades sueltas de administrador, otra forma de pasar desapercibido. Si aquí salen más usuarios que en el escritorio de WordPress, alguien los está ocultando:

grep -rln "pre_user_query\|users_list_table_query_args" wp-content/themes wp-content/mu-plugins wp-content/plugins

Algún plugin legítimo usa esos ganchos; lo raro es encontrarlos en el tema, en mu-plugins o en un plugin que no reconoces. Si la web es multisitio, revisa también wp super-admin list.

3. Revisa el registro y las contraseñas de aplicación

wp option get users_can_register
wp option get default_role
wp user application-password list admin

Si users_can_register es 1 y default_role es administrator, cualquiera puede registrarse como administrador. Las contraseñas de aplicación permiten entrar por la API sin pasar por el login; repite el último comando con cada administrador.

4. Busca cuándo y cómo se creó

Con la fecha de user_registered (está en hora UTC; el log del servidor puede estar en hora local), busca en los logs de acceso qué peticiones hubo en esos minutos:

grep "29/Oct/2026:10:4" access.log | grep -E "POST|wp-login|wp-json|admin-ajax|xmlrpc"

Una petición POST a admin-ajax.php o a la API de un plugin concreto justo antes del alta suele señalar el plugin vulnerable.

Qué hacer con un administrador desconocido, paso a paso

  1. Haz una copia de la base de datos antes de tocar nada y apunta los datos del usuario (login, correo, fecha). Si luego necesitas explicar qué pasó, los tendrás.
  2. Confirma que no es legítimo: pregunta al cliente, al equipo y al hosting. Si en una hora nadie lo reconoce, actúa.
  3. Cierra sus sesiones y bórralo reasignando su contenido a un usuario tuyo. Sin --reassign, WordPress borra también sus entradas.
  4. Cambia todas las contraseñas: todos los administradores, hosting, FTP/SFTP y base de datos. Regenera las claves de seguridad para echar a cualquiera que siga conectado.
  5. Borra las contraseñas de aplicación que no sean tuyas.
  6. Cierra el registro o, si lo necesitas, deja el rol por defecto en suscriptor.
  7. Busca lo que haya podido dejar: plugins nuevos, ficheros PHP modificados, otra cuenta. Un administrador puede instalar un plugin con una puerta trasera en un minuto.
  8. Cierra la puerta de entrada: actualiza o quita el plugin vulnerable y activa el segundo factor para todos los administradores.
wp user session destroy 57 --all
wp user delete 57 --reassign=1
wp config shuffle-salts
wp user application-password delete admin --all
wp option update users_can_register 0
wp option update default_role subscriber
wp plugin list --fields=name,status,version,update
wp core verify-checksums
wp plugin verify-checksums --all
grep -rln "wp_insert_user\|wp_create_user" wp-content/themes wp-content/mu-plugins wp-content/uploads

Cambia 57 por el ID del usuario intruso y 1 por el tuyo. El último grep busca código que cree usuarios fuera de los plugins (en el tema, en mu-plugins o en uploads, donde no debería haberlo). Si el usuario reaparece tras borrarlo, hay una puerta trasera: sigue la guía de limpieza completa.

Si la web guarda datos personales (clientes de una tienda, formularios, usuarios registrados) y el intruso pudo verlos, es una brecha de datos. Valora la notificación a la AEPD en un plazo de 72 horas.

Errores habituales

  • Borrar el usuario sin reasignar. Si alguna vez publicó algo, se borra con él.
  • Bajarle el rol y dejarlo. Si tenía una puerta trasera, vuelve a subir.
  • Cambiar solo la contraseña de tu usuario. El intruso puede tener la de otro administrador, el FTP o una contraseña de aplicación.
  • Fiarte solo de la pantalla de Usuarios. Se puede ocultar; la consulta SQL no.
  • No buscar la causa. Si fue un plugin vulnerable, mañana aparece otro administrador con otro nombre.

Cómo evitar que vuelva

  • Un usuario por persona, con nombre y correo identificables. Nada de cuentas compartidas.
  • El rol mínimo: editor para quien publica, administrador solo para quien mantiene la web.
  • Segundo factor para todos los administradores.
  • Quita los accesos de proveedores y personas que ya no trabajan en la web.
  • Registro cerrado si no lo necesitas, y rol por defecto suscriptor si lo necesitas.
  • Plugins al día y sin plugins abandonados.

Para agencias: enterarte en el momento, no un mes después

En una cartera de webs, un administrador nuevo pasa desapercibido hasta que algo se rompe. Con el plugin de Jeffrey instalado, en cuanto alguien crea un usuario administrador o sube a un usuario a administrador, el plugin lo comunica en el momento y Jeffrey abre un aviso crítico y te avisa al instante. En la actividad de la web queda registrado quién lo hizo y desde qué IP.

Como segunda defensa, Jeffrey compara cada 12 horas la lista de usuarios con privilegios de cada web: si aparece un administrador nuevo o alguien ha subido de rol por un camino que no generó el evento (por ejemplo, un alta directa en la base de datos), también avisa; y lo mismo con usuarios nuevos con permisos altos, como editores. En el panel ves además qué administradores llevan más de 90 días sin entrar, que son los primeros candidatos a quitar.

Un detalle: la primera lista de usuarios que recibe Jeffrey al conectar una web no genera avisos, porque no hay con qué comparar. Al conectarla, revisa esa lista a mano con las consultas de esta guía.

Si es urgente y no sabes por dónde empezar, escríbenos y lo miramos.

Preguntas frecuentes

¿Puede ser un usuario de mi hosting o de un plugin?

Sí. Algunos hostings y servicios de mantenimiento, copias o seguridad crean un usuario propio. Suelen tener un nombre y un correo del dominio del proveedor. Si no lo tienes claro, pregúntales antes de borrarlo, pero mientras tanto cambia las contraseñas.

Lo he borrado y ha vuelto a aparecer. ¿Qué hago?

Hay código que lo vuelve a crear: un fichero PHP en el tema, en mu-plugins, en uploads o un plugin falso. Busca llamadas a wp_insert_user o wp_create_user fuera de los plugins conocidos y reinstala núcleo, plugins y tema desde fuentes limpias.

¿Cómo sé qué ha hecho ese usuario?

WordPress no guarda un registro de actividad por defecto. Mira las entradas y páginas modificadas desde su fecha de alta, los plugins instalados o activados desde entonces y los logs de acceso del servidor. Si tenías un plugin de registro de actividad, ahí estará el detalle.

¿Basta con quitarle el rol de administrador?

No. Bórralo (reasignando su contenido), cambia las contraseñas y busca la puerta de entrada. Un rol rebajado se puede volver a subir si el atacante conserva otra vía de acceso.

Para agencias

¿Llevas varias webs? Entérate antes que tu cliente

Jeffrey vigila las webs de tus clientes (caídas, SSL, dominios, DNS y correo) y te avisa antes de que llamen. Cuando hace falta una persona, entramos nosotros, en marca blanca.

¿Hablamos de tu proyecto?

Cuéntanos qué necesitas y te respondemos en menos de 24h.