COM nesnelerindeki Windows güvenlik açığı, saldırganların uzaktan komut yürütmesini tetiklemesine izin verir


Com nesnelerinde windows güvenlik açığı

Google Project Zero’dan James Forshaw, Windows’ta IDISpatch arayüzü aracılığıyla tuzağa düşmüş COM nesnelerine erişme ile ilgili önemli bir güvenlik açığı üzerine ışık tuttu.

Bu araştırma, COM nesneleri ve .NET Remoting gibi nesneye yönelik uzaktan kumanda teknolojilerindeki çapraz işleme iletişim özelliklerini kullanan ilginç bir hata sınıfını vurgulamakta ve potansiyel olarak saldırganların daha yüksek privile sunucu işlemlerinde kod yürütmesine izin vermektedir.

Sıkışmış nesne hata sınıfını anlamak

Güvenlik açığı, nesnelerin istemci ve sunucu süreçleri arasında paylaşılmasına izin veren teknolojilerin uzak durma esnekliğinden kaynaklanmaktadır.

Sınırlar arası hizmetlerin gelişimini basitleştirmek için tasarlanmış olsa da, bu özellikler yanlışlıkla güvenli olmayan nesneleri ortaya çıkarabilir.

Forshaw, bir nesne döndürülür ve “referansla” maruz kalırsa, sunucu işleminde kaldığını ve onu sömürüye karşı savunmasız hale getirdiğini not eder. Böyle bir örnek, komut dosyası özelliklerinden yararlanarak uzaktan kod yürütülmesine izin verebilecek XML kitaplıklarıdır.

CVE-2019-0555 gibi spesifik durumlar, geliştiricilerin belirli nesne uygulamalarında sadece tehlikeli arayüzleri yanlışlıkla ortaya çıkarmak için nasıl güvenliği üstlendiğini göstermektedir.

Başka bir örnek, CVE-2017-0211, saldırganların bir sunucunun bağlamında keyfi COM nesneleri oluşturmak için iPropertybag arayüzünü nasıl kullanabileceğini ve potansiyel olarak ayrıcalıklarını yükseltebileceğini gösterdi.

İdispatch ve tip kütüphanelerinin rolü

OLE otomasyonunun anahtar bir parçası olan Idispatch arabirimi, COM nesnelerinin VBA ve JScript gibi komut dosyaları için geç bağlanmasını sağlar.

Kütüphane mekanizmasından yararlanarak, saldırganlar, bir sunucunun işlemi içindeki COM nesnelerini somutlaştırmak için uzak nesnelerdeki CreateInstance yöntemini kullanabilir. Bu, güvenlik sınırlarını atlayarak sunucu üzerinde kontrol kazanmak için kullanılabilir.

Forshaw, bu sorunu onun gibi araçlar kullanarak gösterdi. Oleview.net PowerShell Modülüyerel hizmetler aracılığıyla maruz kalan birkaç COM sınıfının belirlenmesi.

Belirli hizmet sınıflarını araştırırken SarkıklaştırmaForshaw, bu gizli güvenlik açıklarının ayrıcalık artış veya enjeksiyon saldırıları için nasıl kullanılabileceğini araştırdı.

PS> $cls = Get-ComClass -Service

PS> $cls | % { Get-ComInterface -Class $_ | Out-Null }

PS> $cls | ? { $true -in $_.Interfaces.InterfaceEntry.IsDispatch } | 

        Select Name, Clsid

Name                                       Clsid

----                                       -----

WaaSRemediation                            72566e27-1abb-4eb3-b4f0-eb431cb1cb32

Search Gathering Manager                   9e175b68-f52a-11d8-b9a5-505054503030

Search Gatherer Notification               9e175b6d-f52a-11d8-b9a5-505054503030

AutomaticUpdates                           bfe18e9c-6d87-4450-b37c-e02f0b373803

Microsoft.SyncShare.SyncShareFactory Class da1c0281-456b-4f14-a46d-8ed2e21a866f

Korumalı süreçlere enjeksiyon

Forshaw analiz ettiğinde araştırma ilginç bir dönüş yaptı. Waasremediationgent Sınıf, korunan bir işlem olarak çalışan bir Windows hizmeti (PPL-Windows).

PS> $obj = New-ComObject -Clsid 72566e27-1abb-4eb3-b4f0-eb431cb1cb32

PS> $lib = Import-ComTypeLib -Object $obj

PS> Get-ComObjRef $lib.Instance | Select ProcessId, ProcessName

ProcessId ProcessName

--------- -----------

    27020 svchost.exe


PS> $parsed = $lib.Parse()

PS> $parsed

Name               Version TypeLibId

----               -------- ---------

WaaSRemediationLib 1.0      3ff1aab8-f3d8-11d4-825d-00104b3646c0


PS> $parsed.Classes | Select Name, Uuid

Name                          Uuid

----                          ----

WaaSRemediationAgent          72566e27-1abb-4eb3-b4f0-eb431cb1cb32

WaaSProtectedSettingsProvider 9ea82395-e31b-41ca-8df7-ec1cee7194df

Microsoft PPL’yi katı bir güvenlik sınırı olarak görse de, komut dosyası motorları gibi belirli araçları korunan süreçlere yüklenmesini kısıtlar. Forshaw, IDISpatch tabanlı arayüzü hedefleyen yeni bir enjeksiyon yöntemi önerdi ve test etti.

Korunmasız bir nesnenin (örneğin, STDFONT) COM kaydını kötü amaçlı bir sınıfa yönlendirerek, saldırganlar potansiyel olarak .NET tabanlı yükleri veya başka bir zararlı kodu korunan sürece enjekte edebilir.

Forshaw, kayıt defteri anahtarlarının ve .NET com yansımasının nasıl kullanılmasının keyfi montajları nasıl yükleyebileceğini ve kod yürütülmesini nasıl sağlayabileceğini gösterdi.

Konsept kanıtı Windows 10’da çalışırken, Forshaw Windows 11’de (24H2) zorluklarla karşılaştı.

Microsoft, pencere seviyesi imzalaması olmayan kütüphaneleri engelleyen önbelleğe alınmış imza seviyesi doğrulamaları gibi hafifletmeler getirmişti.

Bununla birlikte, Forshaw, tür kütüphanesinin 32 bit sürümünü kullanarak bir çözüm buldu ve bu da istismarın yeterli çaba ile yaşayabilir kaldığını kanıtladı.

Hafifletmeler ve sonuçlar

Forshaw’ın araştırması doğrudan ayrıcalık artışını göstermese de, Idispatch arayüzlerinin teknolojilerdeki risklerini vurguladı.

İdari ayrıcalıklara sahip saldırganlar, LSASS gibi korunan bir sürece kod enjekte etmek için saldırı yöntemini veya uygun COM sunucuları açığa çıkarsa standart kullanıcılar tarafından kullanabilirler.

Forshaw, Microsoft’un tür kütüphane doğrulamasını geliştirerek bazı saldırı vektörlerine hitap ettiğini, ancak bazı alanların savunmasız kaldığını belirtti.

Özellikle, bu güvenlik açığı sömürmek için önemli uzmanlık gerektirse de, süreç sınırları arasında güvenli nesne işleme ihtiyacını güçlendirir

Forshaw’ın blogu, teknolojileri uzaklaştırma konusunda ince tasarım kararlarının önemli güvenlik risklerine yol açabileceğini vurgulamaktadır.

COM nesnelerini ayrıcalık sınırları boyunca tuzağa düşürme ve manipüle etme yeteneği, karmaşık sistemlerin istenmeyen şekillerde nasıl kullanılabileceğini hatırlatır.

Gösterilen saldırılar idari ayrıcalıklar veya dikkatli kurulum gerektirse de, nesneye yönelik uzaktan gelen teknolojilerin sınırlararası etkileşimleri nasıl ele almasıyla ilgili devam eden bir sorunu vurgulamaktadır.

Her zaman olduğu gibi, kullanıcılar ve kuruluşlar, potansiyel riskleri azaltmak için maruz kalan arayüzler için sistemlerini güncel tutmaya ve denetim hizmetlerini tutmaya teşvik edilir. Bu arada, Microsoft’un bu gelişmiş saldırı vektörlerini ele almak için hafifletmelerini geliştirmeye devam etmesi gerekebilir.

Bu araştırma, özellikle COM gibi eski teknolojilerle uğraşırken, modern işletim sistemlerinin güvence altına alınmasındaki karmaşıklıkların ve zorlukların bir hatırlatıcısı olarak hizmet vermektedir.

Bu hikayeyi ilginç bul! Daha fazla anında güncellemeler almak için bizi Google News, LinkedIn ve X’te takip edin



Source link