Shell non privilegia sempre maggiori privilegi in narnia

1

Sto esaminando i vari wargames overthewire e ho una domanda su narnia0. Il codice in c contiene

if(val==0xdeadbeef)
system("/bin/sh");
else {
printf("WAY OFF!!!!\n");

Ho capito che funziona con il semplice overflow del buffer, ma volevo provare a utilizzare gdb per trovare altri modi per sfruttarlo. Ho smontato main, quindi ho impostato un breakpoint dopo cmpl e prima di jne. Quindi ho cambiato il codice macchina da 0x75 a 0x74. Quando ho continuato, è stato eseguito

system("/bin/sh");

ma quando eseguivo id ero ancora solo nel gruppo di utenti narnia0, mentre se facevo il buffer overflow ero nel gruppo narnia1. È impossibile declassare i privilegi come gdb, e c'è qualche soluzione per estendere i privilegi in un ambiente in cui è possibile modificare il codice macchina / variabili?

    
posta user3364161 01.06.2017 - 00:50
fonte

1 risposta

2

Sembra che questo sia dovuto al programma in esecuzione con l'account dell'utente attualmente connesso (narnia0) quando lo esegui con gdb rispetto al programma in esecuzione sotto l'account utente narnia1 quando il programma viene eseguito.

Questo può essere approfondito esaminando le autorizzazioni sul file di programma. (Usa 'ls -al' per verificare i permessi del file.

Guarda qui come funzionano i permessi dei file: link

    
risposta data 01.06.2017 - 01:33
fonte

Leggi altre domande sui tag