This is an old revision of the document!
Curs 12 - Securitatea sistemelor de operare
Demo-uri
Pentru parcurgerea demo-urilor, folosiți arhiva aferentă.
Bitul de set-user-ID-on-execution
Intrați în directorul 1-setuid/
.
Consultați fișierul setuid-test.c
.
Compilați fișierul folosind comanda make
.
Folosiți ls -l
pentru a obține informații complete despre executabilul setuid-test
.
Ca utilizator neprevilegiat rulați executabilul:
./setuid-test
Observați cele trei tipuri de identificatori de utilizatori: user id, effective user ID, saved set-user-ID.
Observați că se poate reveni la utilizator privilegiat, dacă cel puțin unul dintre identificatorii de utilizatori este 0 (root
) (temporary privilege drop).
-
Intrați în directorul 2-shellcode/
.
Consultați fișierul shellcode-samples.c
.
Acele variabile se găsesc în forma binară și în fișierul binary-shellcodes
.
Folosiți
objdump
pentru a dezasambla fișierul:
objdump -D -b binary -mi386 binary-shellcodes
Se afișează instrucțiunile dezasamblate; au fost plasate niște instrucțiuni de tip nop
între cele trei shellcode-uri.
Observați apelul int $0x80
, reprezentând trap pentru acces în kernel space (apel de sistem).