Ancaman kerentanan 0day pada sistem Win dapat membahayakan keamanan infrastruktur Web3

robot
Pembuatan abstrak sedang berlangsung

Analisis Kerentanan 0day Microsoft: Mungkin Menyebabkan Ancaman Besar bagi Infrastruktur Web3

Bulan lalu, patch keamanan Microsoft menyertakan celah eskalasi hak istimewa win32k yang dieksploitasi di alam liar. Celah ini tampaknya hanya ada di sistem Windows yang lebih awal dan tidak dapat dipicu di Windows 11.

Eksploitasi kerentanan jenis ini telah ada sejak lama. Artikel ini akan menganalisis bagaimana penyerang mungkin terus memanfaatkan kerentanan ini dalam konteks peningkatan langkah-langkah mitigasi baru saat ini. Kami menyelesaikan seluruh proses analisis di lingkungan Windows Server 2016.

Vulnerabilitas 0day merujuk pada celah yang belum diungkapkan dan diperbaiki, yang dapat dimanfaatkan secara jahat tanpa terdeteksi, dan memiliki potensi kerusakan yang besar. Vulnerabilitas 0day yang ditemukan kali ini berada di tingkat sistem Windows, di mana peretas dapat memperoleh kontrol penuh atas Windows melalui celah tersebut.

Sistem yang dikendalikan oleh peretas dapat menyebabkan kebocoran informasi pribadi, keruntuhan sistem, kehilangan data, kerugian finansial, serta penyisipan perangkat lunak berbahaya. Bagi pengguna Web3, kunci pribadi dapat dicuri, dan aset digital dapat dipindahkan. Dari perspektif yang lebih luas, celah ini bahkan dapat mempengaruhi keseluruhan ekosistem Web3 yang berjalan di atas infrastruktur Web2.

Numen Eksklusif: Kerentanan 0day Microsoft dapat mengguncang papan permainan Web3 di tingkat sistem + fisik

Analisis Patch

Setelah menganalisis patch, tampaknya masalahnya hanya karena jumlah referensi objek diproses lebih dari satu kali. Karena kode win32k cukup tua, kami dapat menemukan beberapa komentar sumber awal yang menunjukkan bahwa kode sebelumnya hanya mengunci objek jendela, tanpa mengunci objek menu di dalam objek jendela, di mana objek menu ini mungkin telah dirujuk secara salah.

Numen Eksklusif: Kerentanan 0day Microsoft dapat mengguncang papan permainan Web3 di tingkat sistem + fisik

Pembuktian Konsep Eksploitasi Kerentanan ( PoC )

Kami menemukan bahwa menu yang diterima xxxEnableMenuItem() biasanya sudah terkunci di fungsi lapisan atas. Analisis lebih lanjut menunjukkan bahwa fungsi MenuItemState dalam xxxEnableMenuItem mengembalikan dua kemungkinan menu: menu utama jendela, atau submenu dalam menu( bahkan submenu dari submenu).

Dalam PoC, kami membangun struktur menu empat lapisan khusus, dan menetapkan atribut tertentu pada setiap tingkat menu, untuk melalui deteksi dan penilaian dalam fungsi xxxEnableMenuItem. Langkah kunci termasuk menghapus beberapa hubungan referensi menu, serta melepaskan objek menu tertentu saat xxxRedrawTitle mengembalikan ke lapisan pengguna.

Numen Eksklusif: Kerentanan 0day Microsoft dapat mengguncang papan permainan Web3 di tingkat sistem+fisik

Eksploitasi Kerentanan ( Exp )

Pemikiran keseluruhan

Kami terutama mempertimbangkan dua arah pemanfaatan: mengeksekusi kode shellcode, dan memanfaatkan primitif baca-tulis untuk memodifikasi alamat token. Mengingat berbagai faktor, kami memilih yang terakhir.

Seluruh exp dapat dipecah menjadi dua masalah kunci: bagaimana memanfaatkan kerentanan UAF untuk mengontrol nilai cbwndextra, dan bagaimana untuk mencapai primitif baca/tulis yang stabil setelah mengontrol nilai cbwndextra.

Numen Eksklusif: Kerentanan 0day Microsoft dapat mengungkap permainan Web3 di tingkat sistem + fisik

melakukan penulisan data pertama

Kami menggunakan objek nama jendela dalam kelas jendela WNDClass untuk mengalokasikan objek menu yang dibebaskan. Kuncinya adalah menemukan lokasi dalam struktur alamat yang dapat kami bangun yang bisa ditulis data secara sembarangan.

Akhirnya kami memilih untuk melakukan penulisan melalui operasi AND 2 pada sebuah flag di dalam fungsi xxxRedrawWindow. Kami menulis cb-extra dari HWNDClass dan bukan cb-extra dari objek jendela, untuk mengontrol tata letak memori dengan lebih baik.

Numen Eksklusif: Kerentanan 0day Microsoft dapat mengguncang papan permainan Web3 dari sisi sistem + fisik

tata memori yang stabil

Kami merancang tata letak memori dari setidaknya tiga objek HWND berukuran 0x250 byte yang berurutan, melepaskan yang tengah, dan menggunakan objek HWNDClass berukuran 0x250 byte. Objek HWND di depan dan di belakang masing-masing digunakan untuk memeriksa parameter dan sebagai media primitif baca-tulis.

Kami menentukan dengan tepat apakah objek jendela yang diminta diatur sesuai harapan dengan menggunakan alamat pegangan kernel yang bocor di memori tumpukan.

Numen Eksklusif: Kerentanan 0day Microsoft dapat meruntuhkan permainan Web3 di tingkat sistem + fisik

Modifikasi primitif baca-tulis

Kami menggunakan GetMenuBarInfo() untuk melakukan pembacaan sembarang, dan menggunakan SetClassLongPtr() untuk melakukan penulisan sembarang. Selain operasi penulisan yang menggantikan TOKEN, semua penulisan lainnya dilakukan dengan memanfaatkan objek kelas dari objek jendela pertama menggunakan offset.

Numen Eksklusif: Kerentanan 0day Microsoft dapat mengungkap permainan Web3 di tingkat sistem + fisik

Ringkasan

  1. Meskipun kerentanan win32k sudah ada sejak lama, Microsoft sedang mencoba untuk merestrukturisasi kode kernel terkait menggunakan Rust, dan kerentanan semacam ini mungkin akan dihilangkan di sistem baru di masa depan.

  2. Proses eksploitasi kerentanan kali ini relatif sederhana, tantangan utamanya adalah bagaimana mengontrol penulisan pertama. Kerentanan ini masih sangat bergantung pada kebocoran alamat pegangan tumpukan desktop, yang tetap menjadi risiko keamanan bagi sistem yang lebih tua.

  3. Penemuan kerentanan ini mungkin berkat deteksi cakupan kode yang lebih baik.

  4. Untuk deteksi pemanfaatan kerentanan, selain memperhatikan titik kunci dari fungsi pemicu kerentanan, juga harus melakukan deteksi yang tepat terhadap tata letak memori yang tidak biasa dan operasi baca/tulis data jendela.

Numen Eksklusif: Kerentanan 0day Microsoft dapat mengguncang papan permainan Web3 di tingkat sistem + fisik

Lihat Asli
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.
  • Hadiah
  • 7
  • Bagikan
Komentar
0/400
CryptoPhoenixvip
· 15jam yang lalu
Ini adalah kesempatan untuk membangun kembali keyakinan! Lakukan cadangan Cold Wallet dengan baik, keluar dari zona bawah untuk menjaga keselamatan sangat penting.
Lihat AsliBalas0
SignatureVerifiervip
· 19jam yang lalu
*sigh* sekali lagi validasi yang secara teknis tidak memadai... kapan mereka akan belajar menghitung dengan benar?
Lihat AsliBalas0
FlatTaxvip
· 19jam yang lalu
Segera perbarui sistemnya sebelum berbicara, hati-hati akunmu bisa hilang.
Lihat AsliBalas0
MysteriousZhangvip
· 19jam yang lalu
Sudah win lagi, tahun berapa masih menjalankan node di win
Lihat AsliBalas0
TooScaredToSellvip
· 19jam yang lalu
Jangan pakai dompet komputer tua, cepat pindahkan!
Lihat AsliBalas0
LootboxPhobiavip
· 19jam yang lalu
Menakutkan Kunci Pribadi Dompet Dingin rasa aman++
Lihat AsliBalas0
CryptoCross-TalkClubvip
· 19jam yang lalu
Bear Market bercanda, bull run Perdagangan Mata Uang Kripto, memang membuat Microsoft membuatkan saya sebuah suckers cepat!
Lihat AsliBalas0
  • Sematkan
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)