Siber güvenliğin bir "kedi fare oyunu" olduğu sıkça söylenir. Yakın zamanda duyurulan bir zafiyet, ister istemez bu söz hatırlattı. Razer marka mouseların kurulum yazılımında, herhangi bir kullanıcının bu
marka bir mouse takarak Windows sistemlerde yönetici yetkileri elde
etmesini sağlayan bir zafiyet ortaya çıktı.
Normal şartlar altında bu zafiyet oldukça özel durumların bir araya gelmesinden ortaya çıktığı düşünülebilir. “Razer marka mouse alacak daaa… Getirip takacak daaaa… ölme eşeğim ölme...”.
İlk bakışta böyle görülse de bu zafiyete neden olan şey, sızma
testlerinde yetki yükseltme konusunda sıkça karşılaştığımız bir durumun
yaşanmasından ibaret.
Windows yetkileri hakkında iki konu
Bu zafiyetin nasıl ortaya çıktığını anlamak için Windows işletim
sisteminin yetkileri konusunda iki temel hatırlatma yapmakta fayda var.
- Windows işletim sistemlerinde SYSTEM yetkileri herhangi bir kullanıcının sahip olabileceği en üst seviyedeki yetkidir. Kuruluş personeli genellikle daha az yetkiye sahip kullanıcılar ile çalışır.
- Windows üzerinde başlatılan herhangi bir process (uygulama, servis, vb.) kendisini başlatan process’in yetkilerine sahip olur.
Güvenlik mimarisi açısından kullanıcı yetkileri başlı başına dikkat
edilmesi ve yakından izlenmesi gereken bir konudur. Bu yazıda bütün
ayrıntılarına girmek ne yazık ki mümkün olmayacak ama kuruluş bünyesinde
hangi kullanıcının hangi yetkilere sahip olduğunun gözden
geçirilmesinde her zaman fayda vardır.
Zafiyet nasıl ortaya çıkıyor?
Özetle; SYSTEM yetkileriyle çalışan RazerInstaller.exe uygulamasına
müdahale edilip bunun üzerinden bir komut satırı başlatılıyor. Durumun
yetki yükseltme zafiyetine neden olmasını sağlayan nokta ise bu
uygulamanın herhangi bir kullanıcı tarafından başlatılabiliyor olması.
Aşağıdaki ekran görüntüsünden anlaşılabileceği gibi, herhangi bir
kullanıcı tarafından açılan RazerInstaller.exe uygulaması NT
AUTHORITY\SYSTEM kullanıcısı ile çalışmaktadır.
Düşük yetkilere sahip kullanıcıların daha yüksek yetkilere sahip
uygulamaları başlatabilmesi alışılmadık bir durum değildir. Bunu
gerektirecek pek çok uygulama ve durum ortaya çıkabilir. Sorun, bu düşük
yetkili kullanıcıların bu uygulamanın işleyişine müdahale etmesinden
kaynaklanıyor.
Aşağıdaki ekran görüntüsünden anlaşılabileceği gibi, uygulamanın
kurulacağı dizin seçilirken PowerShell komut satırı başlatma seçeneği
mevcuttur (“Open PowerShell window here”).
Tam bu noktada açılan PowerShell komut satırı, RazerInstaller.exe’nin yetkilerini kullanarak SYSTEM yetkisiyle çalışır.
Sizi Nasıl Etkileyebilir?
Aşağıdaki örnek laboratuvar ortamında oluşturulmuştur. Amacımız bu
zafiyetin ortaya çıkış nedenleri ve nasıl istismar edilebileceği
konusunda biraz daha bilgi vermektir.
Bu senaryo ekibimizin sızma testleri sırasında sıkça karşılaştığı bir
durumu neredeyse aynen yansıtmaktadır. Kuruluşunuz bünyesinde, servis
adları farklılık gösterse bile bu zafiyetin bir benzerine rastlanması
mümkündür.
Aşağıda görüldüğü gibi, hedef makineye sıradan bir kullanıcı ile bağlıyız (user).
Hedef alacağımız servis olan daclsvc üzerinde SERVICE_START (başlatma) ve SERVICE_STOP (durdurma) yetkilerine sahibiz.
Bu servisin ayrıntılarına (aşağıda) baktığımızda ise iki nokta dikkatimizi çekiyor;
- SYSTEM yetkileriyle çalışıyor (SERVICE_START_NAME: LocalSystem)
- Uygulama C:\Program Files\DACL Service\daclservice.exe konumundan çalışıyor
Bu durumda uygulamanın çalıştığı değiştirip isteyeceğimiz herhangi bir
uygulamayı SYSTEM yetkileriyle çalıştırmamız mümkün olabilir.
Bunun için, aşağıda görüldüğ gibi, daclservice.exe yerine kendi
oluşturduğumuz bir arkakapı olan ters.exe uygulamanı belirliyoruz:
Bundan sonraki adımda, “net start daclsvc” komutu ile servisi yeniden başlatıyoruz (aşağıdaki ekran görüntüsünde “1” ile işaretlenmiş alan) ve saldırı için kullandığımız sisteme (ekran görüntüsünde “2” ile işaretlenmiş alan) SYSTEM yetkilerine sahip bir ters bağlantı geliyor.
Razer mouse'lardaki bu sorunu tespit eden ve duyuran Twitter hesabı: https://twitter.com/j0nh4t