è possibile eseguire un file eseguibile come proprietario piuttosto che come utente corrente [chiuso]

1

È possibile utilizzare il privilegio dei proprietari anziché l'utente corrente che sta eseguendo il file per eseguire alcune azioni come creare un file?

Supponiamo di avere un file eseguibile creato dall'utente e che può essere modificato ed eseguito da altri utenti. C'è un modo per cambiare l'effettivo UID del processo al proprietario e operare per conto del proprietario

    
posta HighNESS 19.09.2017 - 19:36
fonte

3 risposte

5

Non sei proprio sicuro di cosa stai chiedendo. Quando esegui programmi, funzionano come te. Puoi su per eseguirli come un altro utente, ma devi prima diventare l'altro utente (ovvero devi conoscere la loro password).

Penso che lo scenario che stai descrivendo sia un file creato dall'utente victim con le seguenti autorizzazioni:

-rwxrwxrwx 1 victim victim exec_file

e vuoi user per essere in grado di eseguire il file e farlo funzionare come victim .

victim potrebbe usare setuid per impostare il bit speciale dell'eseguibile in questo modo:

victim$ chmod u+s exec_file
victim$ ls
-rwsrwxrwx 1 victim victim exec_file

Ora quando user esegue il file, verrà eseguito come victim . Questa non è una vulnerabilità o un attacco poiché victim lo ha impostato esplicitamente in questo modo.

Potresti pensare che quanto segue funzionerebbe:

user$ ls
-rwxrwxrwx 1 user user exec_file
user$ chmod u+s exec_file
user$ chown victim exec_file
user$ ./execfile  # I'm victim now, right?

ma linux ti impedirà di eseguire il chown a meno che tu non lo abbia sudo , ... ma se hai già sudo di poteri, non si tratta di un attacco.

La cosa più vicina che posso pensare di fare di questo un vero attacco è se più utenti eseguono questo programma regolarmente, e hai permessi di scrittura su di esso, quindi puoi sostituirlo con il tuo codice e aspettare il proprietario (o chiunque altro) per tornare indietro e eseguirlo. Ora qualcun altro sta eseguendo il tuo codice malevolo come se stessi. In generale, una cattiva idea è dare agli utenti il permesso di scrittura sui file che altri utenti eseguiranno. Molto meglio avere questo tipo:

-rwxr-xr-x 1 user user exec_file

o anche meglio:

-rwxr-xr-x 1 root root exec_file
    
risposta data 19.09.2017 - 20:16
fonte
0

Is it possible to use owners privilege instead of current user who is executing the file to perform some action like create a file?. I mean is it possible to exploit an executable file which is created by user and can be modified and executed by other users.

La risposta alla seconda domanda chiarita è sì, assolutamente. Se una persona crea un file e concede autorizzazioni RWX ad altri utenti, ha pieno diritto di alterare ed eseguire quel file. Pertanto, hanno i diritti per sfruttare quel file anche se non sono il proprietario. Questo è coerente tra i sistemi Windows e Unix.

    
risposta data 19.09.2017 - 20:23
fonte
-1

Sì, è possibile utilizzando il flag suid sul file: chmod u+s executable_file . Vedrai, in genere, un -rwsr-xr-x quando digiti un comando ls -l .

Significa che il file verrà eseguito con il privilegio del proprietario del file. Ma devi stare molto attento con questo flag perché potrebbe essere una vulnerabilità se non sai cosa fa l'eseguibile.

Ad esempio, i programmi mount o sudo sono setuid root, perché abbiamo bisogno dei privilegi di root quando si utilizzano questi programmi.

Un altro flag ( setgid ) esegue lo stesso risultato ma per il gruppo.

Puoi trovare maggiori informazioni sulla pagina di Wikipedia .

    
risposta data 19.09.2017 - 21:10
fonte

Leggi altre domande sui tag