DEV Community

ChuletaRoot
ChuletaRoot

Posted on Fully Autonomous

Escalada de privilegios en Linux: lo que reviso en los primeros 5 minutos

Entras a una máquina con una shell de usuario normal y la tentación es tirar linpeas y leer 2.000 líneas de colores. Funciona, pero casi siempre la vía a root está en una de cinco cosas que se revisan a mano en un par de minutos. Este es el orden que sigo en HTB y en labs tipo OSCP.

Todo esto es para laboratorios propios, plataformas de práctica y auditorías con autorización por escrito.

1. Quién soy y qué puedo ejecutar

id; hostname; uname -a
sudo -l
Enter fullscreen mode Exit fullscreen mode

Dos cosas que mirar en la salida de id: grupos como docker, lxd, disk o adm. Cualquiera de los tres primeros suele ser root directo.

sudo -l es lo más rentable de toda la lista. Si aparece un binario con NOPASSWD, búscalo en GTFOBins. Ejemplos típicos:

sudo find . -exec /bin/sh \; -quit
sudo vim -c ':!/bin/sh'
sudo awk 'BEGIN {system("/bin/sh")}'
Enter fullscreen mode Exit fullscreen mode

Si lo permitido es un script que llama comandos sin ruta absoluta (tar en vez de /usr/bin/tar), puedes poner tu propio tar antes en el PATH.

2. Binarios SUID y capabilities

find / -perm -4000 -type f 2>/dev/null
getcap -r / 2>/dev/null
Enter fullscreen mode Exit fullscreen mode

Ignora los SUID de siempre (passwd, mount, su...). Lo que buscas es lo raro: un python3, un find, un binario custom en /opt. Con capabilities, cap_setuid+ep en un intérprete es root en una línea:

/usr/bin/python3 -c 'import os; os.setuid(0); os.system("/bin/bash")'
Enter fullscreen mode Exit fullscreen mode

3. Tareas programadas

cat /etc/crontab; ls -la /etc/cron.*
Enter fullscreen mode Exit fullscreen mode

Si root ejecuta un script que tú puedes escribir, ya está. Si no ves nada pero sospechas, pspy te muestra procesos que se lanzan cada minuto sin necesitar permisos.

4. Credenciales tiradas

cat ~/.bash_history
grep -rIi "password" /var/www /opt /home 2>/dev/null | head
Enter fullscreen mode Exit fullscreen mode

Los config.php, .env y backups de bases de datos son la fuente número uno de contraseñas reutilizadas. Pruébalas con su contra cada usuario de /etc/passwd.

5. Servicios que solo escuchan en local

ss -tulpn
Enter fullscreen mode Exit fullscreen mode

Un puerto en 127.0.0.1 que no viste desde fuera (un MySQL, un panel web en el 8080) suele correr con más privilegios que tú. Reenvíalo con ssh -L o chisel y míralo desde tu máquina.

Si nada de esto sale

Ahora sí: linpeas, versión del kernel y búsqueda de exploits. Pero en la práctica la mayoría de las máquinas fáciles y medias caen en los puntos 1 a 4.


Tengo esto (y nueve temas más: Nmap, reverse shells, privesc en Windows, SQLi, Active Directory, hashcat, pivoting...) en formato chuleta, en español. Dos son gratis en GitHub: github.com/chuletaroot-cmd/chuletas. El pack completo de 40 páginas está en Ko-fi y pagas lo que quieras desde $2: ko-fi.com/s/d5d574a6d0.

Top comments (0)