Microsoft Windows sistem 0day açıkları analizi: Sistemin tam kontrolü elde edilebilir
Geçen ay Microsoft'un güvenlik yaması, hackerlar tarafından istismar edilen bir Windows çekirdek yükseltme açığını düzeltti. Bu açık, esas olarak erken Windows sistem sürümlerinde mevcut olup, Windows 11'de tetiklenememektedir. Bu makalede, mevcut güvenlik mekanizmalarının sürekli geliştiği bir bağlamda, saldırganların bu açığı nasıl istismar etmeye devam edebileceklerini analiz edeceğiz. Analiz ortamımız Windows Server 2016'dır.
0day açığı, henüz keşfedilmemiş ve onarılmamış yazılım açığına atıfta bulunur. Bir kez hackerlar tarafından keşfedilip kullanıldığında, ciddi zararlara yol açabilir. Bu kez keşfedilen Windows 0day açığı, saldırganların sistemin tam kontrolünü ele geçirmesine olanak tanır, böylece kişisel bilgileri çalabilir, kötü amaçlı yazılım yerleştirebilir ve kripto para çalabilir. Daha geniş bir perspektiften bakıldığında, bu açık, Web2 altyapısına dayalı tüm Web3 ekosistemini bile etkileyebilir.
Yaman analiz, sorunun win32k modülündeki bir nesne referans sayımı işlemiyle ilgili olduğunu gösteriyor. Önceki kaynak kodu yorumları, daha önceki kodun yalnızca pencere nesnesini kilitlediğini ve pencere içindeki menü nesnesini kilitlemediğini belirtiyor; bu durum menü nesnesinin yanlış bir şekilde referans almasına neden olabilir.
Özel bir çok katmanlı iç içe menü yapısı oluşturarak bir güvenlik açığını tetikledik. Anahtar, xxxEnableMenuItem fonksiyonu kullanıcı katmanına döndüğünde, belirli bir alt menünün referansını silmek ve serbest bırakmaktır. Böylece fonksiyon tekrar çekirdek moduna girdiğinde, daha önce referans verilen menü nesnesi geçersiz hale gelmiş olur.
Sızdırma gerçekleştirilirken, iki ana çözümü dikkate aldık: shellcode yürütmek ve token'ı değiştirmek için okuma/yazma ilkelere başvurmak. Yüksek sürüm Windows'un güvenlik mekanizmalarını göz önünde bulundurarak, ikincisini seçtik. Tüm sızdırma süreci iki adıma ayrılıyor: öncelikle cbwndextra'nın değerini kontrol etmek, ardından stabil bir okuma/yazma ilkesini kurmak.
İlk veriyi yazmak için, xxxRedrawWindow fonksiyonundaki bir yazma noktasını kullandık. Belleği dikkatlice düzenleyerek, komşu nesnelerin bellek verilerini kontrol edebilir ve fonksiyondaki bayrakları kontrol edebiliriz.
Bellek düzeni açısından, arka arkaya üç HWND nesnesi tasarladık, ortadaki nesneyi serbest bırakıp HWNDClass nesnesi ile doldurduk. Önceki ve sonraki iki HWND nesnesi, kontrol ve okuma/yazma ilkelini gerçekleştirmek için kullanıldı. Ayrıca, yığın bellekte sızan çekirdek tanıtıcı adresini kullanarak nesne sıralamasının beklenilenle uyuşup uyuşmadığını kesin bir şekilde belirledik.
Son olarak, GetMenuBarInfo() kullanarak rastgele okuma, SetClassLongPtr() kullanarak rastgele yazma işlemi gerçekleştiriyoruz. TOKEN'ı değiştirme işlemleri dışında, diğer yazma işlemleri ilk pencere nesnesinin sınıf nesnesi kullanılarak tamamlanır.
Genel olarak, win32k modülündeki güvenlik açığının kökeni uzun bir geçmişe sahip olsa da, Microsoft ilgili kodu Rust ile yeniden yapılandırmaya çalışıyor; gelecekte bu tür güvenlik açıkları yeni sistemlerde ortadan kaldırılabilir. Mevcut istismar süreci özellikle zor değildir, esas olarak masaüstü yığın tanıtıcısının adresinin sızdırılmasına dayanmaktadır. Kod kapsamı denetimlerini geliştirmek ve hedefe yönelik anormal bellek işlemlerini tespit etmek, bu tür güvenlik açıklarını keşfetmenin etkili yolları olabilir.
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.
17 Likes
Reward
17
5
Share
Comment
0/400
MissingSats
· 07-11 05:50
Cüzdan nerede?
View OriginalReply0
GigaBrainAnon
· 07-11 05:50
Peh, yine sistem güncellemesiyle uğraşmam gerekecek.
View OriginalReply0
PanicSeller
· 07-11 05:46
Çok korkunç 8 Cüzdan Android'e geçiyor
View OriginalReply0
LiquidatedTwice
· 07-11 05:45
Evde yatıp keyifle şifreleme yatırımı yapan, ara sıra NFT ve Merkezi Olmayan Finans ile uğraşan, kazanç ve kaybı tamamen mistisizme dayanan kişiler. Çoğu para spot ticaretine, az bir kısmı ise Vadeli İşlemler'de Degen olarak kullanılıyor.
Windows çekirdek 0day açığı analizi: Web3 ekosistem güvenliğini etkileyebilir
Microsoft Windows sistem 0day açıkları analizi: Sistemin tam kontrolü elde edilebilir
Geçen ay Microsoft'un güvenlik yaması, hackerlar tarafından istismar edilen bir Windows çekirdek yükseltme açığını düzeltti. Bu açık, esas olarak erken Windows sistem sürümlerinde mevcut olup, Windows 11'de tetiklenememektedir. Bu makalede, mevcut güvenlik mekanizmalarının sürekli geliştiği bir bağlamda, saldırganların bu açığı nasıl istismar etmeye devam edebileceklerini analiz edeceğiz. Analiz ortamımız Windows Server 2016'dır.
0day açığı, henüz keşfedilmemiş ve onarılmamış yazılım açığına atıfta bulunur. Bir kez hackerlar tarafından keşfedilip kullanıldığında, ciddi zararlara yol açabilir. Bu kez keşfedilen Windows 0day açığı, saldırganların sistemin tam kontrolünü ele geçirmesine olanak tanır, böylece kişisel bilgileri çalabilir, kötü amaçlı yazılım yerleştirebilir ve kripto para çalabilir. Daha geniş bir perspektiften bakıldığında, bu açık, Web2 altyapısına dayalı tüm Web3 ekosistemini bile etkileyebilir.
Yaman analiz, sorunun win32k modülündeki bir nesne referans sayımı işlemiyle ilgili olduğunu gösteriyor. Önceki kaynak kodu yorumları, daha önceki kodun yalnızca pencere nesnesini kilitlediğini ve pencere içindeki menü nesnesini kilitlemediğini belirtiyor; bu durum menü nesnesinin yanlış bir şekilde referans almasına neden olabilir.
Özel bir çok katmanlı iç içe menü yapısı oluşturarak bir güvenlik açığını tetikledik. Anahtar, xxxEnableMenuItem fonksiyonu kullanıcı katmanına döndüğünde, belirli bir alt menünün referansını silmek ve serbest bırakmaktır. Böylece fonksiyon tekrar çekirdek moduna girdiğinde, daha önce referans verilen menü nesnesi geçersiz hale gelmiş olur.
Sızdırma gerçekleştirilirken, iki ana çözümü dikkate aldık: shellcode yürütmek ve token'ı değiştirmek için okuma/yazma ilkelere başvurmak. Yüksek sürüm Windows'un güvenlik mekanizmalarını göz önünde bulundurarak, ikincisini seçtik. Tüm sızdırma süreci iki adıma ayrılıyor: öncelikle cbwndextra'nın değerini kontrol etmek, ardından stabil bir okuma/yazma ilkesini kurmak.
İlk veriyi yazmak için, xxxRedrawWindow fonksiyonundaki bir yazma noktasını kullandık. Belleği dikkatlice düzenleyerek, komşu nesnelerin bellek verilerini kontrol edebilir ve fonksiyondaki bayrakları kontrol edebiliriz.
Bellek düzeni açısından, arka arkaya üç HWND nesnesi tasarladık, ortadaki nesneyi serbest bırakıp HWNDClass nesnesi ile doldurduk. Önceki ve sonraki iki HWND nesnesi, kontrol ve okuma/yazma ilkelini gerçekleştirmek için kullanıldı. Ayrıca, yığın bellekte sızan çekirdek tanıtıcı adresini kullanarak nesne sıralamasının beklenilenle uyuşup uyuşmadığını kesin bir şekilde belirledik.
Son olarak, GetMenuBarInfo() kullanarak rastgele okuma, SetClassLongPtr() kullanarak rastgele yazma işlemi gerçekleştiriyoruz. TOKEN'ı değiştirme işlemleri dışında, diğer yazma işlemleri ilk pencere nesnesinin sınıf nesnesi kullanılarak tamamlanır.
Genel olarak, win32k modülündeki güvenlik açığının kökeni uzun bir geçmişe sahip olsa da, Microsoft ilgili kodu Rust ile yeniden yapılandırmaya çalışıyor; gelecekte bu tür güvenlik açıkları yeni sistemlerde ortadan kaldırılabilir. Mevcut istismar süreci özellikle zor değildir, esas olarak masaüstü yığın tanıtıcısının adresinin sızdırılmasına dayanmaktadır. Kod kapsamı denetimlerini geliştirmek ve hedefe yönelik anormal bellek işlemlerini tespit etmek, bu tür güvenlik açıklarını keşfetmenin etkili yolları olabilir.
Bu içerik için kısa bir yorum yapın, Türkçe:
Cüzdanı mı patlatacaklar?