Ako získať prístup k systémovému shellu na akomkoľvek zariadení Samsung Galaxy

Rýchle odkazy

  • Predpoklady
  • Ako využiť akékoľvek zariadenie Samsung Galaxy na získanie prístupu k systémovému shellu
  • Overenie
  • Záver

Každý prvý pondelok v mesiaci spoločnosť Google zverejňuje Bulletin zabezpečenia systému Android. Odhaľuje všetky zmiernené bezpečnostné slabiny naprieč rôznymi komponentmi operačného systému Android as ako aj linuxové jadro a jeho záplaty zaslané samotnou spoločnosťou Google alebo inými tretími stranami dátum. Veľkí výrobcovia OEM, ako je Samsung, majú svoj vlastný pohľad na Android, takže sa rozhodnú vložiť svoje vlastné opravy a aktualizácie aj do bezpečnostných aktualizácií.

S tým povedané, je dosť ťažké postarať sa o každú medzeru. Existuje množstvo vektorov útokov a niekedy si môžete vytvoriť svoj vlastný reťazec zneužitia predtým známa zraniteľnosť len preto, že máte novú metódu na obídenie jednej z nich záruky. To je presne to, čo XDA Senior Member K0mraid3 urobil so štyri roky starou zraniteľnosťou, ktorá mu umožnila získať prístup k systémovému shellu na každom zariadení Samsung Galaxy – vrátane najnovších vlajkových lodí – vonku. Aj keď to nie je to isté ako

mať práva roota, je to dostatočne vysoká eskalácia miestnych privilégií.

Primárny vstupný bod chyby zabezpečenia sa nachádza v rámci prevodu textu na reč Samsung (názov balíka: com.samsung. SMT), predinštalovaná systémová aplikácia, ktorú nájdete na každom zariadení Samsung Galaxy. Cieľom je prejsť na nižšiu verziu nainštalovanej aplikácie na špecifickú zraniteľnú zostavu (v3.0.02.2 aby som bol presný) a potom ho prinútite načítať knižnicu, čo následne otvorí shell so systémovými oprávneniami (UID 1000).

Ak sa chcete o exploite dozvedieť viac, určite sa pozrite Vysvetlenie vedúceho technického redaktora XDA Adama Conwaya. Hovoril s K0mraid3, aby pochopil celý rozsah tohto exploitu a ako to funguje.

  1. Aby som to zopakoval, nejde o prístup typu root (UID 0), ale prístup k systémovému shellu je dostatočne výkonný na spustenie množstva inak obmedzených binárnych súborov.
  2. Dôkaz konceptu K0mraid3 vyžaduje pomocný súbor APK a pred spustením reťazca využívania ho musíte spustiť aspoň raz.
  3. Jedno používateľské rozhranie, t. j. vstavané rutiny úspory energie vlastného vzhľadu Android od spoločnosti Samsung, môžu byť problematické, pretože môžu brániť komunikácii medzi aplikáciou TTS, pomocným súborom APK a shellom. Preto odporúčame vopred nastaviť profil úspory energie pre aplikácie na „Neobmedzený“.

Predpoklady

  1. Stiahnite si predkompilovanú zostavu exploitu z Vlákno fóra XDA alebo oficiálne úložisko GitHub prepojené nižšie: K0mraid3s System Shell Exploit
  2. Rozbaľte archív niekde a mali by ste nájsť zraniteľnú verziu súboru Samsung Text-To-Speech APK (samsungTTSVULN2.apk), pomocnú aplikáciu (Komraid3s_POC_Vx.x.apk) a spustiteľný súbor Windows s názvom systemshell-vx.x.exe.
  3. Uistite sa, že najnovšia verzia ADB je nainštalovaný na vašom PC/Mac/Chromebooku. Tiež nezabudnite nainštalujte/aktualizujte ovládače USB Samsung ak ste používateľom systému Windows.

Ako využiť akékoľvek zariadenie Samsung Galaxy na získanie prístupu k systémovému shellu

Manuálna metóda

  1. Pripojte cieľové zariadenie Galaxy k počítaču so zapnutým ladením USB, uistite sa, že ho môže ADB zistiť, a potom nainštalujte pomocnú aplikáciu.
    adb install Komraid3s_POC_Vx.x.apk
    • Ako už bolo spomenuté, pred pokračovaním v ďalšom kroku aspoň raz otvorte pomocnú aplikáciu.
  2. Teraz pošlite zraniteľnú verziu aplikácie Samsung TTS do /data/local/tmp a zmeňte jej povolenia:
    adb push samsungTTSVULN2.apk /data/local/tmp
    adb shell chmod 777 /data/local/tmp/samsungTTSVULN2.apk
  3. Reštartujte zariadenie. Hneď ako sa dostanete na domovskú obrazovku, spustite nasledujúci príkaz a nahraďte už nainštalovanú verziu aplikácie Samsung TTS zraniteľnou verziou:
    adb shell pm install -r -d -f -g --full --install-reason 3 --enable-rollback /data/local/tmp/samsungTTSVULN2.apk
    • Ak všetko prebehne správne, na konzole by ste mali vidieť správu „Úspech“.
  4. Otvorte shell na cieľovom zariadení otvorením iného okna terminálu a spustením adb shell, potom spustite binárny súbor Netcat a počúvajte prichádzajúce pripojenie na porte 9997 pomocou nasledujúceho príkazu:
    adb shell nc -lp 9997
  5. V tejto fáze musíme vykonať konkrétnu aktivitu aplikácie Samsung TTS, ktorá nám otvorí systémové prostredie.
    • Použite aplikáciu tretej strany, napr toto na vytvorenie skratky „com.samsung. SMT/.gui. Aktivita DownloadList“.
    • Na to isté môžete použiť aj vlastného správcu aktivity systému Android (am). V takom prípade ho môžete spustiť cez ADB (adb shell am start -n com.samsung. SMT/.gui. DownloadList) alebo použite aplikáciu emulátora terminálu na telefóne/tablete, ako je Termux, a spustite nasledujúci príkaz:
      am start -n com.samsung.SMT/.gui.DownloadList
  6. Prepnite späť na prvý shell a mali by ste vidieť novú výzvu so systémovým (UID 1000) privilégiom.

Automatizovaná metóda

Aby to bolo jednoduchšie, K0mraid3 tiež poskytuje ľahko použiteľnú GUI aplikáciu na automatizáciu väčšiny úloh. Majte na pamäti, že aplikácia GUI je len pre Windows, takže ak používate Linux/macOS, je lepšie držať sa manuálnej metódy.

  1. Pripojte cieľové zariadenie Galaxy k počítaču so zapnutým ladením USB, uistite sa, že ho môže ADB zistiť, a potom nainštalujte pomocnú aplikáciu.
    adb install Komraid3s_POC_Vx.x.apk
    • Ako už bolo spomenuté, pred pokračovaním v ďalšom kroku aspoň raz otvorte pomocnú aplikáciu.
  2. S cieľovým zariadením, ktoré môže ADB zistiť, spustite na hostiteľskom počítači systemshell-vx.x.exe.
  3. Kliknite na tlačidlo „START SHELL“. Aplikácia automaticky prejde na staršiu verziu aplikácie Samsung TTS a pokúsi sa otvoriť systémové prostredie.
    • Na telefóne/tablete sa vám môže zobraziť výzva na stiahnutie niektorých hlasových údajov v aplikácii TTS. Nie je potrebné interagovať s týmito možnosťami, pretože nemajú nič spoločné s exploitom.
    • V prípade, že aplikácia po určitom čase zamrzne alebo sa jej nepodarí otvoriť okno shellu, zatvorte ho, reštartujte cieľové zariadenie Galaxy a začnite odznova.
    • Aplikácia Galaxy Store dokáže automaticky aktualizovať a/alebo resetovať profil úspory energie aplikácie TTS na pozadí, takže si ho pred začatím procesu od začiatku skontrolujte.

Overenie

Po získaní prístupu k shellu môžete overiť úroveň privilégií pomocou jedného z nižšie uvedených príkazov:

  • whoami
    • Výstup by mal byť „systém“
  • id -u
    • Výstup by mal byť „1000“

Záver

Typický spôsob dosiahnutia prístupu root na zariadení so systémom Android je najprv odomknúť bootloader, ktorý vám umožní spustiť binárne súbory tretích strán. Keďže sa bezpečnostný model Androidu v podstate rozpadá s rootom, tento krok zámerne deaktivuje jednu z kľúčových bezpečnostných funkcií na zariadení, ktorá preto to musí používateľ výslovne povoliť tak, že zvyčajne povolí prepínač v Možnostiach vývojára a potom vydá príkaz na odomknutie bootloader. Po odomknutí bootloadera môže používateľ zaviesť do systému binárny súbor superužívateľa a tiež aplikáciu na správu superužívateľov (ako Magisk) na kontrolu, ktoré procesy majú prístup k rootovi.

S vyššie uvedeným zneužitím systémového shellu však používateľ nemusí odomknúť bootloader, aby získal eskalované privilégium. Hoci to nie je ani zďaleka root, „systémový“ používateľ je dostatočne schopný na prístup k množstvu nízkoúrovňových oddielov (napr. ako /efs), spustite rôzne servisné a ladiace nástroje a zmeňte mnohé chránené hodnoty rekvizity – to všetko bez toho, aby došlo k vypnutiu Knox. Tieto príklady sa dotýkajú len niekoľkých spôsobov; zlomyseľný herec to môže skombinovať s inými zraniteľnosťami a prísť s nekalejšími činmi.

Budeme musieť počkať a uvidíme, ako sa Google a Samsung vysporiadajú so scenárom. Či tak alebo onak, pravdepodobne by ste mali dočasne zakázať alebo odstrániť aplikáciu Samsung Text-To-Speech.