Zaprezentuję dzisiaj rozwiązanie jednego z prostszych labów poziomu intermediate. Maszyna nawiązuje do znanego Wam pewnie filmu Matrix. Naszym celem jest oczywiście dostać się do systemu i zdobyć uprawnienia superużytkownika. Skan Nmapem wykazał trzy otware porty. Na jednym z nich znajduje się usługa OpenSSH, a na pozostałych serwery WWW. Zerknijmy pobieżnie na stronę internetową uruchomioną na porcie 80. Na stronie głównej możemy zobaczyć licznik. Niestety nie wiem do czego służy. W kodzie źródłowym nie ma ciekawych informacji, a plik robots nie istnieje. Wygląda na to, że możemy włączyć skanowanie nikto i dirbusterem. Zanim jednak to zrobimy sprawdźmy czy nie znajdziemy przypadkiem jakiś wskazówek na drugiej stronie uruchomionej na niestandardowym porcie. Okej. Strony sa dosyć podobne. Sprawdźmy kod źrodłowy. To był dobry wybór. Widzimy w nim najprawdopodobniej tekst zaszyfrowany Base64. Spróbujmy go odszyfrować. Widzimy tutaj jakiś cytat, którzy przy pomocy echo zostaje zapisany w pliku Cypher.matrix. Skoro istnieje taki plik to bardzo możliwe, że będziemy mieli do niego dostęp z strony Wpiszmy po adresie i porcie resztę ścieżki /Cypher.matrix. Bingo!. Plik się ściągnął. Możemy go wyświetlić. Mamy kolejną wiadomość, która tym razem zaszyfrowana jest brainfuckiem. Jest to język programowania, którego podstawą jest minimalizm. To pisania w nim programów używa się zaledwie ośmiu znaków. Nie przedłużając. Wrzućmy nasz tekst do konwentera brainfucka do zwykłego czytelnego dla nas tekstu. Wiadomość mówi nam, że najprawdopodobniej istnieje użytkownik SSH o nazwie guest. Znamy też prawie całe hasło. Brakuje nam tylko dwóch znaków. Spróbujmy więc wygenerować słownik na podstawie informacji, które znamy, a następnie zaatakujmy SSH metodą słownikową. Nasze hasło powinno mieć łącznie 8 znkaów, dlatego w dwóch pierwszych parametrach przekazujemy zarówno minimalną jak i maksymalną długość hasła, która równa jest oczywiście 8. Podajemy następnie jakich znaków powinien używać crunch do generowania słownika. Ja wybrałem mixalpha-numeric co oznacza, że mój słownik będzie generował duże i małe litery oraz cyfry. Jeżeli chcielibyście użyć większej lub mniejszej ilości dozwolonych znaków to zachęcam do pobrania pliku z Githuba gdzie są już gotowe zestawy znaków: https://github.com/jaalto/external-sf--crunch-wordlist/blob/master/charset.lst. Kolejną opcją jest t, która w tym przypadku oznacza wstawienie naszych znaków z pliku w miejsca małp. Ostatnim paramterem jest plik wyjściowy czyli plik do którego zostanie zapisany nasz słownik. Włączmy więc atak hydrą na SSH. Teraz wystarczy czekać. Myślę, że możemy sobie odpuścić skanowanie nikto i dirbusterem tych stron. No chyba że, nie uda nam się zalogować do SSH. Bingo! Teraz możemy zalogować się do SSH jako użytkownik guest. Wyświetlmy pliki w naszym katalogu. Niestety wyświetlanie plików nie działa, dodatkowo inne polecenia też nie działają. Dzieje się tak dlatego, że jesteśmy w restrykcyjnej powłoce tj. powłoka z ograniczoną ilością poleceń. Często rbasha używa się z względów bezpiezczeństwa. Ma ona też inne właściwości, których nie będę tutaj omawiał. W każdym razie musimy z niej jakoś wyjść. Spawdźmy jeden z najprostszych sposobów czyli wymuszenie na SSH logowania do zwykłej powłoki. Świetnie, udało się. Możemy teraz przejść do kolejnej części czyli podnoszenia uprawnień. Podnoszenie uprawnieńZacznijmy może od sprawdzenia konfiguracji polecenia sudo. Bingo! Możemy wykonywać wszystkie polecenia jako root. Wystarczy, że znamy hasło, które wykorzystaliśmy do logowanie się na SSH. W takim razie zalogujmy się jako superużytkownik. Teraz wystarczy tylko znaleźć flagę, która najpewniej znajduje się w folderze roota. Właśnie skończyliśmy kolejną maszyne. Według mnie jest to jedna z przyjemniejszych maszyn dzięki, której dowiedziałem się nowych rzeczy. Dziękuje bardzo za dotrwanie do końca.
Niedługo wrzucę kolejny wpis.
0 Comments
Leave a Reply. |