Microsoft, Microsoft Exchange Server'daki bir uzaktan kod
yürütme hatasını gidermek için bir düzeltme eki yayınladı.
Microsoft, bu hatanın bir bellek bozulması güvenlik açığı
nedeniyle olduğunu ve güvenlik açığı bulunan bir Exchange sunucusuna gönderilen
özel hazırlanmış bir e-posta tarafından kullanılabileceğini belirtti. Bunun
nedeni, neredeyse tüm kullanıcıların bir Exchange posta kutusu olması ve
sınırlı ayrıcalıklara sahip olmalarına rağmen sunucuda kimlik doğrulaması
yapabilmesidir. Bu, hiçbir şekilde bir saldırgan için bir engel değildir, çünkü
kimlik doğrulama bu güvenlik açığından başarıyla yararlanmak için tek
gereksinimdir.Bu kusurdan yararlanmak için saldırganların yalnızca internetten
erişilebilen savunmasız sunucular bulmaları, Outlook Web Access (OWA) portal
URL'sinden topladıkları e-posta adreslerini aramaları ve veri ihlallerinden
ilgili dökümleri almaları gerekir. Daha sonra, sadece bir kimlik bilgisi
doldurma saldırısı başlatmalı ve isabet alana ve sunucuya giriş yapana kadar
buna devam etmelidirler.
Güvenlik açığı, Exchange Server'ın kurulum sırasında unique
kriptografik anahtarlar oluşturamaması nedeniyle ortaya çıkar. Özellikle, hata
Exchange Control Panel (ECP) bileşeninde bulunur. Kurulum başında rasgele oluşturulan anahtarlar yerine,
Microsoft Exchange Server’ın tüm yüklemeleri web.config dosyasında aynı
validationKey ve decryptionKey değerlerine sahiptir. Bu anahtarlar ViewState
için güvenlik sağlamak için kullanılır. ViewState, ASP.NET web uygulamalarının
istemcide serileştirilmiş biçimde sakladığı sunucu tarafı verilerdir. İstemci,
bu verileri __VIEWSTATE istek parametresi aracılığıyla sunucuya geri sağlar.Statik
anahtarların kullanılması nedeniyle, saldırgan sunucuyu kötü niyetle
hazırlanmış ViewState verilerinin serisini kaldırması için kandırabilir. YSoSerial.net'in
yardımıyla bir saldırgan, Exchange Control Panel web uygulaması bağlamında
sunucuda rasgele .NET kodu çalıştırabilir ve SYSTEM olarak çalışır.
Bu güvenlik açığından yararlanmak için, kimliği doğrulanmış
bir oturumdan ViewStateUserKey ve __VIEWSTATEGENERATOR değerlerini toplamamız
gerekir. ViewStateUserKey, ASP.NET _SessionID çerezinden alınırken,
ViewStateUserKey gizli bir alanda bulunabilir. Tüm bunlar tarayıcıdaki standart
geliştirici araçları kullanılarak kolayca elde edilebilir.
Başlamak için /ecp/default.aspx sayfasına gidin ve giriş
yapın. Kullanılan hesabın herhangi bir özel ayrıcalığa sahip olması gerekmez.
Bu örnekte, user adlı bir hesap kullanılmaktadır:
Devam etmek için bazı bilgiler toplamamız gerekiyor. En
değerli kısım zaten bilinmektedir:
validationkey =
CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF
validationalg = SHA1
ViewStateUserKey ve __VIEWSTATEGENERATOR'u elde etmek için
Geliştirici Araçları'nın (F12) Ağ sekmesini açın ve F5 tuşuna basarak isteği
yeniden gönderin. Giriş yaparken /ecp/default.aspx isteğinin yanıtına
ihtiyacımız vardır:
Gördüğünüz gibi, __VIEWSTATEGENERATOR değeri sayfa
kaynağında görülebilir. Bu örnekte, değeri B97B4E27'dir. Büyük olasılıkla,
değeriniz aynı olacaktır. Ardından, Başlıklar sekmesini açın ve İstek
başlıklarında ASP.NET_SessionId cookie sini bulunuz:
Bu örnekte, değeri 05ae4b41-51e1-4c3a-9241-6b87b169d663'tür.
Artık bir saldırı gerçekleştirmek için gereken tüm bilgilere
sahibiz:
--validationkey = CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF
--validationalg = SHA1
- generator
= B97B4E27
--viewstateuserkey = 05ae4b41-51e1-4c3a-9241-6b87b169d663
Bir sonraki adım, ysoserial.net kullanarak bir ViewState payloadu
oluşturmaktır. C: \ Vuln_Server.txt dosyasını oluşturarak kod çalıştırılmasını sağlayan
bir payload oluştururuz:
ysoserial.exe -p
ViewState -g TextFormattingRunProperties -c "echo OOOPS!!! >
c:/Vuln_Server.txt" --validationalg="SHA1"
--validationkey="CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF"
--generator="B97B4E27" --viewstateuserkey="05ae4b41-51e1-4c3a-9241-6b87b169d663"
--isdebug –islegacy
Son olarak, ViewState payloadunu URL-encoded olarak
aşağıdaki gibi bir URL oluşturmamız gerekir:
/ecp/default.aspx? __ VIEWSTATEGENERATOR = <jeneratör>
& __ viewstate = <ViewState>
yukarıda elde edilen generator ve URL-encoded ViewState'in
yerine kullanılır.
Daha sonra, ortaya çıkan URL'i tarayıcıya yapıştırıp
Exchange sunucusuna göndeririz:
Sunucu 500 Unexpected Error veriyor, ancak saldırı başarılı.
Hedef sunucu üzerindeki etkinin incelenmesi:
Vuln_Server.txt dosyası şuan mevcuttur. Dosyadaki sahiplik
bilgilerinin incelendiğinde bir SYSTEM belirteci olan bir işlem tarafından
oluşturulduğunu onaylar.
Bu, bir saldırganın SYSTEM olarak rasgele kod
yürütebildiğini ve hedef Exchange sunucusunu tamamen tehlikeye atabildiğini
gösterir.
ETKİLENEN
SİSTEMLER
Desteklenen
tüm Microsoft Exchange Server sürümleri için güvenlik güncelleştirmelerini
aşağıdaki linklerden indirebilirsiniz:
Microsoft Exchange Server 2010 SP3 Update
Rollup 30 ->https://www.microsoft.com/en-us/download/details.aspx?id=100910
Microsoft Exchange Server 2013 Cumulative
Update 23 ->https://www.microsoft.com/en-us/download/details.aspx?id=100909
Microsoft Exchange Server 2016 Cumulative
Update 14->https://www.microsoft.com/en-us/download/details.aspx?id=100907
Microsoft Exchange Server 2016 Cumulative
Update 15 ->https://www.microsoft.com/en-us/download/details.aspx?id=100908
Microsoft Exchange Server 2019 Cumulative
Update 3 ->https://www.microsoft.com/en-us/download/details.aspx?id=100905
Microsoft Exchange Server 2019 Cumulative
Update 4 ->https://www.microsoft.com/en-us/download/details.aspx?id=100906
ÇÖZÜM ÖNERİLERİ
Tüm yazılımları, minimum erişim haklarına
sahip, ayrıcalıklı olmayan bir kullanıcı olarak çalıştırın. Gizli güvenlik
açıklarının etkisini azaltmak için, yönetici olmayan yazılımları her zaman en
az erişim haklarına sahip bir kullanıcı olarak çalıştırın.
Ağ trafiğini kötü amaçlı etkinliklere karşı
izlemek için Network Intrusion Detection System(NIDS) kullanın. Bu, başarılı
istismarlardan kaynaklanan istismar girişimlerini veya faaliyetlerini
gösterebilir.
Bilinmeyen veya güvenilmeyen kaynaklar
tarafından sağlanan bağlantılara gitmeyin.Web kullanıcıları, yabancı veya
şüpheli kaynaklar tarafından sağlanan sitelere olan bağlantılara gitme
konusunda dikkatli olmalıdır. HTML'yi e-postalardan filtrelemek, kullanıcılara
kötü amaçlı bağlantılar iletmek için olası bir vektörün kaldırılmasına yardımcı
olabilir.
Birden fazla güvenlik katmanı uygulayın.
Memory-protection schemes (gerçekleştirilemeyen yığın, yığın yapılandırmaları
ve rastgele eşlenen bellek segmentleri gibi), bellek bozulması güvenlik
açıklarından yararlanılmasını zorlaştırır.
Güncellemeler yapınız.
SONUÇ
Microsoft bu güvenlik açığını Şubat 2020'de CVE-2020-0688
olarak ekledi. Bu güvenlik açığını “Microsoft Exchange'in kurulum sırasında
anahtarları nasıl oluşturduğunu düzelterek” giderdiler. Artık yükleme sırasında
kriptografik anahtarları rastgele seçmektedir. Microsoft, büyük olasılıkla bir
saldırganın önce kimlik doğrulaması yapması gerektiği için bunu önem derecesi
olarak değerlendirdi.
Bir kuruluş içerisinde çoğu kullanıcının Exchange
sunucusunda kimlik doğrulaması yapmasına izin verilir. Herhangi bir kurumsal
kullanıcının cihazını veya kimlik bilgilerini tehlikeye atan bir saldırgan,
Exchange sunucusunu ele geçirmeye devam edebilir. Bunu başardıktan sonra, saldırgan
kurumsal e-posta iletişimini istediği gibi açığa vurabilir veya farklı bir şekilde
konumlandırabilir.
Buna göre, bir Exchange Server yöneticisiyseniz, bunu kritik
olarak derecelendirilmiş bir yama olarak değerlendirmeli ve gerekli önlemleri
almalısınız.
Microsoft bunu 1 Exploit Dizini ile listeler ve bu yama
yayınından sonraki 30 gün içinde istismar görmeyi bekledikleri anlamına gelir.
REFERANSLAR
4)
https://us.norton.com/online-threats/microsoftexchangecve-2020-0688remotememorycorruptionvul-111753-vulnerability.html
0 yorum:
Yorum Gönder