
Exploit, den ich im Oktober 2022 mit dem Android-Paketmanager-Binary (pm) und der Art und Weise, wie es Debugging-Flags verarbeitete, entdeckte, wurde bis März 2023 behoben. Verwendet CVE-2019-16253 als Payload, um eine System-Shell zu erhalten.
Bereits im Jahr 2019 wurde eine Sicherheitslücke entdeckt, die später als „CVE-2019-16253“ bekannt wurde und die TTS-Engine von Samsung in Versionen vor 3.0.02.7 betraf. Dieser Exploit ermöglichte es einem lokalen Angreifer, Berechtigungen auf Systemebene zu erlangen, und wurde später von Samsung behoben.
Im Wesentlichen akzeptierte die TTS-App von Samsung blindlings alle Daten, die sie von der TTS-Engine erhielt. Man kann der TTS-Engine eine Bibliothek übergeben, die dann an die TTS-Anwendung weitergeleitet wird, welche die Bibliothek wiederum lädt und mit Systemberechtigungen (UID 1000 unter Android) ausführt. Dies wurde später gepatcht, sodass die TTS-App die Daten der Engine und die installierte Version überprüft und diese spezielle Sicherheitslücke geschlossen wurde.
Mit Android 10 führte Google jedoch die Möglichkeit ein, eine Anwendung zurückzusetzen, indem sie mit dem Parameter ENABLE_ROLLBACK installiert wird. Dies erlaubt es dem Benutzer, eine installierte App-Version auf eine frühere Version derselben App zurückzusetzen. Ich glaube, dass ein Versehen dazu geführt hat, dass dies auch auf Samsungs Text-to-Speech-Anwendung sowie auf jede andere Anwendung auf jedem aktuell verfügbaren Android 10+-Gerät ausgeweitet werden kann.
Der Ursprung dieser Kill-Chain liegt in der '-d'-Flag, die dem Paketmanager-Befehl beim Installieren einer Anwendung hinzugefügt wird. Sie sollte nur für debuggbare Apps funktionieren, funktioniert aber auch für nicht-debuggbare Anwendungen, weshalb die TTS-App zwangsweise zurückgestuft werden kann.
Mit anderen Worten: Obwohl der Exploit von 2019 behoben und eine aktualisierte Version der TTS-App verteilt wurde, wurden zunächst ein und nun mehrere Workarounds & Umgehungen entdeckt, um sie auf Geräten zu installieren und auszunutzen, die drei (und vielleicht vier) Jahre später veröffentlicht wurden. Dies wirft die Frage auf, wie viele frühere Exploits wiederbelebbar sind.
Im März veröffentlichte Samsung einen Patch für den Exploit. Ich konnte jedoch schnell einen Workaround für den März-Patch von Samsung finden, der inzwischen ebenfalls gemeldet und gepatcht wurde, womit die zweijährige Saga der berüchtigten „TTS System Shell“ abgeschlossen ist.
Einfache Anleitung --
1 Installiere alle APKs, öffne sie mindestens einmal.
2 Starte neu. Wenn das Gerät neu startet, führe den folgenden Befehl über ADB aus.
"adb shell pm install -r -d -f -g --full --install-reason 3 --enable-rollback /data/local/tmp/samsungTTSVULN2.apk"
3 Gib in einer Konsole nc -lp 9999 ein.
4 Führe in einer zweiten Konsole den folgenden Befehl aus: adb shell am start -n com.samsung.SMT/.gui.DownloadList
FERTIG.
Wenn es Probleme gibt, dass es nicht startet, deinstalliere SMT (Samsung Text-To-Speech) vollständig, installiere dann die verwundbare Version neu und versuche es ab Schritt 3 erneut.
GEPATCHT AB 02/2023 Wie auf XDA zu sehen, bevor die öffentliche Offenlegung von XDA-Moderatoren entfernt wurde. Es wird ansonsten hier als Archiv unverändert bleiben.
Es wird erwartet, dass dies für alle Samsung-Mobilgeräte funktioniert, die zum Zeitpunkt der Erstellung dieses Artikels hergestellt wurden, mit Ausnahme einiger JDM-Geräte. (19.01.2023)
Coole Dinge, die funktionieren:
Der einfache Weg -
Schritt 1 - Lade „Komraids System Shell.zip“ herunter (im Anhang befindet sich die neueste Version) und extrahiere es auf dem Desktop.
Schritt 2 - Übertrage die „samsungTTSVULN2.apk“ nach /data/local/tmp
Schritt 3 - Stelle sicher, dass USB-Debugging EIN und der Computer autorisiert ist. Stelle auch sicher, dass der Energiesparmodus AUS ist.
Schritt 4 - Installiere komraids_POC_V1.5.apk, starte das Gerät neu.
Schritt 5 - Wenn das Gerät vollständig neugestartet und entsperrt ist, führe systemshell.exe aus.
Schritt 6 - Du solltest dich jetzt in einer Shell mit UID 1000 befinden. Viel Spaß. Sei vorsichtig, womit du herumspielst.
Hinweise: Die .exe muss nur einmal nach jedem Neustart ausgeführt werden. Du kannst sie verwenden, wenn du möchtest, oder du kannst selbst eine System-Shell öffnen, indem du Schritt 5 aus dem Abschnitt „How it works?“ unten befolgst.
Sei nicht dumm, ich übernehme keine Verantwortung für irgendwelche dummen Sachen, die du anstellst. PWNED - K0mraid3 2022-10-06 175216.png
Großer Dank an @oakieville für die .exe und viel Hilfe bei der Anpassung des Codes dieses Projekts.
Dieses Projekt wurde Ihnen präsentiert von VAULT-TEC Dev Ops!