2049 - Pentesting NFS Service
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
NFS to system zaprojektowany dla klient/serwer, który umożliwia użytkownikom bezproblemowy dostęp do plików w sieci, jakby te pliki znajdowały się w lokalnym katalogu.
Ciekawym aspektem tego protokołu jest brak wbudowanych mechanizmów uwierzytelniania lub autoryzacji. Zamiast tego, autoryzacja opiera się na informacjach o systemie plików, a serwer ma za zadanie dokładne przetłumaczenie informacji o użytkowniku dostarczonych przez klienta na wymagany przez system plików format autoryzacji, głównie zgodnie z składnią UNIX.
Uwierzytelnianie zazwyczaj opiera się na identyfikatorach UID
/GID
UNIX i członkostwie w grupach. Jednak pojawia się problem z potencjalnym niedopasowaniem w mapowaniach UID
/GID
między klientami a serwerami, co nie pozostawia miejsca na dodatkową weryfikację przez serwer. W związku z tym protokół najlepiej nadaje się do użycia w zaufanych sieciach, biorąc pod uwagę jego poleganie na tej metodzie uwierzytelniania.
Domyślny port: 2049/TCP/UDP (z wyjątkiem wersji 4, potrzebuje tylko TCP lub UDP).
NFSv2: Ta wersja jest znana z szerokiej kompatybilności z różnymi systemami, co podkreśla jej znaczenie w początkowych operacjach głównie przez UDP. Jako najstarsza w serii, położyła fundamenty pod przyszłe rozwój.
NFSv3: Wprowadzona z szeregiem ulepszeń, NFSv3 rozszerzyła możliwości swojego poprzednika, wspierając zmienne rozmiary plików i oferując ulepszone mechanizmy raportowania błędów. Pomimo swoich postępów, napotkała ograniczenia w pełnej kompatybilności wstecznej z klientami NFSv2.
NFSv4: Kamieni milowy w serii NFS, NFSv4 wprowadziła zestaw funkcji zaprojektowanych w celu unowocześnienia udostępniania plików w sieciach. Znaczące ulepszenia obejmują integrację Kerberos dla wysokiego bezpieczeństwa, zdolność do przechodzenia przez zapory i działania przez Internet bez potrzeby korzystania z portmappers, wsparcie dla List Kontroli Dostępu (ACL) oraz wprowadzenie operacji opartych na stanie. Ulepszenia wydajności i przyjęcie protokołu stanowego wyróżniają NFSv4 jako kluczowy postęp w technologiach udostępniania plików w sieci.
Każda wersja NFS została opracowana z zamiarem zaspokojenia ewoluujących potrzeb środowisk sieciowych, stopniowo poprawiając bezpieczeństwo, kompatybilność i wydajność.
Aby dowiedzieć się, który folder jest dostępny na serwerze do zamontowania, możesz zapytać go używając:
Następnie zamontuj to używając:
Powinieneś określić, aby używać wersji 2, ponieważ nie ma żadnej autoryzacji ani uwierzytelniania.
Przykład:
Jeśli zamontujesz folder, który zawiera pliki lub foldery dostępne tylko dla niektórego użytkownika (według UID). Możesz utworzyć lokalnie użytkownika z tym UID i używając tego użytkownika będziesz mógł uzyskać dostęp do pliku/folderu.
Aby łatwo wylistować, zamontować i zmienić UID oraz GID, aby uzyskać dostęp do plików, możesz użyć nfsshell.
Uprawnienia do odczytu i zapisu (rw
): To ustawienie pozwala na zarówno odczyt, jak i zapis w systemie plików. Ważne jest, aby rozważyć konsekwencje przyznawania tak szerokiego dostępu.
Użycie niebezpiecznych portów (insecure
): Po włączeniu, to pozwala systemowi na korzystanie z portów powyżej 1024. Bezpieczeństwo portów powyżej tego zakresu może być mniej rygorystyczne, co zwiększa ryzyko.
Widoczność zagnieżdżonych systemów plików (nohide
): Ta konfiguracja sprawia, że katalogi są widoczne, nawet jeśli inny system plików jest zamontowany poniżej eksportowanego katalogu. Każdy katalog wymaga własnego wpisu eksportu dla prawidłowego zarządzania.
Własność plików root (no_root_squash
): Przy tym ustawieniu pliki tworzone przez użytkownika root zachowują swój oryginalny UID/GID równy 0, ignorując zasadę najmniejszych uprawnień i potencjalnie przyznając nadmierne uprawnienia.
Brak zbijania wszystkich użytkowników (no_all_squash
): Ta opcja zapewnia, że tożsamości użytkowników są zachowywane w całym systemie, co może prowadzić do problemów z uprawnieniami i kontrolą dostępu, jeśli nie jest odpowiednio obsługiwane.
NFS no_root_squash i no_all_squash eskalacja uprawnień
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)