Analisis dan Pemanfaatan Kerentanan 0day Sistem Windows Microsoft
Pendahuluan
Patch keamanan Microsoft bulan lalu menyertakan kerentanan eskalasi hak istimewa win32k yang dieksploitasi di alam liar, yang hanya ada di sistem Windows awal. Artikel ini akan menganalisis bagaimana penyerang terus mengeksploitasi kerentanan tersebut meskipun langkah-langkah keamanan saat ini terus ditingkatkan. Lingkungan analisis adalah Windows Server 2016.
Latar Belakang Kerentanan
Kerentanan 0day merujuk pada kerentanan yang belum diungkapkan dan diperbaiki, yang dapat dimanfaatkan oleh penyerang untuk menyebabkan kerusakan besar. Kerentanan 0day yang ditemukan di sistem Windows ini dapat memungkinkan hacker untuk mendapatkan kontrol penuh atas sistem, akibatnya termasuk tetapi tidak terbatas pada:
Pencurian informasi pribadi
Sistem crash kehilangan data
Kerugian finansial
Penanaman perangkat lunak berbahaya
Kunci privat kripto dicuri
Aset digital dipindahkan
Dari sudut pandang yang lebih luas, kerentanan ini dapat mempengaruhi seluruh ekosistem Web3 yang berjalan pada infrastruktur Web2.
Analisis Patch
Patching memperbaiki masalah pemrosesan beberapa kali pada penghitungan referensi objek. Analisis komentar kode sumber awal menemukan bahwa, kode asli hanya mengunci objek jendela, tidak mengunci objek menu di dalam jendela, yang mungkin menyebabkan objek menu direferensikan secara salah.
Analisis Eksploitasi Kerentanan
Analisis menunjukkan bahwa dalam fungsi xxxEnableMenuItem, ada dua kemungkinan menu yang dikembalikan oleh fungsi MenuItemState: menu utama jendela atau submenu dalam menu.
Membangun struktur menu bertingkat yang terlipat dengan khusus, dan mengatur atribut tertentu, dapat melewati deteksi fungsi. Ketika fungsi xxxRedrawTitle mengembalikan lapisan pengguna, hapus hubungan referensi menu dan bebaskan objek menu target. Pada akhirnya, dalam fungsi xxxEnableMenuItem, rujukan ke objek menu yang sudah tidak valid.
Implementasi Eksploitasi Kerentanan
Pemikiran keseluruhan
Pertimbangkan dua jenis penggunaan:
Menjalankan kode shellcode
Menggunakan primitif baca-tulis untuk mengubah alamat token
Pilih opsi kedua, bagi proses penggunaan menjadi dua masalah:
Bagaimana memanfaatkan kerentanan UAF untuk mengontrol nilai cbwndextra
Bagaimana cara mencapai primitif baca/tulis yang stabil
Penulisan data awal
Manfaatkan objek nama jendela dalam kelas jendela WNDClass untuk membebaskan objek menu yang terpakai. Temukan kesempatan untuk menulis data dalam fungsi xxxRedrawWindow.
Akhirnya memilih untuk menulis parameter cb-extra HWNDClass melalui operasi bitwise AND 2.
tata letak memori yang stabil
Desain tiga objek HWND secara berurutan, lepaskan objek tengah dan gunakan objek HWNDClass untuk mengisi. Objek HWND di depan dan belakang digunakan untuk:
Menyediakan parameter pemeriksaan tanda
Menyediakan media primitif untuk membaca dan menulis
Menentukan urutan penataan objek dengan tepat melalui alamat pegangan kernel yang bocor.
implementasi read-write primitive
Baca sembarang: GetMenuBarInfo()
Tulis sembarangan:SetClassLongPtr()
Selain penulisan TOKEN, operasi penulisan lainnya menggunakan objek class dari objek jendela pertama.
Ringkasan
Kerentanan win32k mungkin telah diatasi dalam versi baru Windows
Proses pemanfaatan kerentanan relatif sederhana, terutama bergantung pada kebocoran alamat pegangan tumpukan desktop.
Penemuan kerentanan mungkin bergantung pada deteksi cakupan kode yang lebih baik.
Deteksi pembacaan dan penulisan memori yang tidak normal membantu menemukan kerentanan sejenis.
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
13 Suka
Hadiah
13
3
Posting ulang
Bagikan
Komentar
0/400
MidnightTrader
· 18jam yang lalu
Satu lubang besar lagi, Windows benar-benar tidak berfungsi!
Lihat AsliBalas0
TokenDustCollector
· 18jam yang lalu
Kerentanan ini dari Microsoft agak parah, Kunci Pribadi bisa dicuri.
Analisis kerentanan Windows 0day: dari UAF menu ke eskalasi hak istimewa sistem
Analisis dan Pemanfaatan Kerentanan 0day Sistem Windows Microsoft
Pendahuluan
Patch keamanan Microsoft bulan lalu menyertakan kerentanan eskalasi hak istimewa win32k yang dieksploitasi di alam liar, yang hanya ada di sistem Windows awal. Artikel ini akan menganalisis bagaimana penyerang terus mengeksploitasi kerentanan tersebut meskipun langkah-langkah keamanan saat ini terus ditingkatkan. Lingkungan analisis adalah Windows Server 2016.
Latar Belakang Kerentanan
Kerentanan 0day merujuk pada kerentanan yang belum diungkapkan dan diperbaiki, yang dapat dimanfaatkan oleh penyerang untuk menyebabkan kerusakan besar. Kerentanan 0day yang ditemukan di sistem Windows ini dapat memungkinkan hacker untuk mendapatkan kontrol penuh atas sistem, akibatnya termasuk tetapi tidak terbatas pada:
Dari sudut pandang yang lebih luas, kerentanan ini dapat mempengaruhi seluruh ekosistem Web3 yang berjalan pada infrastruktur Web2.
Analisis Patch
Patching memperbaiki masalah pemrosesan beberapa kali pada penghitungan referensi objek. Analisis komentar kode sumber awal menemukan bahwa, kode asli hanya mengunci objek jendela, tidak mengunci objek menu di dalam jendela, yang mungkin menyebabkan objek menu direferensikan secara salah.
Analisis Eksploitasi Kerentanan
Analisis menunjukkan bahwa dalam fungsi xxxEnableMenuItem, ada dua kemungkinan menu yang dikembalikan oleh fungsi MenuItemState: menu utama jendela atau submenu dalam menu.
Membangun struktur menu bertingkat yang terlipat dengan khusus, dan mengatur atribut tertentu, dapat melewati deteksi fungsi. Ketika fungsi xxxRedrawTitle mengembalikan lapisan pengguna, hapus hubungan referensi menu dan bebaskan objek menu target. Pada akhirnya, dalam fungsi xxxEnableMenuItem, rujukan ke objek menu yang sudah tidak valid.
Implementasi Eksploitasi Kerentanan
Pemikiran keseluruhan
Pertimbangkan dua jenis penggunaan:
Pilih opsi kedua, bagi proses penggunaan menjadi dua masalah:
Penulisan data awal
Manfaatkan objek nama jendela dalam kelas jendela WNDClass untuk membebaskan objek menu yang terpakai. Temukan kesempatan untuk menulis data dalam fungsi xxxRedrawWindow.
Akhirnya memilih untuk menulis parameter cb-extra HWNDClass melalui operasi bitwise AND 2.
tata letak memori yang stabil
Desain tiga objek HWND secara berurutan, lepaskan objek tengah dan gunakan objek HWNDClass untuk mengisi. Objek HWND di depan dan belakang digunakan untuk:
Menentukan urutan penataan objek dengan tepat melalui alamat pegangan kernel yang bocor.
implementasi read-write primitive
Selain penulisan TOKEN, operasi penulisan lainnya menggunakan objek class dari objek jendela pertama.
Ringkasan
Kerentanan win32k mungkin telah diatasi dalam versi baru Windows
Proses pemanfaatan kerentanan relatif sederhana, terutama bergantung pada kebocoran alamat pegangan tumpukan desktop.
Penemuan kerentanan mungkin bergantung pada deteksi cakupan kode yang lebih baik.
Deteksi pembacaan dan penulisan memori yang tidak normal membantu menemukan kerentanan sejenis.