Microsoft Windows Sistemi 0day Açığı Analizi ve Kullanımı
Son zamanlarda Microsoft'un yayımladığı güvenlik yaması, hackerlar tarafından istismar edilen bir Windows yükseltme açığını düzeltmiştir. Bu açık, esas olarak eski Windows sistem sürümlerini etkilemekte olup, Windows 11'de tetiklenememektedir.
Bu tür açıklar yıllardır mevcuttur, bu makalede mevcut güvenlik önlemlerinin sürekli güçlenmesi bağlamında, saldırganların bu tür açıkları nasıl kullanmaya devam edebileceği ele alınacaktır. Aşağıdaki analiz, Windows Server 2016 ortamında tamamlanmıştır.
0day açığı, henüz kamuya açıklanmamış ve düzeltilmemiş bir açığı ifade eder; bu, hackerların fark edilmeden kötüye kullanabilmesine olanak tanır ve büyük bir yıkım potansiyeline sahiptir. Bulunan bu 0day açığı, saldırganların Windows sisteminin tam kontrolünü ele geçirmesine olanak tanır ve bu da kişisel bilgilerin sızması, sistem çökmesi, veri kaybı gibi ciddi sonuçlara yol açabilir. Kripto para özel anahtarlarının çalınmasından, tüm Web3 ekosisteminin güvenliğini etkileyebilecek durumlara kadar geniş bir yelpazede etkiler.
Yamanın Analizi
Yaman kodun analizi, esasen bir nesne referans sayımının fazla işlenmesi sorununu düzeltmek için olduğunu ortaya koydu. Önceki kaynak kodu yorumlarından anlaşıldığı üzere, eski kod yalnızca pencere nesnesini kilitlemiş, pencere içindeki menü nesnesini kilitlememiştir, bu da menü nesnesinin yanlış bir şekilde referans alınmasına neden olabilir.
Açık Yeniden Üretimi
Analizler, xxxEnableMenuItem()'e geçirilen menülerin genellikle üst düzey fonksiyonlar tarafından kilitlendiğini ortaya koydu, ancak hangi menü nesnesinin korunduğu belirsizdir. Daha fazla analiz, MenuItemState fonksiyonunun döndürdüğü menünün pencere ana menüsü, alt menü veya daha derin bir menü olabileceğini göstermektedir.
Özel bir çok katmanlı menü yapısı oluşturarak belirli ID türündeki sistem menülerini içeren bir güvenlik açığı tetikledik ve menüler arasındaki referans ilişkisini özel bir şekilde işledik. Sonuç olarak, xxxRedrawTitle kullanıcı katmanına döndüğünde belirli menü nesnelerini serbest bıraktık ve bu da xxxEnableMenuItem fonksiyonunun sonraki geçersiz nesne referanslarıyla sonuçlanmasına yol açtı.
Açık Kullanımı
Açıkların istismarında iki ana yön üzerinde durulmaktadır: shellcode çalıştırmak ve token'ı değiştirmek için okuma/yazma primlerini kullanmak. Kapsamlı bir analizden sonra, ikincisini seçtik.
Ana adımlar şunlardır:
UAF açığını kullanarak cbwndextra değerini kontrol etme
Stabil okuma yazma ilkelere ulaşmak
Bellek düzenini özenle tasarlayarak, pencere nesneleri ve HWNDClass nesnelerini kullanarak kontrol edilebilir okuma/yazma ilkelere inşa ettik. Herhangi bir okuma işlemi için GetMenuBarInfo(), herhangi bir yazma işlemi için SetClassLongPtr() kullanıldı. Nihayetinde, süreç token'ını değiştirme gibi işlemler gerçekleştirebiliriz.
Özet
Microsoft, win32k ile ilgili kodları Rust ile yeniden yapılandırıyor, gelecekte bu tür açıkların önlenmesi mümkün olabilir.
Açık istismar süreci oldukça basit, esasen masaüstü yığın işleyici adresinin ifşasına dayanıyor.
Bu açığın keşfi, daha iyi bir kod kapsama testi ile mümkün olmuş olabilir.
Anormal bellek yerleşimi ve pencere verisi okuma/yazma tespiti, bu tür açıkları bulmaya yardımcı olur.
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.
Windows 0day yükseltme açığı: şifreleme Cüzdan güvenliği yeni tehditlerle karşı karşıya
Microsoft Windows Sistemi 0day Açığı Analizi ve Kullanımı
Son zamanlarda Microsoft'un yayımladığı güvenlik yaması, hackerlar tarafından istismar edilen bir Windows yükseltme açığını düzeltmiştir. Bu açık, esas olarak eski Windows sistem sürümlerini etkilemekte olup, Windows 11'de tetiklenememektedir.
Bu tür açıklar yıllardır mevcuttur, bu makalede mevcut güvenlik önlemlerinin sürekli güçlenmesi bağlamında, saldırganların bu tür açıkları nasıl kullanmaya devam edebileceği ele alınacaktır. Aşağıdaki analiz, Windows Server 2016 ortamında tamamlanmıştır.
0day açığı, henüz kamuya açıklanmamış ve düzeltilmemiş bir açığı ifade eder; bu, hackerların fark edilmeden kötüye kullanabilmesine olanak tanır ve büyük bir yıkım potansiyeline sahiptir. Bulunan bu 0day açığı, saldırganların Windows sisteminin tam kontrolünü ele geçirmesine olanak tanır ve bu da kişisel bilgilerin sızması, sistem çökmesi, veri kaybı gibi ciddi sonuçlara yol açabilir. Kripto para özel anahtarlarının çalınmasından, tüm Web3 ekosisteminin güvenliğini etkileyebilecek durumlara kadar geniş bir yelpazede etkiler.
Yamanın Analizi
Yaman kodun analizi, esasen bir nesne referans sayımının fazla işlenmesi sorununu düzeltmek için olduğunu ortaya koydu. Önceki kaynak kodu yorumlarından anlaşıldığı üzere, eski kod yalnızca pencere nesnesini kilitlemiş, pencere içindeki menü nesnesini kilitlememiştir, bu da menü nesnesinin yanlış bir şekilde referans alınmasına neden olabilir.
Açık Yeniden Üretimi
Analizler, xxxEnableMenuItem()'e geçirilen menülerin genellikle üst düzey fonksiyonlar tarafından kilitlendiğini ortaya koydu, ancak hangi menü nesnesinin korunduğu belirsizdir. Daha fazla analiz, MenuItemState fonksiyonunun döndürdüğü menünün pencere ana menüsü, alt menü veya daha derin bir menü olabileceğini göstermektedir.
Özel bir çok katmanlı menü yapısı oluşturarak belirli ID türündeki sistem menülerini içeren bir güvenlik açığı tetikledik ve menüler arasındaki referans ilişkisini özel bir şekilde işledik. Sonuç olarak, xxxRedrawTitle kullanıcı katmanına döndüğünde belirli menü nesnelerini serbest bıraktık ve bu da xxxEnableMenuItem fonksiyonunun sonraki geçersiz nesne referanslarıyla sonuçlanmasına yol açtı.
Açık Kullanımı
Açıkların istismarında iki ana yön üzerinde durulmaktadır: shellcode çalıştırmak ve token'ı değiştirmek için okuma/yazma primlerini kullanmak. Kapsamlı bir analizden sonra, ikincisini seçtik.
Ana adımlar şunlardır:
Bellek düzenini özenle tasarlayarak, pencere nesneleri ve HWNDClass nesnelerini kullanarak kontrol edilebilir okuma/yazma ilkelere inşa ettik. Herhangi bir okuma işlemi için GetMenuBarInfo(), herhangi bir yazma işlemi için SetClassLongPtr() kullanıldı. Nihayetinde, süreç token'ını değiştirme gibi işlemler gerçekleştirebiliriz.
Özet
Microsoft, win32k ile ilgili kodları Rust ile yeniden yapılandırıyor, gelecekte bu tür açıkların önlenmesi mümkün olabilir.
Açık istismar süreci oldukça basit, esasen masaüstü yığın işleyici adresinin ifşasına dayanıyor.
Bu açığın keşfi, daha iyi bir kod kapsama testi ile mümkün olmuş olabilir.
Anormal bellek yerleşimi ve pencere verisi okuma/yazma tespiti, bu tür açıkları bulmaya yardımcı olur.