Sådan får du adgang til systemskal på enhver Samsung Galaxy-enhed

hurtige links

  • Forudsætninger
  • Sådan udnytter du enhver Samsung Galaxy-enhed for at få adgang til systemskal
  • Verifikation
  • Konklusion

Den første mandag i hver måned udgiver Google Android sikkerhedsbulletin. Den afslører alle de afbødede sikkerhedssårbarheder på tværs af forskellige komponenter i Android OS som samt Linux-kernen og deres patches indsendt af Google selv eller andre tredjeparter til det dato. Store OEM'er som Samsung har deres eget bud på Android, så de vælger også at rulle deres egne patches og opdateringer ind i sikkerhedsopdateringer.

Når det er sagt, er det ret svært at tage sig af hvert smuthul. Der findes et væld af angrebsvektorer, og nogle gange kan du lave din egen udnyttelseskæde baseret på en tidligere kendt sårbarhed, bare fordi du har en ny metode til at omgå en af ​​de sikkerhedsforanstaltninger. Dette er præcis, hvad XDA Senior Member K0mraid3 gjorde med en fire år gammel sårbarhed, som gjorde det muligt for ham at få systemskaladgang på alle Samsung Galaxy-enheder - inklusive de seneste flagskibe - derude. Selvom det ikke er det samme som

have root-rettigheder, det er en tilstrækkelig høj lokal privilegie-eskalering.

Det primære indgangspunkt for sårbarheden ligger i Samsung Text-To-Speech (pakkenavn: com.samsung. SMT), en forudindlæst systemapp, der kan findes på alle Samsung Galaxy-enheder. Ideen er at nedgradere den installerede version af appen til en specifik sårbar build (v3.0.02.2 for at være præcis), og tving den derefter til at indlæse et bibliotek, som igen åbner en shell med systemprivilegium (UID 1000).

Hvis du vil lære mere om udnyttelsen, skal du sørge for at tjekke ud XDA Lead Technical Editor Adam Conways forklaring. Han talte med K0mraid3 for at forstå det fulde omfang af denne udnyttelse, og hvordan den fungerer.

  1. For at gentage, dette er ikke root (UID 0) adgang, men system shell-adgangen er kraftig nok til at udføre en masse ellers begrænsede binære filer.
  2. K0mraid3s proof of concept kræver en hjælper-APK, og du skal køre den mindst én gang, før du starter udnyttelseskæden.
  3. Én brugergrænseflade, dvs. Samsungs brugerdefinerede Android-skins indbyggede strømbesparende rutiner kan være besværlige, da de kan hæmme kommunikationen mellem TTS-appen, hjælper-APK'en og skallen. Derfor foreslår vi at indstille strømspareprofilen til "Ubegrænset" for apps på forhånd.

Forudsætninger

  1. Download den forudkompilerede build af udnyttelsen fra XDA forum tråd eller det officielle GitHub-lager, der er linket nedenfor: K0mraid3s System Shell udnyttelse
  2. Udpak arkivet et sted, og du bør finde den sårbare version af Samsung Text-To-Speech APK (samsungTTSVULN2.apk), hjælpeappen (Komraid3s_POC_Vx.x.apk) og en Windows-eksekverbar med navnet systemshell-vx.x.exe.
  3. Sørg for, at den seneste version af ADB er installeret på din pc/Mac/Chromebook. Husk også at installer/opdater Samsung USB-driverne hvis du er Windows-bruger.

Sådan udnytter du enhver Samsung Galaxy-enhed for at få adgang til systemskal

Manuel metode

  1. Tilslut mål Galaxy-enheden til din pc med USB-fejlretning slået til, sørg for, at den kan findes af ADB, og installer derefter hjælpeappen.
    adb install Komraid3s_POC_Vx.x.apk
    • Som nævnt tidligere skal du åbne hjælpeappen mindst én gang, før du fortsætter til næste trin.
  2. Skub nu den sårbare version af Samsung TTS-appen til /data/local/tmp og skift dens tilladelser:
    adb push samsungTTSVULN2.apk /data/local/tmp
    adb shell chmod 777 /data/local/tmp/samsungTTSVULN2.apk
  3. Genstart enheden. Så snart du er på startskærmen, skal du køre følgende kommando for at erstatte den allerede installerede version af Samsung TTS-appen med den sårbare:
    adb shell pm install -r -d -f -g --full --install-reason 3 --enable-rollback /data/local/tmp/samsungTTSVULN2.apk
    • Hvis alt går rigtigt, bør du se en "Succes"-meddelelse på konsollen.
  4. Åbn en shell på målenheden ved at åbne et andet terminalvindue og udføre adb skal, kør derefter Netcat binær, og lyt efter en indgående forbindelse på 9997-porten med følgende kommando:
    adb shell nc -lp 9997
  5. På dette stadium skal vi udføre en specifik aktivitet i Samsung TTS-appen, som åbner systemskallen for os.
    • Brug en tredjepartsapp som f.eks det her for at oprette en genvej til "com.samsung. SMT/.gui. DownloadList” aktivitet.
    • Du kan også bruge Androids egen aktivitetsadministrator (am) til at gøre det samme. I så fald kan du udføre det via ADB (adb shell am start -n com.samsung. SMT/.gui. DownloadList) eller brug en terminalemulator-app på din telefon/tablet som Termux og kør følgende kommando:
      am start -n com.samsung.SMT/.gui.DownloadList
  6. Skift tilbage til den første shell, og du skulle se en ny prompt med systemprivilegium (UID 1000).

Automatiseret metode

For at gøre tingene lettere, tilbyder K0mraid3 også en brugervenlig GUI-applikation til at automatisere de fleste af opgaverne. Husk på, at GUI-appen kun er Windows, så hvis du er en Linux/macOS-bruger, er det bedre at holde fast i den manuelle metode.

  1. Tilslut mål Galaxy-enheden til din pc med USB-fejlretning aktiveret, sørg for, at den kan findes af ADB, og installer derefter hjælpeappen.
    adb install Komraid3s_POC_Vx.x.apk
    • Som nævnt tidligere skal du åbne hjælpeappen mindst én gang, før du fortsætter til næste trin.
  2. Med målenheden synlig af ADB, skal du køre systemshell-vx.x.exe på værts-pc'en.
  3. Klik på knappen "START SHELL". Appen nedgraderer automatisk Samsung TTS-appen og forsøger at åbne systemskallen.
    • På din telefon/tablet kan du muligvis se TTS-appen, der beder dig om at downloade nogle stemmedata. Der er ingen grund til at interagere med disse muligheder, da de ikke har noget at gøre med udnyttelsen.
    • Hvis appen hænger eller undlader at åbne shell-vinduet efter nogen tid, skal du lukke det, genstarte Galaxy-enheden og starte forfra.
    • Galaxy Store-appen kan automatisk opdatere og/eller nulstille strømspareprofilen for TTS-appen i baggrunden, så sørg for at tjekke det, før du starter processen fra bunden.

Verifikation

Når du har shell-adgang, kan du bekræfte privilegieniveauet ved hjælp af en af ​​kommandoerne nedenfor:

  • whoami
    • Outputtet skal være "system"
  • id -u
    • Udgangen skal være "1000"

Konklusion

Den typiske måde at opnå root-adgang på en Android-enhed er først at låse bootloaderen op, som giver dig mulighed for at starte tredjeparts binære filer. Da Androids sikkerhedsmodel dybest set falder fra hinanden med root, er dette trin med vilje at deaktivere en af ​​de vigtigste sikkerhedsfunktioner på enheden, som er grunden til, at brugeren eksplicit skal tillade det at ske ved typisk at aktivere en skift i Developer Options og derefter udstede en oplåsningskommando til bootloader. Når bootloaderen er låst op, kan brugeren introducere en superbruger binær til systemet og også en superbrugeradministrationsapp (som Magisk) for at kontrollere, hvilke processer der har adgang til root.

Med system shell-udnyttelsen nævnt ovenfor behøver brugeren dog ikke at låse bootloaderen op for at få et eskaleret privilegium. Selvom det langt fra er root, er "system"-brugeren i stand nok til at få adgang til en række lavniveau-partitioner (f.eks. som /efs), start forskellige service- og fejlfindingsværktøjer og ændr mange beskyttede prop-værdier - alt sammen uden at snuble Knox. Disse eksempler berører kun nogle få måder; en ondsindet aktør kan kombinere dette med andre sårbarheder og komme med mere ondsindede handlinger.

Vi bliver nødt til at vente og se, hvordan Google og Samsung tackler scenariet. Uanset hvad, bør du nok deaktivere eller fjerne Samsung Text-To-Speech-appen indtil videre.