Come utente di www-data (utente non privilegiato) ho trovato questo script di shell SUID, scrivibile a livello mondiale:
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
Fa parte di una macchina CTF. Il contenuto è banale, non fa nulla di utile (sembra che sia solo un modello standard):
#!/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
Ma sospetto che questo script possa aiutarmi a elevare i miei privilegi. Ho letto su di esso qui:
Pericoli degli script della shell SUID
e qui
Sfruttare init.d per divertimento e profitto
Ma:
- Non è possibile riavviare la macchina (è stata la mia prima idea, modificare lo script in modo da creare una shell privilegiata in / tmp e forzare il riavvio)
- Il parametro posizionale $ 1 sembra non essere iniettabile (ho cercato di ingannare il caso "$ 1" passando argomenti diversi dalla riga di comando, come ./admin "hi; id" e cose simili, senza alcun risultato)
Mi chiedo se ci siano alcune variabili d'ambiente che potrei sfruttare. O qualche tipo di manomissione che potrei forzare a manipolare la variabile IFS. Qualche idea su come questo tipo di script SUID potrebbe essere sfruttabile?