Analisis dan Pemanfaatan Kerentanan 0day pada Sistem Windows Microsoft
Baru-baru ini, pembaruan keamanan Microsoft memperbaiki kerentanan eskalasi hak akses di kernel Windows yang telah dieksploitasi oleh peretas. Kerentanan ini terutama ada di versi awal sistem Windows, bukan di Windows 11. Artikel ini akan menganalisis bagaimana penyerang terus memanfaatkan kerentanan ini di tengah perbaikan langkah-langkah keamanan yang terus berkembang.
Latar Belakang Kerentanan
Ini adalah kerentanan 0day di tingkat sistem Windows, yang memungkinkan penyerang untuk mendapatkan kontrol penuh atas Windows. Bahaya setelah dikendalikan termasuk kebocoran informasi pribadi, keruntuhan sistem, kehilangan data, kerugian finansial, dan penyisipan perangkat lunak berbahaya. Bagi pengguna Web3, kunci privat dapat dicuri, dan aset digital menghadapi risiko dipindahkan. Dari perspektif yang lebih luas, kerentanan ini dapat mempengaruhi ekosistem Web3 yang berjalan di infrastruktur Web2.
Analisis Patch
Analisis kode patch menunjukkan bahwa ini tampaknya merupakan masalah di mana penghitung referensi objek diproses satu kali terlalu banyak. Melalui komentar kode sumber sebelumnya, dapat diketahui bahwa kode sebelumnya hanya mengunci objek jendela, dan tidak mengunci objek menu di dalam objek jendela, yang dapat menyebabkan objek menu dirujuk secara salah.
Reproduksi Kerentanan
Kami membangun struktur menu bertingkat khusus yang terdiri dari empat lapisan untuk memicu kerentanan. Menu-menu ini harus memenuhi beberapa kondisi tertentu agar dapat lolos dari deteksi fungsi terkait. Pada akhirnya, saat kembali ke lapisan pengguna, dengan menghapus hubungan referensi antar menu, objek menu target dilepaskan, sehingga referensi berikutnya terhadap objek tersebut menjadi tidak valid.
Eksploitasi Kerentanan
Gagasan utama untuk memanfaatkan kerentanan ini adalah dengan mengubah alamat token melalui operasi baca/tulis primitive. Seluruh proses pemanfaatan dapat dibagi menjadi dua langkah kunci: pertama, bagaimana memanfaatkan kerentanan UAF untuk mengontrol nilai cbwndextra, dan kedua, bagaimana membangun operasi baca/tulis yang stabil berdasarkan nilai cbwndextra yang telah dikontrol.
Kami berhasil mencapai penulisan data pertama dengan merancang tata letak memori dengan cermat, memanfaatkan hubungan antara objek jendela dan objek HWNDClass. Kemudian, kami membangun struktur memori yang diperlukan dengan secara berurutan mengalokasikan tiga objek HWND dan melepaskan satu di tengah.
Dalam hal membaca dan menulis primitif, kami menggunakan GetMenuBarInfo() untuk melakukan pembacaan sembarang, dan menggunakan SetClassLongPtr() untuk melakukan penulisan sembarang. Selain operasi penggantian TOKEN, penulisan lainnya dilakukan dengan memanfaatkan objek kelas dari objek jendela pertama melalui offset.
Ringkasan
Microsoft sedang mencoba menggunakan Rust untuk merenovasi kode terkait win32k, di masa depan kerentanan semacam ini mungkin dapat dihindari dalam sistem baru.
Proses pemanfaatan kerentanan ini relatif sederhana, kesulitan utamanya terletak pada bagaimana mengontrol penulisan pertama.
Penemuan celah mungkin bergantung pada deteksi cakupan kode yang lebih baik.
Untuk deteksi kerentanan, selain memperhatikan titik fungsi kunci, juga harus melakukan deteksi yang ditargetkan terhadap tata letak memori yang tidak biasa dan pembacaan serta penulisan data.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
9 Suka
Hadiah
9
5
Bagikan
Komentar
0/400
BearEatsAll
· 6jam yang lalu
Sistem lama ini tidak segera diganti, ya?
Lihat AsliBalas0
ZkSnarker
· 6jam yang lalu
fakta menarik: masih menjalankan windows 7 di prod sejujurnya
Lihat AsliBalas0
NightAirdropper
· 6jam yang lalu
Wuhu bull批...peringatan hard drive meledak
Lihat AsliBalas0
ser_we_are_early
· 6jam yang lalu
win7 teman masih di sini?
Lihat AsliBalas0
GasFeeAssassin
· 6jam yang lalu
Baru bangun tidur, tidak ada pembaruan patch keamanan sistem, merasa lebih aman
Analisis kerentanan 0day pada kernel Windows: keamanan aset Web3 terancam
Analisis dan Pemanfaatan Kerentanan 0day pada Sistem Windows Microsoft
Baru-baru ini, pembaruan keamanan Microsoft memperbaiki kerentanan eskalasi hak akses di kernel Windows yang telah dieksploitasi oleh peretas. Kerentanan ini terutama ada di versi awal sistem Windows, bukan di Windows 11. Artikel ini akan menganalisis bagaimana penyerang terus memanfaatkan kerentanan ini di tengah perbaikan langkah-langkah keamanan yang terus berkembang.
Latar Belakang Kerentanan
Ini adalah kerentanan 0day di tingkat sistem Windows, yang memungkinkan penyerang untuk mendapatkan kontrol penuh atas Windows. Bahaya setelah dikendalikan termasuk kebocoran informasi pribadi, keruntuhan sistem, kehilangan data, kerugian finansial, dan penyisipan perangkat lunak berbahaya. Bagi pengguna Web3, kunci privat dapat dicuri, dan aset digital menghadapi risiko dipindahkan. Dari perspektif yang lebih luas, kerentanan ini dapat mempengaruhi ekosistem Web3 yang berjalan di infrastruktur Web2.
Analisis Patch
Analisis kode patch menunjukkan bahwa ini tampaknya merupakan masalah di mana penghitung referensi objek diproses satu kali terlalu banyak. Melalui komentar kode sumber sebelumnya, dapat diketahui bahwa kode sebelumnya hanya mengunci objek jendela, dan tidak mengunci objek menu di dalam objek jendela, yang dapat menyebabkan objek menu dirujuk secara salah.
Reproduksi Kerentanan
Kami membangun struktur menu bertingkat khusus yang terdiri dari empat lapisan untuk memicu kerentanan. Menu-menu ini harus memenuhi beberapa kondisi tertentu agar dapat lolos dari deteksi fungsi terkait. Pada akhirnya, saat kembali ke lapisan pengguna, dengan menghapus hubungan referensi antar menu, objek menu target dilepaskan, sehingga referensi berikutnya terhadap objek tersebut menjadi tidak valid.
Eksploitasi Kerentanan
Gagasan utama untuk memanfaatkan kerentanan ini adalah dengan mengubah alamat token melalui operasi baca/tulis primitive. Seluruh proses pemanfaatan dapat dibagi menjadi dua langkah kunci: pertama, bagaimana memanfaatkan kerentanan UAF untuk mengontrol nilai cbwndextra, dan kedua, bagaimana membangun operasi baca/tulis yang stabil berdasarkan nilai cbwndextra yang telah dikontrol.
Kami berhasil mencapai penulisan data pertama dengan merancang tata letak memori dengan cermat, memanfaatkan hubungan antara objek jendela dan objek HWNDClass. Kemudian, kami membangun struktur memori yang diperlukan dengan secara berurutan mengalokasikan tiga objek HWND dan melepaskan satu di tengah.
Dalam hal membaca dan menulis primitif, kami menggunakan GetMenuBarInfo() untuk melakukan pembacaan sembarang, dan menggunakan SetClassLongPtr() untuk melakukan penulisan sembarang. Selain operasi penggantian TOKEN, penulisan lainnya dilakukan dengan memanfaatkan objek kelas dari objek jendela pertama melalui offset.
Ringkasan
Microsoft sedang mencoba menggunakan Rust untuk merenovasi kode terkait win32k, di masa depan kerentanan semacam ini mungkin dapat dihindari dalam sistem baru.
Proses pemanfaatan kerentanan ini relatif sederhana, kesulitan utamanya terletak pada bagaimana mengontrol penulisan pertama.
Penemuan celah mungkin bergantung pada deteksi cakupan kode yang lebih baik.
Untuk deteksi kerentanan, selain memperhatikan titik fungsi kunci, juga harus melakukan deteksi yang ditargetkan terhadap tata letak memori yang tidak biasa dan pembacaan serta penulisan data.