Windows sistemindeki 0day açığı, Web3 güvenlik tehditlerini tetikliyor. Uzmanlar, kullanma sürecini analiz ediyor.

robot
Abstract generation in progress

Microsoft Windows Sistemi 0day Açığı Analizi ve Kullanımı

Son zamanlarda Microsoft tarafından yayımlanan güvenlik yamasında, kullanılan bir win32k yükseltme açığı bulunmaktadır. Bu açık, esas olarak daha eski Windows sistem versiyonlarında mevcuttur ve Windows 11'de tetiklenemez. Bu makalede, mevcut güvenlik önlemlerinin sürekli güçlendiği bir bağlamda, saldırganların bu tür açıkları nasıl kullanmaya devam ettiğini analiz edeceğiz. Analiz sürecimiz Windows Server 2016 ortamında tamamlanmıştır.

Açık Arka Plan

0day açığı, henüz kamuya açıklanmamış ve düzeltilmemiş güvenlik açıklarını ifade eder; bu, finansal piyasalardaki T+0 işlem kavramına benzer. Bu tür açıklar keşfedildiğinde, fark edilmeden kötü niyetli bir şekilde kullanılabilir ve büyük zararlara yol açabilir.

Bu keşfedilen Windows sistemindeki 0day açığı, saldırganların sisteme tamamen erişim sağlamasına olanak tanıyor. Bu, kişisel bilgilerin ifşası, sistem çökmesi, veri kaybı, mali kayıplar gibi ciddi sonuçlara yol açabilir. Web3 açısından bakıldığında, kullanıcıların özel anahtarları çalınabilir ve dijital varlıklar transfer edilebilir. Daha geniş bir perspektiften, bu açık, Web2 altyapısı üzerine inşa edilmiş olan Web3 ekosistemini etkileyebilir.

Numen Özel: Microsoft 0day açığı, Web3 oyununu sistem ve fiziksel düzeyde alt üst edebilir

Açık Analizi

Yamanı kodunu analiz ederek, bunun bir nesne referans sayımı hatası olduğunu keşfettik. Daha önceki win32k kodundaki yorumlar, yalnızca pencere nesnesinin kilitlendiğini ve pencere içindeki menü nesnesinin kilitlenmediğini gösteriyor, bu da menü nesnesinin yanlış bir şekilde referans alınmasına neden olabilir.

Daha derinlemesine bir analiz, xxxEnableMenuItem fonksiyonunda döndürülen menü nesnesinin ana pencere menüsü, alt menü veya daha derin bir menü olabileceğini ortaya koydu. Bu, POC oluşturma konusunda bir fikir sağlıyor.

Numen özel: Microsoft 0day açığı, Web3 oyununu sistemik ve fiziksel düzeyde altüst edebilir

POC Uygulaması

Özel bir çok katmanlı menü yapısı oluşturarak, belirli bir ilişkiye sahip dört menü nesnesi içeriyoruz. Bu menülerin özelliklerini ve ilişkilerini dikkatlice ayarlayarak, xxxEnableMenuItem fonksiyonunun kontrolünü atlayabilir ve fonksiyon döndüğünde kritik menü nesnelerini serbest bırakabiliriz. Böylece, bu nesneye sonraki atıflarda UAF açığı tetiklenecektir.

Numen Özel: Microsoft 0day açığı, Web3 oyununu sistem ve fiziksel düzeyde alt üst edebilir

Açık Kullanımı ( EXP ) ile gerçekleştirildi

Genel düşünce

İki tür istismar yönünü değerlendirdik: shellcode çalıştırmak ve okuma/yazma ilkelere token'ı değiştirmek. Sonunda, daha yüksek sürüm Windows'ta daha uygulanabilir olduğu için ikincisini seçtik. Tüm istismar sürecini iki adımda ayırdık: UAF aracılığıyla cbwndextra değerini nasıl kontrol edeceğimiz ve kontrol edilen cbwndextra ile istikrarlı okuma/yazma ilkelere nasıl ulaşacağımız.

Numen Özel: Microsoft 0day açığı, Web3 oyununu sistem ve fiziksel düzeyde alt üst edebilir

başlangıç verisi yazma

Serbest bırakılmış menü nesnesinin belleğini işgal etmek için pencere türü WNDClass'ın ad nesnesini kullanıyoruz. Çeşitli olası yazma noktalarını analiz ederek, nihayetinde xxxRedrawWindow fonksiyonunda nesne bayrağının AND işlemi kullanılarak HWNDClass'ın cb-extra değerine yazma işlemini seçtik.

Numen özel: Microsoft 0day açığı sistem + fiziksel düzeyde Web3 oyununun maskesini kaldırabilir

bellek düzeni

Üç ardışık HWND nesnesinden oluşan bir bellek düzeni tasarladık, ortadaki nesne serbest bırakıldı ve HWNDClass nesnesi tarafından kullanıldı. Önceki ve sonraki HWND nesneleri, sırasıyla tespiti atlatmak ve nihai okuma/yazma ilkelini gerçekleştirmek için kullanılır. Sızan çekirdek tanıtıcı adresi aracılığıyla, bu nesnelerin dizilimini hassas bir şekilde kontrol edebiliriz.

Numen Özel: Microsoft 0day açığı, sistem + fiziksel düzeyde Web3 oyununu alt üst edebilir

okuma yazma ilkeleri gerçekleştirme

Herhangi bir okuma işlemi GetMenuBarInfo fonksiyonunu kullanırken, herhangi bir yazma işlemi SetClassLongPtr fonksiyonunu kullanır. TOKEN'ın yazımı ikinci pencerenin class nesnesine bağımlıyken, diğer yazma işlemleri birinci pencere nesnesinin class nesnesini ofset aracılığıyla kullanarak gerçekleştirilir.

Numen Özel: Microsoft 0day açığı, Web3 oyununu sistem ve fiziksel düzeyde alt üst edebilir

Özet

  1. Microsoft, win32k kodunu Rust ile yeniden yapılandırmayı deniyor, gelecekte bu tür zafiyetler yeni sistemde tamamen çözülebilir.

  2. Bu tür açıkların istismar süreci nispeten basittir, ana zorluk ilk veri yazımını nasıl kontrol edeceğinizdir.

  3. Açıkların keşfi, daha kapsamlı kod kapsamı tespit teknolojilerinden faydalanıyor olabilir.

  4. Açık tespiti için, tetikleyici işlevin kritik noktalarına dikkat etmenin yanı sıra, anormal bellek düzeni ve veri okuma/yazma işlemlerini de kontrol etmek gerekir.

Numen özel: Microsoft 0day açığı, Web3 oyununu sistem + fiziksel düzeyde alt üst edebilir

TOKEN0.69%
View Original
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.
  • Reward
  • 6
  • Share
Comment
0/400
DeFiGraylingvip
· 4h ago
Microsoft bu sefer gerçekten büyük oynadı -_-
View OriginalReply0
HackerWhoCaresvip
· 4h ago
Bilgisayarımın bu kadar yavaş olmasına şaşmamalı!
View OriginalReply0
ResearchChadButBrokevip
· 4h ago
Microsoft bu sefer gitti ha
View OriginalReply0
GasWranglervip
· 4h ago
teknik olarak konuşursak, bu bellek düzeni hatası oldukça suboptimal
View OriginalReply0
wagmi_eventuallyvip
· 4h ago
Aman tehlikeli oldu
View OriginalReply0
OneBlockAtATimevip
· 4h ago
Emma Windows yine bir güvenlik açığı var
View OriginalReply0
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)