Domanda:
Cosa impedisce il funzionamento di questo exploit (SUID unix)?
Chris Dale
2010-12-30 20:28:48 UTC
view on stackexchange narkive permalink

Se ho un utente su un sistema unix in cui sono autorizzato a creare nuovi file, cosa mi impedisce di scaricare un file eseguibile su quel sistema che è già SUID per eseguire il root su un sistema diverso?

Scenario :

  • Ho effettuato l'accesso a una shell con il mio utente Karrax (box1)
  • Su un sistema diverso (box2) dove sono " m già root ho impostato SUID root su un eseguibile
  • Quindi trasferisco / copio il file su box1

Cosa impedisce a questo file di funzionare come root sulla prima shell Ho effettuato l'accesso?

Ciò è documentato nella pagina man chmod (1).
potresti voler ricontrollare la tua risposta accettata - sembra che abbia cambiato il contenuto ...
Tre risposte:
Gilles 'SO- stop being evil'
2010-12-31 06:26:05 UTC
view on stackexchange narkive permalink

Quando copi un file su un diverso filesystem, quello che sta succedendo è che crei un nuovo file e ne copi il contenuto. Lo spostamento di un file in un file system diverso viene eseguito copiando e rimuovendo l'origine. Quindi non hai più privilegi quando copi un file che in qualsiasi altro momento in cui stai creando un file.

Quando crei un file, esso appartiene a te. Molte varianti unix limitano la modifica del proprietario ( chown ) a root. Anche quelli che consentono al proprietario di un file di darlo via cancellano i bit setuid e setgid quando lo fanno. Anche le modifiche alla proprietà del gruppo ( chgrp ) cancellano i bit di setxid a meno che non vengano invocati con i privilegi di root. E devi possedere il file o essere root per modificarne i permessi. Quindi non puoi creare un file setxid per un utente o gruppo per cui non hai il permesso di eseguire programmi.

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

nealmcb
2010-12-31 02:03:26 UTC
view on stackexchange narkive permalink

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

Se vuoi davvero vedere quello che ho avuto prima, puoi come sempre trovarlo nella modificare la cronologia facendo clic sull'ora della modifica.

In realtà, puoi impostare il bit SUID. Tuttavia, non puoi renderlo SUID a un altro utente, se non sei root.
hpavc
2010-12-31 16:17:03 UTC
view on stackexchange narkive permalink

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



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 2.0 con cui è distribuito.
Loading...