NFS – root_squash

Root Squashing to mechanizm zabezpieczający w protokole NFS, który ogranicza uprawnienia użytkownika root na zdalnym serwerze. Domyślnie opcja ta jest włączona, co powoduje, że użytkownik root na kliencie NFS zostaje zmapowany na niskouprawnionego użytkownika lokalnego (nfsnobody). Choć poprawia to bezpieczeństwo, w niektórych przypadkach może być niepożądane. Wyłączenie tej funkcji pozwala na tworzenie plików z bitem SUID, co może prowadzić do eskalacji uprawnień. W niniejszym artykule omówiony zostanie proces wykorzystania tej luki w konfiguracji NFS do uzyskania dostępu do powłoki roota.

Czym jest root_squash?


Funkcja root_squash działa domyślnie w udziałach NFS i blokuje zdalnym użytkownikom root uzyskanie pełnych uprawnień na serwerze NFS. System mapuje takiego użytkownika na konto nfsnobody z minimalnymi uprawnieniami. Wyłączenie root_squash zwiększa ryzyko bezpieczeństwa, ponieważ pozwala tworzyć pliki z bitem SUID, które atakujący mogą wykorzystać do eskalacji uprawnień.

Identyfikator SUID


Pliki z ustawionym bitem SUID pozwalają na ich uruchamianie z uprawnieniami właściciela. W przypadku basha lub innych plików wykonywalnych można w ten sposób uzyskać powłokę z podwyższonymi uprawnieniami. Wyłączenie root_squash i niewłaściwa konfiguracja udziałów NFS stwarza poważne zagrożenie dla systemu.

Metoda ataku


Nieprawidłowa konfiguracja root_squash umożliwia atakującemu wykorzystanie luki i uzyskanie powłoki roota. Proces ten obejmuje kilka kluczowych kroków:

  1. Połączenie się z udziałem NFS i przesłanie pliku wykonywalnego bash.
  2. Ustawienie bitu SUID na pliku bash, co pozwala na jego uruchamianie z uprawnieniami roota.
  3. Zalogowanie się do systemu docelowego przez SSH.
  4. Uruchomienie pliku bash z bitem SUID w celu uzyskania powłoki roota.

Przykładowa procedura


Aby zapewnić kompatybilność pliku bash, można go pobrać bezpośrednio z maszyny docelowej przy użyciu polecenia:

scp -i key_name username@MACHINE_IP:/bin/bash ~/Downloads/bash

Alternatywnie, można pobrać standardowy plik bash dla Ubuntu Server 18.04:

wget https://github.com/polo-sec/writing/raw/master/Security%20Challenge%20Walkthroughs/Networks%202/bash

Metoda ta wymaga aktywnego połączenia z Internetem.

Podsumowanie


Nieprawidłowa konfiguracja root_squash może prowadzić do eskalacji uprawnień poprzez wykorzystanie plików z bitem SUID. Odpowiednia konfiguracja i ograniczenie dostępu do udziałów NFS są kluczowe dla bezpieczeństwa systemu. Administratorzy powinni regularnie weryfikować ustawienia i monitorować potencjalne luki, aby uniknąć przejęcia kontroli nad systemem przez nieautoryzowanych użytkowników.

źródło: https://tryhackme.com/room/networkservices2 data 02.03.2025