Co się stanie, jeśli uprawnienia do katalogu głównego (/) są ustawione na 777?

2

tzn . sudo chmod /nie sudo chmod -r /.

Do czego atakujący może uzyskać dostęp? Czy to w porządku w przypadku komputera osobistego?

Jamie
źródło
Odpowiedzi najczęściej udzielane w tym pytaniu ServerFault: serverfault.com/questions/364677/why-is-chmod-r-777-destructive Nie oznaczy go jako duplikat (ponieważ twój POV jest oparty na użytkownikach), ale nie będzie też głosować pozytywnie.
Astyanax

Odpowiedzi:

5

Osoba atakująca (nieuprzywilejowany użytkownik) byłaby w stanie utworzyć nowe katalogi i pliki w katalogu głównym oraz zmienić nazwę dowolnego istniejącego katalogu w /(na przykład na losową wartość skutecznie uniemożliwiającą korzystanie z komputera).

W połączeniu pozwala nieuprzywilejowanym użytkownikom zastępować istniejące katalogi własnymi treściami. Myśleć /bin. Pierwszy:

sudo chmod 777 /

Teraz część atakującego (nieuprzywilejowanego użytkownika):

cp -r /bin /newbin
echo "echo boo running my own code as 'whoami'" > /newbin/ls
chmod +x /newbin/ls
mv /bin /oldbin
/oldbin/mv /newbin /bin

Teraz sprawdź to:

sudo -i
ls

Skutecznie daje atakującemu prosty sposób na posiadanie maszyny.

techraf
źródło
2
Rozumiem, że jeśli /ma uprawnienia 777, nieuprzywilejowani użytkownicy mogą tworzyć nowe katalogi i usuwać puste katalogi, ale nie mogą dodawać plików ani usuwać plików z chronionych podkatalogów, takich jak /bin.
Jamie,
2
@Jamie nikt nie musi dodawać plików do / z innych katalogów, mogą po prostu zastąpić całą gałąź w katalogu głównym; wypróbuj polecenia, które dodałem do odpowiedzi
techraf
@Jamie: Zrozumienie strzela fakt, że zmiana nazwy /binna /random-bini tworzenie własnych /binjest tak dobry jak usunięcie go.
qasdfdsaq
2
@Jamie - Good one. Masz rację. To, że możesz zmienić nazwę katalogu, którego nie posiadasz, trochę mnie zaskakuje! Nauczyłem się dziś czegoś.
davidgo,
@davidgo: Częściowo jest to sposób, w jaki działają * uprawnienia nix, zmiana nazwy katalogu jest w rzeczywistości operacją „zapisu” w katalogu nadrzędnym - którym w tym przypadku jest chmod 777'd
qasdfdsaq