Como usuario de datos www (usuario sin privilegios) he encontrado este script de shell SUID, de escritura mundial:
www-data@Cisco:/home/cripto$ ls -al /etc/init.d/admin
-rwsr-xrwx 1 root bob 233 Nov 12 13:09 /etc/init.d/admin
Es parte de una máquina CTF. El contenido es trivial, no hace nada útil (parece que es solo una plantilla de plantilla):
#!/bin/sh
# /etc/init.d/admin
case "$1" in
start)
echo "[i] Start admin Area"
;;
stop)
echo "[i] Stop admin Area"
;;
*)
echo "Usage: /etc/init.d/admin {start|stop}"
exit 1
;;
esac
exit 0
Pero sospecho que este script podría ayudarme a elevar mis privilegios. He estado leyendo sobre esto aquí:
Peligros de los scripts de shell de SUID
y aquí
Explotación de init.d para diversión y ganancias
Pero:
- La máquina no se puede reiniciar (esa fue mi primera idea, editar el script para que cree un shell privilegiado en / tmp y forzar un reinicio)
- El parámetro posicional $ 1 parece no ser inyectable (traté de engañar el caso "$ 1" al pasar diferentes argumentos desde la línea de comando, como ./admin "hi; id" y cosas similares, sin éxito)
Me pregunto si hay algunas variables de entorno que podría explotar. O algún tipo de manipulación que podría forzar manipulando la variable IFS. ¿Alguna idea sobre cómo este tipo de scripts SUID podrían ser explotables?