NFsec Logo

Ukryty wymiar praw dostępu

24/08/2017 w Administracja, Bezpieczeństwo Brak komentarzy.  (artykuł nr 635, ilość słów: 424)

P

otężny administrator systemu postanowił stworzyć bramę do ukrytego wymiaru. Dla niepoznaki zrobił to w katalogu domowym zwykłego użytkownika. By chronić portal przed różnymi daemonami rzucił na niego zaklęcie zdejmujące wszystkie prawa dostępu:

:~# bash -c "echo 'Niedostrzegalne barwy - czarne wodospady' > \
/home/agresor/ukryty_wymiar"
:~# chmod 0000 /home/agresor/ukryty_wymiar

Podczas powrotu do swojego katalogu ($HOME) użytkownik zauważył dziwne wrota:

agresor@darkstar:~$ ls -lah ukryty_wymiar
---------- 1 root root 39 Aug 24 21:01 ukryty_wymiar

Dookoła nich krążyły już Kerberos, Sphinx oraz sam Dracula. Widząc to, w użytkowniku wezbrał niepohamowany gniew, który przekształcił w ukrytą moc zniszczenia. Użytkownik wiedział, że bez księgi sudo nie jest w stanie zniszczyć portalu potężnego administratora, ale postanowił chociaż spróbować:

agresor@darkstar:~$ rm -rf ukryty_wymiar
agresor@darkstar:~$ ls -al ukryty_wymiar
ls: cannot access 'ukryty_wymiar': No such file or directory

Ku zdziwieniu użytkownika brama do ukrytego wymiaru zniknęła bezpowrotnie, a wraz z nią głodne przejścia daemony.

Gdzie był haczyk?

W systemie Linux, jeśli chcemy cokolwiek zrobić z plikiem to pierwszym krokiem jest sprawdzenie praw dostępu do jego nadrzędnego katalogu (w naszym przypadku $HOME). Zapoznanie się z zawartością katalogu jest możliwe dzięki prawu read (-r-):

drw----r-- 3 root    root    4096 Aug 24 22:37 test
agresor@darkstar:~$ ls -al test/
total 0
d????????? ? ? ? ?            ? .
d????????? ? ? ? ?            ? ..
d????????? ? ? ? ?            ? test1

z kolei prawo execute (-x-) daje nam możliwość wejścia do katalogu, ale także dostęp do i-węzłów plików znajdujących się w jego środku:

drw----r-x 3 root    root    4096 Aug 24 22:37 test
agresor@darkstar:~$ ls -al test
total 12
drw----r-x 3 root    root    4096 Aug 24 22:37 .
drwxr-xr-x 3 agresor agresor 4096 Aug 24 22:37 ..
drwxr-xr-x 2 root    root    4096 Aug 24 22:37 test1

Ma to kluczowe znaczenie w tym kontekście, ponieważ proces usuwania powoduje odłączenie pliku. Sam proces usuwania lub zmiany nazwy nie wymagają wywołania systemowego write() ani prawa write (-w-). Praktycznie użytkownik nie wymaga żadnych praw dostępu, aby usunąć plik. Nie musi też dbać o właściciela usuwanego pliku. Jedynym wymogiem jest posiadanie praw zapisu oraz wykonywania na katalogu nadrzędnym, co z perspektywy użytkownika naturalnie spełnia katalog $HOME.

Więcej informacji: Prawa dostępu do plików i katalogów, Casually removing root files

Kategorie K a t e g o r i e : Administracja, Bezpieczeństwo

Tagi T a g i : , , , , , , ,

Komentowanie tego wpisu jest zablokowane.