La escalada de privilegios (privilege escalation) es la técnica que permite a un atacante elevar permisos desde una cuenta limitada hasta obtener acceso administrador completo en un sistema. Es, probablemente, el paso más crítico en cualquier intrusión: da igual cómo hayas entrado si no puedes hacer nada una vez dentro. La escalación local transforma un acceso insignificante en control total. Y pasa más de lo que crees.
Piénsalo así: un atacante consigue ejecutar código en tu servidor web con los permisos del usuario www-data. No puede leer /etc/shadow, no puede instalar rootkits, no puede tocar los logs. Pero si encuentra una vía para escalar a root, el juego cambia por completo. Esa transición —de "estoy dentro pero no puedo hacer gran cosa" a "soy dios en esta máquina"— es exactamente lo que vamos a diseccionar.
Escalada local vs. escalada horizontal: no es lo mismo
Hay dos categorías principales. La escalada vertical (o local) es la clásica: pasar de usuario raso a administrador o root. La escalada horizontal consiste en moverse lateralmente, accediendo a cuentas de otros usuarios con el mismo nivel de privilegios. Ambas son peligrosas, pero la vertical es la que da titulares.
Un ejemplo real: CVE-2021-4034 (PwnKit), una vulnerabilidad en pkexec de Polkit que llevaba más de 12 años en prácticamente todas las distribuciones Linux. Cualquier usuario local podía obtener root con un exploit de unas pocas líneas. Afectó a Ubuntu, Debian, Fedora, CentOS… la fiesta completa. Qualys la descubrió en enero de 2022 y la comunidad se echó las manos a la cabeza: ¿cómo había pasado desapercibida tanto tiempo?
En Windows, el equivalente histórico sería algo como CVE-2021-1732, una vulnerabilidad en Win32k que permitía elevar permisos desde cualquier proceso a SYSTEM. Microsoft la parcheó en febrero de 2021, pero grupos APT ya la estaban explotando activamente. Si un atacante combina esto con un kit de phishing automatizado para obtener el acceso inicial, tiene la cadena completa.
Las técnicas más usadas para escalar privilegios
Los atacantes no improvisan. Siguen metodologías probadas, y herramientas como LinPEAS, WinPEAS o BeRoot automatizan la enumeración de vectores. Estas son las vías más frecuentes:
Binarios SUID mal configurados (Linux)
Cualquier ejecutable con el bit SUID activo se ejecuta con los permisos de su propietario, normalmente root. Si un administrador deja un find, vim o python con SUID, el atacante puede abusar de ellos para lanzar una shell privilegiada. El proyecto GTFOBins mantiene una base de datos con cientos de binarios explotables y sus técnicas exactas.
Tareas programadas y cron jobs
Un script ejecutado por root vía cron que sea escribible por otros usuarios es un regalo. El atacante modifica el script, espera a que cron lo ejecute, y obtiene ejecución como root sin tocar nada más. Parece básico, pero sigue apareciendo en auditorías reales con una frecuencia alarmante.
Credenciales en texto plano
Archivos .bash_history, configuraciones de aplicaciones, variables de entorno, backups de bases de datos… la cantidad de contraseñas que acaban en texto plano en un servidor es asombrosa. Si alguna pertenece a root o a un usuario con privilegios sudo, la escalada es trivial. Es la misma razón por la que usar un gestor de contraseñas no es opcional: reutilizar credenciales multiplica el impacto de cualquier brecha.
Kernel exploits
Cuando el kernel tiene una vulnerabilidad conocida y el sistema no está parcheado, herramientas como linux-exploit-suggester identifican automáticamente qué exploits son aplicables. Dirty COW (CVE-2016-5195) fue el ejemplo canónico: una race condition en el manejo de memoria copy-on-write que permitía escribir en archivos de solo lectura. Afectó a kernels Linux desde 2007.
Token Impersonation y Potatoes (Windows)
En entornos Windows, técnicas como JuicyPotato, RoguePotato y PrintSpoofer permiten a un servicio con privilegios SeImpersonatePrivilege (habitual en IIS y SQL Server) escalar a SYSTEM. La familia de exploits "Potato" ha evolucionado durante años, adaptándose a cada parche de Microsoft.
Casos reales: cuando la escalada marca la diferencia
El incidente de SolarWinds (2020) es un caso de manual. Los atacantes —atribuidos al grupo ruso APT29 (Cozy Bear)— no entraron directamente como administradores. Comprometieron el proceso de build de Orion, distribuyeron el backdoor SUNBURST como actualización legítima, y desde ahí escalaron privilegios en las redes de las víctimas usando técnicas como el Golden SAML para falsificar tokens de autenticación en Azure AD. El resultado: acceso completo a agencias gubernamentales de EE.UU. y empresas del Fortune 500.
Otro caso: el ransomware Ryuk usaba habitualmente Mimikatz para extraer credenciales de memoria (hashdump, pass-the-hash) tras el acceso inicial, normalmente conseguido mediante un ataque en red local o phishing con Emotet/TrickBot como loader. La privilege escalation era el paso que convertía un endpoint comprometido en toda la red cifrada.
En el mundo IoT, la escalada toma formas peculiares. Dispositivos de domótica con firmware desactualizado suelen tener servicios corriendo como root sin necesidad, credenciales por defecto y puertos de debug abiertos. Un atacante que compromete una bombilla inteligente puede acabar con acceso a la red interna completa.
Cómo proteger tus sistemas contra la escalación local
La defensa funciona por capas. Ninguna medida individual es infalible, pero combinadas reducen drásticamente la superficie de ataque:
- Principio de mínimo privilegio: cada usuario y servicio debe tener exactamente los permisos que necesita. Nada más. Revisa los permisos
sudoconsudo -ly elimina los que no sean imprescindibles. - Parcheado agresivo: especialmente el kernel y los componentes con privilegios elevados. Las ventanas de exposición entre la publicación de un CVE y la aplicación del parche son oro para los atacantes.
- Auditar SUID/SGID: ejecuta
find / -perm -4000 -type f 2>/dev/nullperiódicamente. Cada binario SUID debe tener una justificación documentada. - Monitorizar cron jobs y servicios: verifica permisos de los scripts ejecutados por root. Un
chmod 755descuidado puede ser la diferencia entre un sistema seguro y uno comprometido. - Segmentación y hardening: SELinux o AppArmor en Linux, Credential Guard en Windows. Restringen qué puede hacer cada proceso incluso si obtiene privilegios elevados.
- Herramientas de detección: OSSEC, Sysmon (Windows) o Falco (contenedores) detectan comportamientos anómalos asociados a escalada: creación de usuarios, modificación de archivos sensibles, uso inusual de
sudo.
Para quienes gestionan contraseñas de acceso a sistemas críticos, conviene revisar cómo proteger el acceso a cuentas sensibles con autenticación multifactor y credenciales robustas.
Herramientas de auditoría que deberías conocer
| Herramienta | Plataforma | Función |
|---|---|---|
| LinPEAS / WinPEAS | Linux / Windows | Enumeración automática de vectores de escalada |
| linux-exploit-suggester | Linux | Identifica kernel exploits aplicables |
| BeRoot | Multiplataforma | Detecta configuraciones que permiten elevar permisos |
| BloodHound | Active Directory | Mapea rutas de escalada en entornos AD |
| Mimikatz | Windows | Extrae credenciales de memoria (uso defensivo: detectar exposición) |
| GTFOBins | Linux | Base de datos de binarios explotables con SUID/sudo |
| PowerUp | Windows | Módulo de PowerSploit para escalada local |
Estas herramientas son de doble filo: los equipos de seguridad las usan para auditorías, y los atacantes para explotación. Conocerlas te permite anticipar qué buscaría un intruso en tu infraestructura.
Preguntas frecuentes
¿Qué diferencia hay entre escalada de privilegios local y remota?
La escalada local requiere que el atacante ya tenga acceso al sistema (una shell, una sesión SSH, ejecución de código). La remota permite obtener privilegios elevados directamente desde fuera, sin acceso previo. La mayoría de casos reales son escaladas locales, porque el acceso administrador remoto directo implica una vulnerabilidad mucho más grave y menos frecuente.
¿Puede un antivirus detectar un intento de privilege escalation?
Los antivirus tradicionales basados en firmas no suelen detectar la escalada como tal, porque muchas técnicas usan herramientas legítimas del sistema (LOLBins). Las soluciones EDR (Endpoint Detection and Response) como CrowdStrike Falcon, Microsoft Defender for Endpoint o SentinelOne sí monitorizan comportamientos asociados a escalación local y pueden bloquear o alertar en tiempo real.
¿Cómo puedo saber si mi servidor Linux es vulnerable a escalada?
Ejecuta LinPEAS en tu propio sistema como parte de una auditoría. También puedes revisar manualmente: busca binarios SUID inusuales, comprueba que los cron jobs de root no sean escribibles por otros usuarios, verifica que el kernel esté actualizado y revisa si hay credenciales expuestas en archivos de configuración o historiales de shell.
¿Por qué los contenedores Docker no protegen contra la escalada de privilegios?
Muchos contenedores corren como root por defecto. Si el contenedor tiene acceso al socket de Docker o ejecuta con --privileged, el atacante puede escapar al host con privilegios completos. La buena práctica es ejecutar contenedores con usuarios no root, usar perfiles seccomp y restringir capabilities con --cap-drop ALL.
El siguiente paso
Abre una terminal en tu servidor más crítico y ejecuta find / -perm -4000 -type f 2>/dev/null. Revisa cada binario de la lista: si no sabes por qué tiene SUID, investígalo. Si no lo necesita, quítaselo con chmod u-s. Esa auditoría de cinco minutos puede cerrar la puerta más obvia que un atacante usaría para convertir un acceso limitado en control total de tu máquina.


