Załóżmy, że istnieje aplikacja binarna, która zawsze zapisuje swoje dane /tmp
.
Jak mogę sfałszować / wyszydzić /tmp
ze względu na ten plik binarny jako jakiś inny katalog (np. home/tmp
)?
Załóżmy, że nie mam możliwości zmodyfikowania tego pliku binarnego, aby zmusić go do użycia innego katalogu.
chroot
czylxc
jest w stanie to zrobić. Miło jest również wiedzieć, że istnieje sposób, aby to osiągnąć, nie będąc superużytkownikiem.chroot
wymaga dodatkowej konfiguracji (wymieniasz całość/
, a nie tylko/tmp
, więc jakikolwiek dostęp do/etc
,/var
itp, będzie również wewnątrz „więzienia”) i stwarza problemy bezpieczeństwa własnego (dalej „uwięziony” program może być w stanie manipulować częściami systemu plików, które normalnie byłyby niedostępne, jeśli nie będziesz ostrożny z uprawnieniami podczas konfigurowania fałszywego pliku/
)./
nie jest ograniczony tylko do napisaniaroot
, „uwięziony” użytkownik może tworzyć lub zamieniać pliki, które wydają się znajdować w kluczowych lokalizacjach systemowych, takich jak/etc/passwd
; można to następnie wykorzystać do eskalacji uprawnień, która nie byłaby możliwa pozachroot
. Wiele serwerów FTP z systemem Linux, które tradycyjnie używająchroot
do ukrywania reszty systemu plików, teraz odmawia, jeśli katalog jest zapisywalny przez użytkownika innego niż root.Większość programów zgodnych z POSIX honorowałaby zmienną środowiskową TMPDIR np
źródło