Hakowanie dysku sieciowego WD My Book od zera do roota

dodał 13 lutego 2015 o 09:52 w kategorii HowTo  z tagami:
Hakowanie dysku sieciowego WD My Book od zera do roota

Zapomnieliście hasła administratora do swojego dysku sieciowego? Większość z Was pewnie po sprawdzeniu że nie ma żadnego znanego exploita przywróci urządzenie do ustawień fabrycznych. Ale nie Filippo Valsorda – on się tak łatwo nie poddaje.

Filippo wyciągnął z szafy swój dysk WD My Book World Edition II. Dysk wylądował w szafie po tym, jak w trakcie eksperymentów Filippo tak zmodyfikował ustawienia SSH, że nie mógł się już do niego dostać. Przy okazji zdążył także zapomnieć większość haseł. Nie poddał się jednak i odkrył kilka ciekawych błędów, które pozwoliły mu odzyskać kontrolę nad urządzeniem.

Magiczna kopia konfiguracji

Filippo zaczął od zalogowania się na konto zwykłego użytkownika – to hasło na szczęście pamiętał (dopiero później okaże się, że też nie było potrzebne). Pamiętając różne ciekawe błędy z innych urządzeń zaczął od znalezienia opcji wykonania kopii zapasowej konfiguracji urządzenia. Funkcja ta jest dostępna dla zwykłego użytkownika.

Kopia konfiguracji

Kopia konfiguracji

Kiedy jednak spojrzał do wygenerowanego pliku zobaczył, że jest on zaszyfrowany. Wyglądał tak:

Próby analizy trochę trwały, lecz nie doprowadziły do sukcesu. Base64 nie zadziałało a co więcej przy ponownym pobraniu pliku Filippo otrzymał inną treść – system generował za każdym pobraniem inny wynik.

Niestety po odcięciu dostępu SSH nie mógł zajrzeć do kodu skryptu by sprawdzić procedurę szyfrowania. Był już bliski rozebrania na składniki pierwsze obrazu z aktualizacją oprogramowania, kiedy jego znajomy znalazł w sieci pełen kod źródłowy urządzenia. Czemu WD go opublikowało? Nie wiadomo, ale bardzo pomogło to w dalszej analizie.

Okazało się, że plik konfiguracyjny to plik TAR zaszyfrowany dedykowanym programem i stałym kluczem. W zestawie był również program deszyfrujący, zatem wkrótce plik konfiguracyjny był już czytelny:

Niestety hasło było przechowywane w formacie funkcji skrótu. Po co jednak łamać skrót, skoro można po prostu wgrać plik konfiguracyjny (odtworzenie kopii bezpieczeństwa) ze zmodyfikowanym hasłem?

Jak dobrać się do konfiguracji SSH

Kiedy już udało się zmodyfikować hasło administratora i zalogować z odpowiednimi uprawnieniami przyszedł czas na kolejny krok, czyli odzyskanie dostępu SSH. Niestety w pliku konfiguracyjnym usługi /etc/sshd_config znajdował się błędny wpis AllowUsers który uniemożliwiał logowanie.

Dostęp do pliku konfiguracyjnego ma oczywiście tylko root, jednak pojawił się cień nadziei, ponieważ interfejs WWW również działa z uprawnieniami roota. Filippo postanowił zatem sprawdzić, czy uda mu się nadpisać konfigurację SSH wgrywając plik z odpowiednią ścieżką jako część procesu przywracania kopii bezpieczeństwa pliku konfiguracyjnego. Pierwsza próba z umieszczeniem w archiwum nowego pliku /etc/sshd_config się nie powiodła. Pliki były rozpakowywane w /tmp, lecz nie zadziałała również sztuczka z ../etc/sshd_config. Lecz kiedy Filippo stworzył odpowiedniego symlinka…

nadpisanie konfiguracji SSH okazało się możliwe.

No to teraz bez hasła użytkownika

Filippo pamiętał swoje hasło użytkownika. Co jednak gdyby go nie znał? Postanowił sprawdzić jak wygląda proces pobierania kopii pliku konfiguracyjnego i odkrył, że choć dla nieuwierzytelnionego użytkownika serwer odpowiada kodem 302 Redirect, to zaraz potem serwuje plik z konfiguracją.

Oznacza to, że jeśli wystawiliście WD My Book World Series II do internetu, to lada moment ktoś inny może zostać administratorem urządzenia.