capabilities abuse (python)

python3 -c 'import os; os.setuid(0); os.system("/bin/sh")'

Explota un binario con la capability cap_setuid (python, perl, ruby) para elevar el proceso a root: setuid(0) + shell. Una sola linea convierte una capability mal asignada en root completo.

Cuando getcap te muestra python3 (o perl, ruby) con cap_setuid+ep. Es la escalada mas limpia que existe en capabilities: el binario interpretado te deja ejecutar codigo arbitrario con la capability activa, asi que setuid(0) funciona directamente.

Si la capability es cap_dac_read_search o cap_dac_override en un binario nativo (tar, cp), este truco no aplica: ahi el vector es leer archivos protegidos, no elevarse. Tampoco si el binario corre bajo un perfil seccomp o AppArmor que bloquee setuid.