Dzisiaj przedstawię rozwiązanie maszyny, która ma mnóstwo metod eskalacji uprawnień. Jest ich co najmniej 15. Pokażę kilka z nich. Nie jest to wyczerpujący materiał na temat każdej metody. W tym walktrough chciałbym pokazać łącznie 4 przykładowe sposoby podnoszenia uprawnień. Może się też zdarzyć, że sposób na jednym użytkowniku będzie działał też na innym. Chodzi mi tylko o ukazanie, że na każdym z użytkowników jest możliwość uzyskania najwyższych uprawnień. Zaczynajmy. Najpierw przeskanujmy maszynę Nmapem. Po wynikach możemy stwierdzić, że na serwerze uruchomione są dwie usługi: NFS i OpenSSH. Sposób #1 dostęp do danych ssh : BOBTen sposób jest trywialny i najszybszy. Na Vulnhubie dostaliśmy hasło i login jednego z użytkowników - bob:secret. Zalogujmy się więc przez OpenSSH. Udało się. Sprawdźmy jakie polecenia możemy wykonywać jako root. Sporo poleceń. Pewnie można użyć co najmniej kilku z nich do podniesienia uprawnień. My skorzystamy z faktu, że powłoka bash ma dostęp do trybu interaktywnego. Bingo! To było trywialne zadanie. W folderze root nie ma nic ciekawego. Okej. Dodam jeszcze jedną rzecz od siebie. Przejrzyjmy plik passwd. Teraz widzimy, że faktycznie z systemu może korzystać czterech zwykłych użytkowników. SPOSÓB #2 Hasło w plain text : susanSkorzystamy tutaj z użytkownika Bob, żeby podejrzeć dane w folderze susan. Zerknijmy do pliku .secret. Świetnie. Okazuje się też, że ten ciąg znaków jest hasłem do użytkownika susan. Teraz musimy znaleźć sposób na eskalację uprawnień na tym użytkowniku. Sprawdźmy co znajduje się w katalogu głównym. Niestety jesteśmy w restrykcyjnej powłoce i nie możemy wykonywać takich poleceń. Skorzystajmy z sztuczki i spróbujmy zalogować się na użytkownika susan, wymuszając na SSH użycie zwykłej powłoki. Udało się. Sprawdźmy konfigurajcę sudo. Niestety nie możemy korzystać z polcenia sudo. Sprawdźmy więc programy z bitem SUID. Część z tych wyników pokazałem na screenshocie. Znajduje się tutaj polecenie taskset, które umożliwia stworzenie powłoki. Poleceniem ls -al możemy zobaczyć, że właścicilem jest root. Skorzystajmy więc z tego polecenia, żeby stworzyć powłokę. Udało się! Teraz przejdźmy do kolejnego sposobu. Sposób #3 Zaszyfrowane słabe hasło : insecurityWróćmy do pliku passwd, korzystając np. z użytkownika Bob, albo Susan. Przy użytkowniku insecurity jest zapisany ciąg znaków. Jest to hasło do użytkownika insecurity. Spróbujmy je złamać. Udało się. Zalogujmy się teraz przez SSH lub z poziomu innego użytkownika na konto insecurity. Mamy uprawnienia roota! Kolejny sposób za nami. SPOSÓB #4 Błędnie skonfigurowana usługa NFS : PeterWróćmy do skanu Nmapem. Wiemy, że na serwerze mamy uruchomioną usługę NFS. Sprawdźmy więc co ofiara udostępnia. Zamontujmy ten folder. Nie ma tutaj nic ciekawego. Nie możemy też stworzyć żadnego pliku w tym katalogu np. z danymi SSH. Jednakże jest sposób, żeby to ominąć. Stwórzmy fałszywego użytkownika z tym samym ID. Teraz spróbujmy stworzyć folder .ssh. Następnie wygenerujmy klucz i skopiujmy go do pliku authorized_key w zdalnie dostępnym folderze. Oczywiście tworzenie i kopiowanie plików musi odbywać się z poziomu użytkownika Peter, którego dodaliśmy. Spróbujmy zalogować się teraz do SSH. Udało się. Oczywiście nie skorzystamy z sudo, ponieważ nie mamy znamy hasła. Zerknijmy w jakich grupach znajdujemy się. Użytkownik Peter należy do jednej nietypowej grupy - docker. Sprawdźmy na GTFOBins czy przypadkiem nie możemy skorzystać z tego faktu do podniesienia uprawnień. Okazuje się, że dzięki dockerowi możemy stworzyć powłokę roota. Przeklejmy polecenie do naszej konsoli i sprawdźmy czy zadziała. Bingo! Udało Nam się uzyskać najwyższe uprawnienia na każdym z użytkowników systemu. podsumowanieMuszę przyznać, że świetnie się bawiłem. Na tym labie jest mnóstwo sposobów podnoszenia uprawnień. Na koniec dodam interesujący link, który zawiera chyba wszystkie możliwe sposoby przejścia tej maszyny łącznie z privilige escalation: https://in.security/lin-security-walkthrough/.
0 Comments
Leave a Reply. |