Cosa impedisce a questo exploit di funzionare (UNIX SUID)?

9

Se ho un utente su un sistema unix dove Im ha permesso di creare nuovi file, cosa mi impedisce di scaricare un file eseguibile su quel sistema che è già SUID per radicarsi su un sistema diverso?

Scenario:

  • Sono entrato in una shell con il mio utente Karrax (box1)
  • Su un sistema diverso (box2) dove sono già root ho impostato SUID root su un eseguibile
  • Quindi trasferisco / copia il file nella casella1

Cosa impedisce a questo file di essere eseguito come root sulla prima shell che ho effettuato l'accesso?

    
posta Chris Dale 30.12.2010 - 15:28
fonte

3 risposte

14

Quando copi un file su un altro filesystem, quello che sta succedendo è che crei un nuovo file e copi il contenuto. Lo spostamento di un file su un altro filesystem avviene copiando e rimuovendo il sorgente. Quindi non hai più privilegi durante la copia di un file rispetto a qualsiasi altro momento in cui stai creando un file.

Quando crei un file, questo appartiene a te. Molte varianti di unix limitano la modifica del proprietario ( chown ) a root. Anche quelli che consentono al proprietario di un file di dargli via libera i bit setuid e setgid quando lo fanno. Le modifiche alla proprietà del gruppo ( chgrp ) cancellano anche i bit setxid a meno che non vengano invocati con i privilegi di root. E devi possedere il file o essere root per cambiarne le autorizzazioni. Pertanto non è possibile creare un file setxid per un utente o un gruppo per cui non si dispone dell'autorizzazione per eseguire programmi come.

Un vettore diverso per l'iniezione di file setxid è il montaggio del filesystem. La maggior parte delle configurazioni consente solo i bit setxid sui filesystem montati direttamente da root (come voci /etc/fstab opposte con l'opzione user su Linux, Samba, FUSE, ...). A volte, ad esempio con mount NFS, spetta all'amministratore di sistema assicurarsi che i filesystem siano montati con l'opzione nosuid .

    
risposta data 31.12.2010 - 01:26
fonte
3

Ti avvicini a questo comportamento quando scarichi il tarball di qualcuno e lo estrai, 'preservando la proprietà / i permessi' se l'uid è 7544 vedrai che uid per i file che decidi tu se sei root, probabile errore se sei un non utente privilegiato.

    
risposta data 31.12.2010 - 11:17
fonte
3

AGGIORNAMENTO: ignora la mia precedente risposta errata, che ho modificato qui per evitare di confondere la gente. Gilles ha una risposta molto migliore, che potrei incorporare qui o riformulare, ma merita il merito ....

Se vuoi davvero vedere ciò che avevo in precedenza, puoi sempre trovarlo nella cronologia delle modifiche facendo clic sul momento della modifica.

    
risposta data 30.12.2010 - 21:03
fonte