Pulsa ESC para cerrar

Curso WordpressCurso Wordpress

Entrar a tu WordPress sin contraseña y saltándose el 2FA: el robo de sesiones

Hiciste todo bien: contraseña larga, única y doble factor (2FA). Y un día aparece un administrador que no creaste. ¿Cómo entraron?

Muy probablemente, no entraron: usaron tu sesión. Es una de las técnicas más usadas hoy contra todo tipo de sitios, y WordPress no es la excepción.

Cómo funciona

Cuando inicias sesión en WordPress, el sitio te entrega una cookie: un pequeño archivo que tu navegador guarda y envía en cada visita para decir «soy yo, ya me identifiqué». Mientras esa cookie sea válida, WordPress no te vuelve a pedir contraseña ni código.

Existe un tipo de malware, llamado infostealer (ladrón de información), que se instala en el computador con descargas piratas, extensiones falsas del navegador o adjuntos de correo. Su trabajo es copiar las cookies de todos los sitios donde tienes sesión abierta y enviarlas al atacante.

Con tu cookie, el atacante abre tu WordPress y ya está adentro, como si fueras tú. Nunca escribió una contraseña ni un código.

Por eso el 2FA, aunque es imprescindible, no protege contra esto: el doble factor se pide al iniciar sesión, y el atacante se salta ese paso.

Medidas que sí reducen el riesgo

1. Sesiones más cortas para administradores

Cuanto menos dura una cookie, menos tiempo tiene el atacante para usarla. Este mu-plugin deja las sesiones de administradores en 12 horas, aunque marquen «Recuérdame». Guárdalo como wp-content/mu-plugins/cwp-sesiones-cortas.php:

<?php
/**
 * Plugin Name: Sesiones cortas para administradores (Curso WordPress)
 */

add_filter( 'auth_cookie_expiration', function ( $segundos, $user_id ) {
	if ( user_can( $user_id, 'manage_options' ) ) {
		return 12 * HOUR_IN_SECONDS;
	}
	return $segundos;
}, 10, 2 );

2. Revisa y cierra sesiones

Desde Usuarios → Perfil, al final, el botón Cerrar el resto de las sesiones invalida todas las cookies menos la tuya actual. Con WP-CLI puedes ver los detalles:

# Ver sesiones abiertas, con IP y navegador
wp user session list tu_usuario --fields=login_time,expiration,ip,ua

# Cerrar todas las sesiones de ese usuario
wp user session destroy tu_usuario --all

Si ves una IP o un navegador que no reconoces, ciérralas y cambia tu contraseña.

3. Restringe el escritorio por IP (si puedes)

Si siempre administras desde los mismos lugares, limitar wp-admin a esas IPs hace inútil una cookie robada usada desde otro país. En el .htaccess dentro de la carpeta wp-admin:

<RequireAny>
  Require ip 200.0.0.1
  Require ip 190.0.0.0/16
</RequireAny>
<Files admin-ajax.php>
  Require all granted
</Files>

Cambia las IPs por las tuyas. admin-ajax.php debe quedar abierto porque muchos plugins lo usan desde la parte pública. Si tu IP cambia a menudo, usa en cambio una regla de Cloudflare que pida verificación para /wp-admin/.

4. Alertas de inicio de sesión

Muchos plugins de seguridad avisan por correo cuando un administrador entra desde una IP nueva. Es la forma más rápida de detectar una sesión robada.

5. Protege el equipo, no solo el sitio

El origen del problema es el computador infectado. Las reglas básicas:

  • No instales software pirata ni «cracks», que son la principal vía de estos malware.
  • Revisa las extensiones del navegador y elimina las que no uses.
  • Usa un perfil de navegador separado solo para administrar tus sitios.

Si ya te pasó

  1. Cierra todas las sesiones de todos los usuarios y cambia las claves secretas: wp config shuffle-salts invalida todas las cookies de una vez.
  2. Revisa administradores, contraseñas de aplicación y plugins instalados recientemente.
  3. Analiza el computador desde el que administras con un antivirus actualizado antes de volver a iniciar sesión. Si no, te robarán la sesión nueva.
  4. Cambia también las contraseñas del correo, del hosting y del dominio desde un equipo limpio.

¿Te encontraste con un administrador que nadie creó? Cuéntanos en el foro lo que encontraste y te ayudamos a revisar si fue un robo de sesión.