Einführung
- Ein beim Umgehen der Windows-Lizenzprüfung entdeckter Bug wurde geheim gehalten, um künftige Aktivierungsmethoden zu bewahren und als Testwerkzeug zu nutzen
- Es wurde eine DRM-Umgehungsmethode namens „Keyhole“ entdeckt, mit der sich Microsoft-Store-Apps oder aktuelle Windows-Editionen leicht lizenzieren lassen
- Nach der Offenlegung von CVE-2024-38184 durch Cisco TALOS wurde beschlossen, die Erkenntnisse zu Keyhole zu teilen
CLiP
- CLiP (Client Licensing Platform) ist ein mit Windows 10 eingeführtes DRM-System, das Microsoft-Store-Apps und die Windows-Aktivierung verwaltet
- Wichtige Binärdateien:
clipup.exe: konvertiert Windows-8-Store-Lizenzen in digitale Lizenzen
clipsvc.dll: ein User-Mode-Dienst, der App-Lizenzen verwaltet
clipc.dll: eine API, über die Anwendungen mit CLiP interagieren können
clipwinrt.dll: API für UWP-Anwendungen
clipsp.sys: ein Kernel-Mode-Treiber, der Lizenzen überprüft
- Bei der Installation einer CLiP-lizenzierten App wird eine signierte XML-Datei an
clipsvc.dll gesendet, nach der Verifizierung an clipsp.sys weitergereicht und im Lizenzspeicher abgelegt
Ein bisschen Schabernack
- In
clipup.exe ist ein gültiger ECDSA-Schlüssel im Klartext gespeichert, sodass jeder XML-Lizenzen leicht signieren kann
- Mit diesem Schlüssel lässt sich die Prüfung von ClipSvc umgehen und beliebige Lizenzblöcke direkt an ClipSp senden
ClipSp entschleiern
- ClipSp ist ein schlecht geschriebener Treiber, in dem viel Code per Copy-and-paste übernommen wurde
- Der Code ist mit Microsofts Obfuskationswerkzeug Warbird versteckt
- Durch das Aufheben der Obfuskation lässt sich der verborgene Code analysieren und nach Bugs durchsuchen
Lizenzblöcke
- Lizenzblöcke speichern wichtige Lizenzinformationen und enthalten mehrere Datenblöcke im TLV-Format (Tag-Länge-Wert)
- Der Signaturblock signiert alle Daten, aber nach der Signatur hinzugefügte Daten werden nicht geprüft
- Durch das Anhängen von Daten nach dem Signaturblock können bestehende Daten überschrieben werden
Viel Schabernack
- Durch das Anhängen von Daten nach dem Signaturblock lassen sich Lizenzen für alle Produkte im Microsoft Store erzeugen
- Allerdings können gerätegebundene Lizenzen nur aus gerätegebundenen App-Lizenzen erzeugt werden
Schabernack-Tutorial
- Eine gerätegebundene App (z. B. Roblox) installieren und die Lizenz mit einem HTTPS-Traffic-Capture-Tool abfangen
- Den Lizenzblock dekodieren, die nötigen Daten ergänzen und als neue XML-Datei verpacken
- Die XML-Datei in den Ordner
C:\ProgramData\Microsoft\Windows\ClipSVC\Install\Migration kopieren und ClipSvc neu starten oder mit dem Befehl clipup -p installieren
- Windows wird dauerhaft aktiviert
Buzzkill
- Cisco TALOS meldete denselben Bug, worauf Microsoft ihn patchte
- Der Bug wurde so behoben, dass Daten nach dem Signaturblock nicht mehr verarbeitet werden
Spenden-Saison
- Der Code zum Erzeugen von Keyhole-Lizenzen sowie die CLiP-Binärdateien wurden veröffentlicht, um weitere Bugs finden zu helfen
Und noch eine andere Geschichte
- Der Code von ClipSp wurde per Copy-and-paste aus dem DRM-System der Xbox One übernommen
- Auch Xbox SP hat denselben Parsing-Bug, aber Keyhole funktioniert auf der Xbox nicht
Danksagung
- Personen, die zur Forschung beigetragen haben: May, asdcorp, echnobas, WitherOrNot, emoose, LukeFZ, KiFilterFiberContext, Phillippe Laulheret, Cisco TALOS, Rairii
Zusammenfassung von GN⁺
- Keyhole ist eine leistungsfähige DRM-Umgehungsmethode, mit der sich Microsoft-Store-Apps und Windows-Editionen leicht lizenzieren lassen
- Sicherheitslücken im CLiP-System können ausgenutzt werden, um Lizenzblöcke zu manipulieren
- Nach einem Bericht von Cisco TALOS hat Microsoft den Bug gepatcht
- Die Struktur ähnelt dem DRM-System der Xbox One
- Dieser Artikel kann dabei helfen, Schwachstellen in DRM-Systemen zu verstehen und die Sicherheit zu verbessern
1 Kommentare
Hacker-News-Kommentare