Keyhole – Membuat lisensi Windows Store sendiri
(massgrave.dev)- Keyhole adalah bug bypass DRM yang memungkinkan pembuatan lisensi untuk aplikasi Microsoft Store dan edisi Windows terbaru dengan melewati alur verifikasi lisensi CLiP
- CLiP menggunakan rantai kepercayaan yang memverifikasi lisensi XML bertanda tangan di
clipsvc.dll, lalu meneruskanSPLicenseBlockkeclipsp.sysuntuk diperiksa ulang di kernel clipup.exeberisi kunci ECDSA untuk penandatanganan lisensi XML tanpa obfuscation, sehingga ClipSvc dapat menerima lisensi XML yang ditandatangani secara arbitrer- Kerentanan sebenarnya adalah bahwa data setelah blok tanda tangan pada blok lisensi tidak diverifikasi, tetapi masih dapat menimpa blok sebelumnya dengan tipe yang sama; lisensi Windows yang device-locked juga memerlukan lisensi aplikasi device-locked
- Cisco TALOS melaporkan bug yang sama ke Microsoft pada 8 April 2024, dan setelah diperbaiki parser kini langsung berhenti saat menemukan blok tanda tangan sehingga blok setelahnya tidak diproses
Sifat Keyhole dan latar belakang pengungkapannya
- Keyhole adalah bug yang ditemukan saat meneliti bypass pemeriksaan lisensi Windows, dan merupakan metode bypass DRM yang memungkinkan pemberian lisensi untuk aplikasi Microsoft Store atau edisi Windows terbaru
- Sejumlah bug tetap dirahasiakan untuk disimpan sebagai metode aktivasi atau alat pengujian di masa depan, tetapi setelah CVE-2024-38184 dipublikasikan melalui Cisco TALOS, detail Keyhole juga ikut diungkap
- Bug ini ditemukan secara independen pada waktu yang kurang lebih sama dengan saat dilaporkan ke Microsoft
Struktur pemrosesan lisensi CLiP
- CLiP (Client Licensing Platform) adalah sistem yang diperkenalkan di Windows 10, terutama untuk menerapkan DRM aplikasi Microsoft Store, dan juga terintegrasi dengan aktivasi Windows
- Komponen utama di Windows adalah sebagai berikut
clipup.exe: memigrasikan lisensi Store Windows 8, genuine ticket, dan product key menjadi lisensi digitalclipsvc.dll: layanan mode pengguna yang mengelola lisensi aplikasiclipc.dll: API untuk aplikasi yang berinteraksi dengan CLiPclipwinrt.dll: API untuk aplikasi UWP yang menggunakan Windows Runtimeclipsp.sys: driver mode kernel yang memverifikasi lisensi
- Saat aplikasi berlisensi CLiP dipasang, lisensi XML bertanda tangan dikirim ke
clipsvc.dll, lalu setelah verifikasi tanda tangan XML data disimpan ke%PROGRAMDATA%\Microsoft\Windows\ClipSVC\tokens.dat - Setelah itu blok lisensi bertanda tangan pada tag
SPLicenseBlockdiekstrak dan dikirim keclipsp.sys, lalu setelah diverifikasi disimpan ke penyimpanan lisensi CLiPHKLM\SYSTEM\CurrentControlSet\Control\{7746D80F-97E0-4E26-9543-26B41FC22F79} - Penyimpanan ini secara default dilindungi agar tidak terlihat, tetapi tetap bisa diakses jika izin diubah
Kunci penandatanganan yang tertinggal di clipup.exe
clipup.exemenyimpan kunci ECDSA yang valid untuk menandatangani lisensi XML tanpa obfuscation- Kunci ini awalnya digunakan untuk mengirim lisensi sementara ke Microsoft Store agar mendapat lisensi digital, tetapi ClipSvc juga menerima kunci yang sama untuk lisensi aplikasi
- Akibatnya, lisensi XML arbitrer dapat ditandatangani atau ditandatangani ulang, sehingga pemeriksaan mode pengguna ClipSvc bisa dilewati dan blok lisensi yang diinginkan dapat langsung dikirim ke
clipsp.sys - Pada tahap ini rantai kepercayaan di level mode pengguna sudah lumpuh, dan pertanyaan yang tersisa adalah apakah ClipSp juga bisa dikelabui
Analisis ClipSp dan deobfuscation Warbird
- Banyak bagian kode ClipSp disembunyikan dengan Warbird, alat obfuscation internal milik Microsoft
- ClipSp membungkus pemanggilan kode yang diobfuscate dengan fungsi dekripsi dan enkripsi, mirip dengan cara Warbird bekerja pada program mode pengguna
- Symbol
clipsp.sysyang tersedia di server Microsoft membantu analisis, dan dengan pendekatan KiFilterFiberContext, fungsi dekripsi dapat dijalankan secara manual untuk melihat kode yang tersembunyi - Perilaku Warbird di mode pengguna dapat dirujuk di warbird-docs
Format blok lisensi dan bug Keyhole
- Informasi lisensi penting di CLiP berada dalam blok lisensi, dan formatnya didokumentasikan di CikExtractor
- Blok lisensi menggunakan format TLV (tag-length-value)
- Setiap sub-blok memiliki tipe data, panjang data, dan data aktual
- Misalnya tipe
0xC9berarti License Information, dan panjang0xAberarti data sepanjang 10 byte
- Di akhir blok lisensi selalu ada blok tanda tangan bertipe
0xCC, yang berisi tanda tangan untuk semua data sebelumnya beserta informasi kunci yang dipakai untuk menandatangani - Hasil eksperimen menunjukkan bahwa data yang ditempel setelah blok tanda tangan tidak diverifikasi, dan jika ada beberapa blok dengan tipe yang sama, blok terakhir akan menimpa blok sebelumnya
- Karena itu, dengan menambahkan data lisensi baru setelah blok tanda tangan, informasi lisensi yang ada bisa diubah; metode inilah yang dinamai Keyhole
Cakupan yang mungkin dan batasannya
- Metode ini memungkinkan pembuatan lisensi untuk item yang dijual di Microsoft Store dengan memanfaatkan lisensi Microsoft Store lain
- Karena bahkan aplikasi gratis pun memiliki banyak lisensi, pada praktiknya tersedia banyak sumber untuk membuat lisensi item yang diinginkan
- Namun, lisensi device-locked tidak bisa dibuat dari lisensi device-unlocked
- Lisensi digital Windows bersifat device-locked, jadi untuk membuat lisensi Windows dibutuhkan lisensi aplikasi device-locked seperti Roblox
- Dengan cara ini dimungkinkan untuk mengaktifkan Enterprise LTSC dengan lisensi digital, atau mengaktifkan server KMS yang sah menggunakan generic key, hal-hal yang sebelumnya tidak dapat dilakukan
Alur reproduksi yang dipublikasikan dan cara perbaikannya
- Alur pembuatan lisensi Windows meliputi pemasangan aplikasi device-locked, penyadapan lisensi yang datang dari
https://licensing.mp.microsoft.com/v7.0/licenses/content, decoding lisensi dan ekstraksi blok, penambahan data baru, packaging XML dan penandatanganan, penyalinan keC:\ProgramData\Microsoft\Windows\ClipSVC\Install\Migration, lalu me-restart ClipSvc atau menjalankanclipup -p - TALOS-2024-1964 dari Cisco TALOS melaporkan bug yang sama ke Microsoft pada 8 April 2024
- Bug ini mungkin tampak seperti sekadar masalah DRM, tetapi karena Keyhole dapat menjadi titik masuk menuju bug ClipSp yang lebih serius, hal ini masuk dalam cakupan pengungkapan TALOS
- Parser blok lisensi yang telah diperbaiki kini langsung berhenti saat menemukan blok tanda tangan, dan tidak memproses blok setelah tanda tangan, sehingga Keyhole berhasil ditutup
Materi yang dipublikasikan dan kaitannya dengan Xbox One
- Setelah Keyhole dipublikasikan, kode pembuatan lisensi Keyhole dan kumpulan biner CLiP beserta symbol untuk membantu analisis juga dirilis
- Sebagian besar kode ClipSp diketahui disalin dari sistem DRM Xbox One
- Xbox One memiliki chip SP berbasis TPM seperti pada PC modern, yaitu secure processor, dengan fungsi utama menegakkan penandatanganan kode dan verifikasi lisensi
- Format lisensi XML CLiP dan sebagian besar blok lisensi berbasis TLV diambil dari sistem DRM Xbox One
- Xbox SP juga memiliki bug parsing yang sama seperti ClipSp, tetapi karena blok data dan blok terkait tanda tangan diparse secara terpisah, Keyhole tidak berfungsi di Xbox
1 komentar
Komentar Hacker News
Jadi, kalau detailnya sudah ditemukan, apakah itu berarti sekarang kita bisa mengunduh game Xbox gratis langsung dari Microsoft Store?
Maksudnya, apakah Xbox sekarang berada dalam kondisi diretas total seperti PS Vita?
Hanya saja, sayangnya ini tidak berlaku bagi orang yang mengaktifkan pembaruan otomatis di Xbox. Tampaknya perangkat lunak sistem terbaru menyertakan versi kernel yang lebih tinggi daripada yang didukung oleh eksploit collateral-damage
Akan bagus kalau kita juga bisa mendapatkan lisensi untuk memasang aplikasi Lego Boost for Windows 10 yang masih ada di Windows Store sampai tahun 2020
Sejauh yang saya pahami, kalau punya lisensinya aplikasi itu masih bisa diunduh, tetapi tidak lagi ditawarkan kepada pengguna baru
Kalau saya membacanya dengan benar, Microsoft kemungkinan bisa mempersempit cakupan penerapan kunci penandatanganan lisensi sementara, jadi jendela waktu untuk membuat lisensi permanen mungkin tidak akan lama
Apakah ini bisa dipakai untuk mengaktifkan ekstensi HEVC tanpa akun Microsoft? Menyebalkan sekali bahwa lisensi patennya tidak bisa ditangani secara kolektif
0: https://massgrave.dev/unsupported_products_activation#hevc-v...
ms-windows-store://pdp?productId=9N4WGH0Z6VHQ
ms-windows-store://pdp?productId=9PMMSR1CGPWG
ms-windows-store://pdp?productid=9MVZQVXJBQ9V
ms-windows-store://pdp?productid=9N4D0MSMP0PT
ms-windows-store://pdp?productid=9N95Q1ZZPMH4
Hal-hal seperti ini selama puluhan tahun justru menjadi saluran distribusi dan komunikasi Windows yang paling efektif
Ironisnya, saya kemungkinan benar-benar akan memakainya secara serius untuk memainkan game Guitar Hero dari cakram fisik di perangkat keras asli. Gamenya sudah terpasang, tetapi tanpa cakram yang dimasukkan ke DVD drive yang rusak itu, statusnya tidak punya “lisensi” untuk dimainkan
Ironi yang lebih besar lagi, sekalipun ini berhasil, saya mungkin tetap tidak bisa membaca file save game saya karena kunci publik konsolnya sudah masuk daftar pencabutan. Itu bisa diakali dengan menandatangani ulang file CON dengan nilai default 0
Mungkin sebentar lagi akan muncul ironi ketiga. Semua ini terasa sangat familier. Luar biasa sekali
Bug ini pada dasarnya lebih mirip platform pivot retroaktif untuk hari ketika input yang tidak disanitasi dan pelarian konteks kebetulan bertemu
Di permukaan ini tampak seperti sekadar menukar stiker digital, tetapi karena Microsoft terlalu mengungkit kesuksesan, kompatibilitas mundur, dan utang teknisnya sendiri sehingga menolak perubahan yang merusak, beberapa kesalahan yang tampak kecil jadi berdampak besar dan bersifat permanen
Jika antivirus memblokir halamannya, lihat di sini: https://archive.is/90XGW
Bukankah Clip sudah ada jauh sebelum Xbox One?
Setelah membaca artikelnya, terutama bagian bahwa mesin ini dicopy-paste dari mesin DRM Xbox, apakah masih ada yang percaya bahwa Pluton, yang juga dibawa dari Xbox, benar-benar demi keamanan pengguna akhir? Bukankah pada akhirnya ini soal Microsoft ingin memiliki DRM yang bisa dipaksakan di PC?
Sebagai catatan, Pluton juga sudah ada di chip laptop Intel terbaru, dan di AMD sudah ada sejak beberapa waktu. Kira-kira berapa lama lagi sampai Windows mewajibkan ini?
Saya admin Microsoft, jadi orang-orang di perusahaan suka konfigurasi super-terkunci seperti Win11 dan Intune. Bagi saya esensi Windows bukan itu, melainkan alat administrasi yang bagus dan kompatibilitas mundur
Pluton akan menjadi TPM lain lagi. Mereka akan meluncurkannya, menunggu 5 tahun, lalu menjadikannya wajib. Microsoft punya waktu
Meski begitu, Anda masih bisa memasang Linux di PC yang dijual dengan Windows, masih bisa memasang perangkat lunak pihak ketiga di Windows yang tidak didapat dari Store, dan masih bisa menonton film bajakan yang diunduh dari torrent
Kalau tidak masalah tidak bisa mengganti gambar desktop, Windows yang tidak didaftarkan atau tidak dibayar pun masih bisa dijalankan
Apakah Microsoft berpotensi diuntungkan? Tentu saja. Namun itu tidak meniadakan motivasi keamanan pengguna yang nyata maupun manfaat yang akhirnya diterima pengguna akhir
“Data di belakang blok tanda tangan sama sekali tidak diperiksa, bahkan bisa menimpa data yang muncul sebelumnya. Jika blok dengan jenis yang sama disimpan bersama, blok terakhir akan menimpa semua blok sebelumnya. Jadi jika Anda ingin mengubah data lisensi, cukup buat blok itu dan letakkan di belakang blok tanda tangan”
Benar-benar mencengangkan