Konu @CliaWeb; arkadaşımızın bir kaç gün önce açtığı konudaki açık bugün maalesef patlak verdi ve bir çok ESXi sunucu zarar gördü. Bu açığı kalıcı ve geçici olarak nasıl kapatacağınızı hızlıca anlatmak istiyorum.
Açığın çalışma mantığı VMXNET3 kullanan sanal sunucular üzerinden gerçekleştiriliyor. ESXi üzerinde Linux sunucular VMXNET3 adaptörünü kullanıyor. Saldırgan bir sanal sunucu üzerinden (VMXNET3 kartıyla kurulduysa) direkt olarak ESXi sunucuya kod gönderip çalıştırabiliyor. Yani sanal sunucu üzerinden ESXi' a girip her şeyi yapabilir. ESXi veya vCenter' ı dışarıya kapatmak maalesef bu sorunu çözmüyor. Çünkü saldırgan zaten dışarıdan erişim sağlamıyor içerideki bir sanal sunucudan işlem sağlıyor.
Bu durumun kalıcı çözümü ESXi sürümünü 6.7 / 7' den "ESXi80U3k-25595708" veya "ESXi-9.1.0.0200-25557999" yani ESXi 8 veya 9' a geçmek. Güncel sürümler burada : https://knowledge.broadcom.com/exter...mware-esx.html
Eğer ESXi 8 veya 9' a geçemiyorsanız ESXi 6.7 / 7' de VMXNET3 kullanan VM' leri tespit edip bunların ethernet adaptörlerini E1000E' ye çevirmek. Bunu elle yapabilirsiniz fakat elle yaparsanız PCI Slot sırası değişeceği için Linux içinde IP ayarları bozulacaktır. Yani Eğer bir sanal sunucuya sağ tıklayıp edit ile VMXNET3' ü silip E1000E eklerseniz Linux içindeki örneğin Eth192 olan config adı Eth160 olacaktır ve mac adresi değişecektir bu yüzden IP adresi çalışmayacaktır. Bu durumda elle ip ayarlarını tekrar yapmalısınız. Bu durumu yaşamamanız için sizlere bir script hazırladım. Script sayesinde ip ayarları ve mac adresi bozulmadan sanal sunucunun adaptörünü E1000E yapabilirsiniz.
Yapmanız gerekenler öncelikle vmxnet3-liste.txt bu linkteki kodların hepsini kopyalayın ve ESXi sunucunuza SSH ile bağlanıp bu kodu çalıştırın. Ardından
chmod +x /tmp/vmxnet3-liste.shkodunu çalıştırın. Daha sonra
/tmp/vmxnet3-liste.shYazıp çalıştırın. Ekran çıktısı şöyle olacaktır (örnek) ;
VMXNET3 kullanan VM : 31 Linux : 23 Windows : 0 Diger : 8 --- LINUX vmid listesi (donusturulecekler) --- 100 101 102 103 ... --- WINDOWS vmid listesi (BU YONTEMLE DOKUNMA) --- --- DIGER / BILINMEYEN (elle incele) --- 104 105 106 ...Ardından bu sanal sunucuların adaptörlerini E1000E' ye çevirebilirsiniz. nic-batch.txt bu linkteki kodların hepsini kopyalayın ve SSH da çalıştırın. Ardından ;
chmod +x /tmp/nic-batch.shYazıp yetki verin ve
DRYRUN=1 /tmp/nic-batch.sh 100İle bir deneme yapın başarılı olup olmayacağını söyler eğer sorun yoksa şu kodu çalıştırın ;
/tmp/nic-batch.sh 100Eğer toplu yapmak istiyorsanız id leri sonuna toplu yazın örnek ; /tmp/nic-batch.sh 100 101 102 103 104 105 ...
Not : Bu script sadece sanal sunucuda VMWare Tools varsa çalışır. Çünkü IP işlemleri Tools sayesinde yapılıyor. Eğer Tools yoksa işe yaramaz bu durumda sizin elle E1000E güncellemesi yapmanız gerek.
Bu script sayesinde IP ayarları bozulmadan E1000E yapabilirsiniz. Unutmayın bu durum sadece şu anlık bir çözüm. Eğer sanal sunucuyu sıfırdan tekrar VMXNET3 ile kurarsanız sorun devam edecektir. Kalıcı çözüm ESXi ve vCenter sürümünü yukarıda belirttiğim gibi 8 veya 9' a yükseltmek. Eğer bu mümkün değil sunucunuz desteklemiyorsa illa ESXi 6.7 / 7 de kalmanız gerekiyorsa bu scriptler ile mevcut tüm VMXNET3 kullanan sanal sunucuları E1000E yapın ve bundan sonra VMXNET3 kullanan bir sanal sunucu kurmayın. Eğer otomatik sanal sunucu kurulum sistemi kullanıyorsanız (AutoVM gibi) buradaki hazır templateleri güncelleyin hepsini E1000E yapın yani bundan sonra hep bunu kullanmalısınız. VMware ESXi 6.7 / 7 için bu açığı kapatmayacağını yani patch yayınlamayacağını söyledi çünkü desteği bitti ama olurda insafa gelir yayınlarsa normal VMXNET3 kullanmaya devam edebilirsiniz.
Herkese geçmiş olsun iyi çalışmalar.