Jak získat přístup k systémovému prostředí na jakémkoli zařízení Samsung Galaxy

Rychlé odkazy

  • Předpoklady
  • Jak využít jakékoli zařízení Samsung Galaxy k získání přístupu k systémovému prostředí
  • Ověření
  • Závěr

Každé první pondělí v měsíci Google zveřejňuje Bulletin zabezpečení systému Android. Odhaluje všechny zmírněné bezpečnostní zranitelnosti napříč různými součástmi operačního systému Android as stejně jako linuxové jádro a jeho záplaty předložené samotným Googlem nebo jinými třetími stranami datum. Velcí výrobci OEM, jako je Samsung, mají svůj vlastní pohled na Android, takže se rozhodnou zavést své vlastní opravy a aktualizace také do aktualizací zabezpečení.

Díky tomu je docela těžké postarat se o každou mezeru. Existuje nepřeberné množství útočných vektorů a někdy si můžete vytvořit svůj vlastní řetězec exploitů na základě dříve známou zranitelnost jen proto, že máte novou metodu, jak obejít jednu z nich pojistky. To je přesně to, co XDA Senior Member K0mraid3 udělal se čtyři roky starou zranitelností, která mu umožnila získat přístup k systémovému prostředí na každém zařízení Samsung Galaxy – včetně nejnovějších vlajkových lodí – venku. I když to není totéž jako

s právy roota, je to dostatečně vysoká eskalace místních oprávnění.

Primární vstupní bod chyby zabezpečení se nachází v rámci převodu textu na řeč Samsung (název balíčku: com.samsung. SMT), předinstalovaná systémová aplikace, kterou najdete na každém zařízení Samsung Galaxy. Cílem je downgradovat nainstalovanou verzi aplikace na konkrétní zranitelnou verzi (v3.0.02.2 abych byl přesný), a pak jej vynutíte načíst knihovnu, což zase otevře shell se systémovým oprávněním (UID 1000).

Pokud se chcete o exploitu dozvědět více, určitě se podívejte Vysvětlovač vedoucího technického redaktora XDA Adama Conwaye. Mluvil s K0mraid3, aby pochopil celý rozsah tohoto exploitu a jak to funguje.

  1. Abych to zopakoval, nejedná se o přístup root (UID 0), ale přístup k systémovému shellu je dostatečně výkonný, aby spustil spoustu jinak omezených binárních souborů.
  2. Důkaz konceptu K0mraid3 vyžaduje pomocný soubor APK a před spuštěním řetězce exploitů jej musíte spustit alespoň jednou.
  3. Jedno uživatelské rozhraní, tj. vestavěné rutiny pro úsporu energie vlastního vzhledu Android společnosti Samsung, mohou být problematické, protože mohou bránit komunikaci mezi aplikací TTS, pomocným souborem APK a shellem. Proto doporučujeme u aplikací předem nastavit profil úspory energie na „Neomezený“.

Předpoklady

  1. Stáhněte si předkompilované sestavení exploitu z Vlákno na fóru XDA nebo oficiální úložiště GitHub odkazované níže: K0mraid3s System Shell Exploit
  2. Rozbalte archiv někde a měli byste najít zranitelnou verzi souboru Samsung Text-To-Speech APK (samsungTTSVULN2.apk), pomocná aplikace (Komraid3s_POC_Vx.x.apk) a spustitelný soubor Windows s názvem systemshell-vx.x.exe.
  3. Ujistěte se, že nejnovější verze ADB je nainstalován na vašem PC/Mac/Chromebooku. Také pamatujte nainstalujte/aktualizujte ovladače USB Samsung pokud jste uživatelem Windows.

Jak využít jakékoli zařízení Samsung Galaxy k získání přístupu k systémovému prostředí

Manuální metoda

  1. Připojte cílové zařízení Galaxy k počítači se zapnutým laděním USB, ujistěte se, že je zjistitelné pomocí ADB, a poté nainstalujte pomocnou aplikaci.
    adb install Komraid3s_POC_Vx.x.apk
    • Jak bylo zmíněno dříve, před pokračováním k dalšímu kroku alespoň jednou otevřete pomocnou aplikaci.
  2. Nyní přesuňte zranitelnou verzi aplikace Samsung TTS do /data/local/tmp a změňte její oprávnění:
    adb push samsungTTSVULN2.apk /data/local/tmp
    adb shell chmod 777 /data/local/tmp/samsungTTSVULN2.apk
  3. Restartujte zařízení. Jakmile se dostanete na domovskou obrazovku, spusťte následující příkaz a nahraďte již nainstalovanou verzi aplikace Samsung TTS zranitelnou:
    adb shell pm install -r -d -f -g --full --install-reason 3 --enable-rollback /data/local/tmp/samsungTTSVULN2.apk
    • Pokud vše půjde správně, měla by se na konzole zobrazit zpráva „Úspěch“.
  4. Otevřete shell na cílovém zařízení otevřením jiného okna terminálu a spuštěním adb shell, poté spusťte binární soubor Netcat a poslouchejte příchozí připojení na portu 9997 pomocí následujícího příkazu:
    adb shell nc -lp 9997
  5. V této fázi musíme provést konkrétní aktivitu aplikace Samsung TTS, která nám otevře systémové prostředí.
    • Použijte aplikaci třetí strany, jako je tento vytvořit zástupce „com.samsung. SMT/.gui. Aktivita DownloadList“.
    • K tomu můžete také použít vlastní správce aktivit systému Android (am). V takovém případě jej můžete spustit přes ADB (adb shell am start -n com.samsung. SMT/.gui. DownloadList) nebo použijte na svém telefonu/tabletu aplikaci emulátoru terminálu, jako je Termux, a spusťte následující příkaz:
      am start -n com.samsung.SMT/.gui.DownloadList
  6. Přepněte zpět do prvního shellu a měli byste vidět novou výzvu se systémovým (UID 1000) oprávněním.

Automatizovaná metoda

Aby to bylo jednodušší, K0mraid3 také poskytuje snadno použitelnou GUI aplikaci pro automatizaci většiny úloh. Mějte na paměti, že aplikace GUI je pouze pro Windows, takže pokud používáte Linux/macOS, je lepší držet se ruční metody.

  1. Připojte cílové zařízení Galaxy k počítači se zapnutým laděním USB, ujistěte se, že je zjistitelné pomocí ADB, a poté nainstalujte pomocnou aplikaci.
    adb install Komraid3s_POC_Vx.x.apk
    • Jak bylo zmíněno dříve, před pokračováním k dalšímu kroku alespoň jednou otevřete pomocnou aplikaci.
  2. S cílovým zařízením zjistitelným pomocí ADB spusťte na hostitelském počítači systemshell-vx.x.exe.
  3. Klikněte na tlačítko „START SHELL“. Aplikace automaticky přejde na nižší verzi aplikace Samsung TTS a pokusí se otevřít systémové prostředí.
    • Na vašem telefonu/tabletu se může zobrazit výzva aplikace TTS ke stažení některých hlasových dat. S těmito možnostmi není třeba interagovat, protože nemají nic společného s exploitem.
    • V případě, že aplikace po nějaké době přestane fungovat nebo se jí nepodaří otevřít okno shellu, zavřete jej, restartujte cílové zařízení Galaxy a začněte znovu.
    • Aplikace Galaxy Store může automaticky aktualizovat a/nebo resetovat profil úspory energie aplikace TTS na pozadí, takže jej před zahájením procesu od začátku nezapomeňte zkontrolovat.

Ověření

Jakmile získáte přístup k shellu, můžete ověřit úroveň oprávnění pomocí jednoho z níže uvedených příkazů:

  • whoami
    • Výstup by měl být „systém“
  • id -u
    • Výstup by měl být „1000“

Závěr

Typickým způsobem, jak na zařízení Android dosáhnout přístupu root, je nejprve odemknout bootloader, který vám umožní spouštět binární soubory třetích stran. Vzhledem k tomu, že se bezpečnostní model Androidu v podstatě rozpadá s rootem, je tímto krokem záměrně deaktivována jedna z klíčových bezpečnostních funkcí na zařízení, která to je důvod, proč to uživatel musí výslovně povolit tím, že obvykle povolí přepínač v možnostech vývojáře a poté vydá příkaz k odemknutí zavaděč. Jakmile je bootloader odemčen, může uživatel zavést do systému binární soubor superuživatele a také aplikaci pro správu superuživatele (jako je Magisk) pro kontrolu, které procesy mají přístup k root.

S výše zmíněným exploitem systémového shellu však uživatel nemusí odemykat bootloader, aby získal eskalované oprávnění. Ačkoli to zdaleka není root, „systémový“ uživatel je dostatečně schopen přistupovat k řadě nízkoúrovňových oddílů (např. jako /efs), spusťte různé servisní a ladicí nástroje a změňte mnoho chráněných hodnot prop – to vše bez vypnutí Knox. Tyto příklady se dotýkají pouze několika způsobů; zlomyslný herec to může zkombinovat s dalšími zranitelnostmi a přijít s nekalejšími akcemi.

Budeme muset počkat a uvidíme, jak se Google a Samsung s tímto scénářem vypořádají. V obou případech byste pravděpodobně měli prozatím zakázat nebo odebrat aplikaci Samsung Text-To-Speech.