Come verificare setuid corretto, sicuro e di prova?

1

Ho esaminato le vulnerabilità setuid. In particolare, sto cercando OS X (10.5+) ma anche altre distro moderne * nix. Ad esempio, ho trovato un file suideo scrivibile in tutto il mondo installato da un'applicazione di terze parti nella mia casella OS X tramite find. Secondo la pratica standard, solo i file critici dovrebbero essere suid come chmod e passwd. La mia domanda è, come faccio a testare questo file per le vulnerabilità oltre alla semplice disattivazione? Ad esempio, sono stato in grado di vi il file stesso e farlo eseguire un semplice comando, ma non riuscivo a farlo scattare un altro account utente. Questo significa semplicemente che è stato codificato correttamente o esiste una funzione OS X che aiuta a proteggere i vuln suid? Qualsiasi risorsa, o correzione nei miei pensieri, sarebbe eccellente. Se sei a conoscenza di applicazioni o distribuzioni di terze parti non protette vulnerabili a escalation di privilegi suidi da apprendere, sarebbe doppiamente eccellente. Grazie.

    
posta Richard Belisle 07.09.2012 - 17:11
fonte

2 risposte

5

According to standard practice, only critical files

Tutti gli eseguibili che esegui sono "critici", poiché vengono eseguiti con il tuo UID e hanno tutte le tue autorizzazioni! Potrebbero fare cose cattive ai tuoi file, questo è "critico" per me. I file eseguibili eseguiti da root sono ancora più "critici".

È normale, ma non è corretto focalizzarsi sui file SUID quando si discutono possibili difetti di sicurezza di un sistema Un * x; tutti gli eseguibili dovrebbero essere considerati. Ci sono solo altri modi per corrompere un programma SUID.

According to standard practice, only critical files should be suid like chmod and passwd.

No, solo gli eseguibili specificatamente progettati per essere eseguiti come SUID.

Scrivere un programma SUID è un argomento completo, troppo grande per essere appropriato per una risposta qui.

My question is, how do I test this file for vulnerabilities

Per eseguire una valutazione della vulnerabilità di un programma, devi prima sapere quale scopo serve, come e quando deve essere eseguito.

My question is, how do I test this file for vulnerabilities beyond just turning it off?

Semplicemente non "spegni" parti del tuo sistema solo perché hai paura! Un programma è SUID per una ragione; se rimuovi il bit SUID, il sistema potrebbe comportarsi male.

For example, I was able to vi the file itself and have it run a simple command but couldn't get it to chmod another user account.

Un programma attendibile che può essere modificato da chiunque è un problema di sicurezza, anche se non è SUID.

If you know of a insecure 3rd party *nix apps or distros vulnerable to suid privilege escalation to learn on, that would be doubly excellent.

C'è una lunga e vergognosa storia di vulnerabilità nei programmi SUID. Solo la ricerca di "exploit" o "vulnerabilità" e "suid" restituisce un sacco di questi.

    
risposta data 07.09.2012 - 18:41
fonte
3

how do I test this file for vulnerabilities

Non puoi mai dimostrare che un sistema sia sicuro. Che il file sia setuid e scrivibile in ogni modo per definizione è una vulnerabilità - non importa ciò che il file attualmente / contiene attualmente.

I was able to vi the file itself

implica che è uno script piuttosto che un eseguibile - la maggior parte delle shell hanno delle protezioni integrate in per impedire l'esecuzione di altri script con l'identità setuid.

Ma se lo script è scrivibile in tutto il mondo significa che chiunque potrebbe scrivere del codice, ad esempio C, quindi sovrascrivere lo script setuid con il proprio programma che verrà eseguito con setuid priviliege.

    
risposta data 07.09.2012 - 17:56
fonte

Leggi altre domande sui tag