Technologia

Jak uzyskać dostęp do powłoki systemowej na dowolnym urządzeniu Samsung Galaxy

  • 24 stycznia, 2023
  • 7 min read
Jak uzyskać dostęp do powłoki systemowej na dowolnym urządzeniu Samsung Galaxy


Bez odblokowywania bootloadera lub wyłączania Knox!


Szybkie linki

  • Jak wykorzystać dowolne urządzenie Samsung Galaxy, aby uzyskać dostęp do powłoki systemu

W pierwszy poniedziałek każdego miesiąca Google publikuje Biuletyn Bezpieczeństwa Androida. Ujawnia wszystkie złagodzone luki w zabezpieczeniach różnych komponentów systemu operacyjnego Android, a także jądra Linuksa i ich poprawek przesłanych do tej daty przez Google lub inne strony trzecie. Duzi producenci OEM, tacy jak Samsung, mają własne podejście do Androida, więc decydują się również na wprowadzanie własnych poprawek i aktualizacji do aktualizacji zabezpieczeń.


Powiedziawszy to, dość trudno jest zająć się każdą luką. Istnieje mnóstwo wektorów ataków, a czasami możesz stworzyć własny łańcuch exploitów w oparciu o wcześniej znaną lukę tylko dlatego, że masz nową metodę obejścia jednego z zabezpieczeń. Dokładnie to zrobił starszy członek XDA K0mraid3 z czteroletnią luką, która pozwoliła mu uzyskać dostęp do powłoki systemu na każdym urządzeniu Samsung Galaxy — w tym najnowszych flagowcach — tam. Chociaż nie jest to to samo, co posiadanie uprawnień roota, jest to wystarczająco wysoka lokalna eskalacja uprawnień.

Główny punkt wejścia luki znajduje się w Samsung Text-To-Speech (nazwa pakietu: com.samsung.SMT), fabrycznie załadowanej aplikacji systemowej, którą można znaleźć na każdym urządzeniu Samsung Galaxy. Pomysł polega na obniżeniu zainstalowanej wersji aplikacji do określonej podatnej na ataki wersji (v3.0.02.2 dokładniej), a następnie zmusić go do załadowania biblioteki, co z kolei otworzy powłokę z uprawnieniami systemowymi (UID 1000).

Jeśli chcesz dowiedzieć się więcej o exploicie, zapoznaj się z wyjaśnieniem głównego redaktora technicznego XDA, Adama Conwaya. Rozmawiał z K0mraid3, aby zrozumieć pełny zakres tego exploita i sposób jego działania.

  1. Powtarzam, nie jest to dostęp root (UID 0), ale dostęp do powłoki systemowej jest wystarczająco silny, aby wykonać kilka innych ograniczonych plików binarnych.
  2. Weryfikacja koncepcji K0mraid3 wymaga pomocniczego pakietu APK i musisz go uruchomić przynajmniej raz przed uruchomieniem łańcucha exploitów.
  3. Jeden interfejs użytkownika, tj. wbudowane procedury oszczędzania energii niestandardowej skóry Samsunga na Androida, mogą być kłopotliwe, ponieważ mogą utrudniać komunikację między aplikacją TTS, pomocniczym pakietem APK i powłoką. Dlatego sugerujemy wcześniejsze ustawienie profilu oszczędzania energii na „Nieograniczony” dla aplikacji.
Profil oszczędzania baterii Samsung TTS ustawiony na nieograniczony

Wymagania wstępne

  1. Pobierz wstępnie skompilowaną wersję exploita z wątku na forum XDA lub z oficjalnego repozytorium GitHub, do którego link znajduje się poniżej: Exploit powłoki systemowej K0mraid3s
  2. Wypakuj gdzieś archiwum i powinieneś znaleźć podatną na ataki wersję Samsung Text-To-Speech APK (samsungTTSVULN2.apk), aplikację pomocniczą (Komraid3s_POC_Vx.x.apk) oraz plik wykonywalny Windows o nazwie systemshell-vx.x.exe.
  3. Upewnij się, że na komputerze PC/Mac/Chromebook jest zainstalowana najnowsza wersja ADB. Pamiętaj także, aby zainstalować/zaktualizować sterowniki Samsung USB, jeśli jesteś użytkownikiem systemu Windows.

Jak wykorzystać dowolne urządzenie Samsung Galaxy, aby uzyskać dostęp do powłoki systemu

Metoda ręczna

  1. Podłącz docelowe urządzenie Galaxy do komputera z włączonym debugowaniem USB, upewnij się, że jest wykrywalne przez ADB, a następnie zainstaluj aplikację pomocniczą.
    adb install Komraid3s_POC_Vx.x.apk
    • Jak wspomniano wcześniej, otwórz aplikację pomocniczą co najmniej raz przed przejściem do następnego kroku.
  2. Teraz przenieś wrażliwą wersję aplikacji Samsung TTS do /data/local/tmp i zmień jej uprawnienia:
    adb push samsungTTSVULN2.apk /data/local/tmp
    adb shell chmod 777 /data/local/tmp/samsungTTSVULN2.apk
  3. Uruchom ponownie urządzenie. Jak tylko znajdziesz się na ekranie głównym, uruchom następujące polecenie, aby zastąpić już zainstalowaną wersję aplikacji Samsung TTS podatną na ataki wersją:
    adb shell pm install -r -d -f -g --full --install-reason 3 --enable-rollback /data/local/tmp/samsungTTSVULN2.apk
    • Jeśli wszystko pójdzie dobrze, na konsoli powinien pojawić się komunikat „Sukces”.
  4. Otwórz powłokę na urządzeniu docelowym, otwierając inne okno terminala i uruchamiając powłoka adbnastępnie uruchom plik binarny Netcat i nasłuchuj połączenia przychodzącego na porcie 9997 za pomocą następującego polecenia:
    adb shell nc -lp 9997
  5. Na tym etapie musimy wykonać określoną czynność aplikacji Samsung TTS, która otworzy dla nas powłokę systemową.
  6. Wróć do pierwszej powłoki i powinieneś zobaczyć nowy monit z uprawnieniami systemowymi (UID 1000).

Metoda automatyczna

Aby to ułatwić, K0mraid3 zapewnia również łatwą w użyciu aplikację GUI do automatyzacji większości zadań. Pamiętaj, że aplikacja GUI jest dostępna tylko dla systemu Windows, więc jeśli jesteś użytkownikiem systemu Linux/macOS, lepiej trzymać się metody ręcznej.

  1. Podłącz docelowe urządzenie Galaxy do komputera z włączonym debugowaniem USB, upewnij się, że jest wykrywalne przez ADB, a następnie zainstaluj aplikację pomocniczą.
    adb install Komraid3s_POC_Vx.x.apk
    • Jak wspomniano wcześniej, otwórz aplikację pomocniczą co najmniej raz przed przejściem do następnego kroku.
  2. Po wykryciu urządzenia docelowego przez ADB uruchom systemshell-vx.x.exe na komputerze hosta.
  3. Kliknij przycisk „START SHELL”. Aplikacja automatycznie obniży wersję aplikacji Samsung TTS i spróbuje otworzyć powłokę systemową.
    • Na telefonie/tablecie możesz zobaczyć aplikację TTS z monitem o pobranie niektórych danych głosowych. Nie ma potrzeby interakcji z tymi opcjami, ponieważ nie mają one nic wspólnego z exploitem.
    • Jeśli aplikacja zawiesi się lub nie otworzy okna powłoki po pewnym czasie, zamknij je, uruchom ponownie docelowe urządzenie Galaxy i zacznij od nowa.
    • Aplikacja Galaxy Store może automatycznie aktualizować i/lub resetować profil oszczędzania energii aplikacji TTS w tle, więc sprawdź to przed rozpoczęciem procesu od zera.

Weryfikacja

Po uzyskaniu dostępu do powłoki możesz zweryfikować poziom uprawnień za pomocą jednego z poniższych poleceń:

  • whoami
    • Dane wyjściowe powinny być „systemowe”
  • id -u
    • Na wyjściu powinno być „1000”

Dostęp do powłoki systemowej na urządzeniu Samsung Galaxy

Wniosek

Typowym sposobem uzyskania uprawnień administratora na urządzeniu z systemem Android jest najpierw odblokowanie programu ładującego, który umożliwia uruchamianie plików binarnych innych firm. Ponieważ model bezpieczeństwa Androida zasadniczo rozpada się wraz z rootowaniem, ten krok polega na celowym wyłączeniu jednej z kluczowych funkcji bezpieczeństwa na urządzeniu, dlatego użytkownik musi wyraźnie na to zezwolić, zwykle włączając przełącznik w Opcjach programisty, a następnie wydając odblokowanie polecenie do bootloadera. Po odblokowaniu bootloadera użytkownik może wprowadzić plik binarny superużytkownika do systemu, a także aplikację do zarządzania superużytkownikiem (taką jak Magisk), aby kontrolować, które procesy mają dostęp do roota.

Jednak w przypadku wspomnianego powyżej exploita powłoki systemowej użytkownik nie musi odblokowywać programu ładującego, aby uzyskać eskalację uprawnień. Chociaż daleko mu do bycia rootem, użytkownik „systemowy” może uzyskać dostęp do wielu partycji niskiego poziomu (takich jak /efs), uruchamiać różne narzędzia serwisowe i debugujące oraz zmieniać wiele chronionych wartości rekwizytów — a wszystko to bez nawet wyłączania Knox . Te przykłady dotyczą tylko kilku sposobów; złośliwy aktor może połączyć to z innymi lukami i wymyślić bardziej nikczemne działania.

Będziemy musieli poczekać i zobaczyć, jak Google i Samsung poradzą sobie z tym scenariuszem. Tak czy inaczej, prawdopodobnie powinieneś na razie wyłączyć lub usunąć aplikację Samsung Text-To-Speech.


Źródło

Warto przeczytać!  Fire Boltt wprowadza 3 nowe smartwatche w Indiach, wszystkie w cenie poniżej 3000 Rs