Güvenlik Açıkları

Windows SMB Protokolünü Etkileyen Kritik Bir Güvenlik Açığı Daha: SMBleed

4 dakikada okunur

Siber güvenlik araştırmacıları geçtiğimiz günlerde, Microsoft Windows Sunucu İleti Bloğu (SMB) protokolünü etkileyen ve saldırganların çekirdek belleğine uzaktan sızmasına izin verebilecek yeni kritik bir güvenlik açığını tespit etti. 445 numaralı TCP bağlantı noktası üzerinden çalışan SMB, ağ üzerinden dosya paylaşımı, ağ tarama ve işlemler arası iletişim için temel sağlayan bir ağ protokolüdür.

Daha önce tespit edilmiş  “wormable ” bir hatayla birleştirildiğinde, uzaktan kod yürütme saldırıları gerçekleştirilmek için zafiyetten  yararlanılabilir.

ABD Siber Güvenlik ve Altyapı Güvenliği Ajansı (CISA), geçen hafta çevrimiçi olarak SMBGhost hatası için istismar kodunun yayınlanmasından sonra Windows 10 kullanıcılarını makinelerini güncellemeleri konusunda uyardı. SMBGhost o kadar ciddiye alındı ​​ki, maksimum önem derecesi 10 olarak puanlanmıştı.

Yayınlanan CISA raporlarına göre , “Microsoft, Mart 2020’de bu güvenlik açığıyla ilgili gerekli güncelleştirmeleri yayınlamasına rağmen, kötü niyetli siber aktörler yeni PoC’ler ile güncellenmemiş sistemleri hedefliyor.

Siber güvenlik firması ZecOps tarafından “SMBleed” (CVE-2020-1206) olarak adlandırılan zafiyet, SMB’nin decompression (sıkıştırılmış verileri açma) fonksiyonunda bulunuyor. Üç ay önce tespit edilen  SMBGhost ve EternalDarkness (CVE-2020-0796) zafiyetleri de bu fonksiyonda bulunmuştu. Güvenlik açığı, savunmasız Windows sistemleri ağda yayılabilecek kötü amaçlı yazılım saldırılarına karşı savunmasız hale getiriyor. Aşağıda, decompression fonksiyonun basitleştirilmiş bir sürümü bulunmaktadır;

typedef struct _COMPRESSION_TRANSFORM_HEADER
{
    ULONG ProtocolId;
    ULONG OriginalCompressedSegmentSize;
    USHORT CompressionAlgorithm;
    USHORT Flags;
    ULONG Offset;
} COMPRESSION_TRANSFORM_HEADER, *PCOMPRESSION_TRANSFORM_HEADER;
 
 
typedef struct _ALLOCATION_HEADER
{
    // ...
    PVOID UserBuffer;
    // ...
} ALLOCATION_HEADER, *PALLOCATION_HEADER;
 
 
NTSTATUS Srv2DecompressData(PCOMPRESSION_TRANSFORM_HEADER Header, SIZE_T TotalSize)
{
    PALLOCATION_HEADER Alloc = SrvNetAllocateBuffer(
        (ULONG)(Header->OriginalCompressedSegmentSize + Header->Offset),
        NULL);
    If (!Alloc) {
        return STATUS_INSUFFICIENT_RESOURCES;
    }
 
 
    ULONG FinalCompressedSize = 0;
 
 
    NTSTATUS Status = SmbCompressionDecompress(
        Header->CompressionAlgorithm,
        (PUCHAR)Header + sizeof(COMPRESSION_TRANSFORM_HEADER) + Header->Offset,
        (ULONG)(TotalSize - sizeof(COMPRESSION_TRANSFORM_HEADER) - Header->Offset),
        (PUCHAR)Alloc->UserBuffer + Header->Offset,
        Header->OriginalCompressedSegmentSize,
        &FinalCompressedSize);
    if (Status < 0 || FinalCompressedSize != Header->OriginalCompressedSegmentSize) {
        SrvNetFreeBuffer(Alloc);
        return STATUS_BAD_DATA;
    }
 
 
    if (Header->Offset > 0) {
        memcpy(
            Alloc->UserBuffer,
            (PUCHAR)Header + sizeof(COMPRESSION_TRANSFORM_HEADER),
            Header->Offset);
    }
 
 
    Srv2ReplaceReceiveBuffer(some_session_handle, Alloc);
    return STATUS_SUCCESS;
}

Decompression fonksiyonunun işlevi, istemci tarafından gönderilen sıkıştırılmış iletiyi alır, gerekli bellek miktarını ayırır ve verileri açar. Sonra, ofset alanı 0 değilse, sıkıştırılmış verilerin önüne yerleştirilen verileri ayrılan arabellek başına kopyalar.

ZecOps araştırmacılarına göre zafiyet, söz konusu decompression fonksiyonunun özel hazırlanmış mesaj isteklerini işleme biçiminden kaynaklanıyor. Saldırganın başlatılmamış çekirdek belleğini okumasına ve sıkıştırma işlevinde değişiklikler yapmasına olanak tanıyarak hedeflenen bir SMBv3 sunucusuna gönderiyor.

Özel olarak hazırlanmış olan mesaj,yazılacak bayt miktarını,bayrakları ve değişken uzunlukta bir arabellek içeriyor.Bu durum, zafiyeti istismar etmek için mükemmel bir fırsattır, çünkü başlığını belirttiğimiz bir mesaj oluşturabiliyoruz.

Sunucudaki güvenlik açığından yararlanmak için, hedeflenen SMBv3 sunucusuna özel hazırlanmış bir paket gönderilebilir veya saldırgan, kötü amaçlı bir SMBv3 sunucusu yapılandırdıktan sonra kullanıcıyı bu sunucuya bağlayarak zafiyeti kullanabilir. Güvenlik açığından başarıyla yararlanan bir saldırgan, kullanıcının sistemini daha da tehlikeye atmak için kurban hakkında bilgi toplayabilir.

Daha da kötüsü, SMBleed, uzaktan kod çalıştırılmasını sağlamak için yamalanmamış Windows 10 sistemlerinde SMBGhost zafiyeti ile zincirlenebilir. Firma ayrıca, güvenlik açığını gösteren PoC istismar kodu yayınladı .

Etkilenen Windows Sürümleri

Güvenlik açığının Windows 10’un 1903, 1909 ve 2004 sürümlerini etkilediği tespit edildi. Test sırasında PoC, Windows 10 1903 makinelerinden birini kilitledi. Bu kilitlenme analiz edildikten sonra , Windows 10 1903’ün, yamalanmamış sürümlerinde geçerli, sıkıştırılmış SMB paketlerini işlerken “null pointer dereference” hatası olduğu görüldü. Ama null pointer dereference hatasını atlamanın ve sistemi kullanmanın mümkün olup olmadığını bulmak için daha fazla araştırma yapılmadı.

Yamalanmamış bir sistemde null pointer dereference hatasının bulunduğu yer 

Yamalı bir sistemde eklenen null pointer kontrolü.

Etkilenen Windows sürümlerinin ilgili güncellemelerle birlikte bir özeti:

Windows 10’un 1903, 1909 ve 2004 sürümlerini etkileyen güvenlik açığı, Microsoft’un her Salı yayımladığı güvenlik  güncelleştirmelerinin bir parçası olarak dün yamalandı.

Kimlik Doğrulama Öncesi RCE için SMBleed’i SMBGhost ile Zincirleme SMBleedingGhost

Kimlik doğrulaması olmadan SMBleed hatasını kullanmak kolay değildir, ancak mümkündür. Uzaktan kod çalıştırmak için SMBGhost hatasıyla birlikte kullanılabilir. Sömürüyü gösteren bir POC yayınlandı. Bu POC’nin sadece eğitim ve araştırma amacıyla olduğu kadar güvenlik savunmalarının değerlendirilmesi için de yayınlandığı ve sorumluluk kabul edilmediği belirtildi.

SMBGhost + SMBleed RCE POC Kaynak Kodu

İyileştirmeler

  • Windows güncellemesi sorunları tamamen çözecektir (önerilir)
  • 445 numaralı bağlantı noktasını engellemek, bu güvenlik açıklarını kullanarak yanal hareketleri durduracaktır.
  • SMB 3.1.1 sıkıştırmasını devre dışı bırakma (önerilen bir çözüm değil)
Bunlar ilgini çekebilir
Güvenlik Açıkları

NSA, E-posta Sunucularını Hedefleyen Yeni Sandworm Saldırılarına Karşı Uyarıyor

2 dakikada okunur
NSA, Rusya destekli hacker’ların Ağustos 2019’dan bu yana Exim e-posta sunucularında arka kapılar oluşturmak için saldırılar düzenlediğini söyledi. ABD Ulusal Güvenlik Ajansı…
Güvenlik Açıkları

MS Windows SMBv3 Protokolünde Kritik Güvenlik Açığı

1 dakikada okunur
Microsoft‘un popüler işletim sistemi olan Windows 10, dünya genelinde milyonlarca kişi tarafından kullanılıyor. Microsoft, 2015 yılından bu yana sürekli güncelleme alan Windows…
Güvenlik Açıkları

Yeni Sudo Güvenlik Açığı

2 dakikada okunur
Apple Security‘den Joe Vennix, sudo komutunda belirli bir yapılandırma altında, düşük ayrıcalıklı kullanıcıların veya kötü amaçlı yazılımları, Linux veya macOS sistemlerde root…
Siber güvenlik dünyasındaki gelişmeleri takip edin.
Verinizi gizli tutuyoruz ve sadece bu servisi imkanlı kılan üçüncü partiler ile paylaşıyoruz. Gizlilik Politikamızı okuyun.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.