ESXi Cryptolocker VMDK Kurtarma
Merhaba arkadaşlar,
03.02.2023 tarihiyle ESXi 6.x sürümleri bir açık nedeniyle CryptoLocker virüsüne maruz kaldı ve sanal sunucular kullanılmaz hale geldi. Bu virüsü yaşayan kullanıcılar için sanal sunucuyu nasıl kurtaracaklarını anlatacağım. Virüs .vmdk .vmx gibi ufak boyutlu dosyaları şifreliyor fakat server-flat.vmdk dosyasını şifrelemiyor. ESXi yapısında asıl veriler flat.vmdk içinde tutuluyor. flat.vmdk kullanarak nasıl geri dönüş yapacağınızı anlatacağım.
Not : Bu kurtarma işlemi disk yapısı thin olan sanal sunucularda işe yarıyor. Eğer sanal sunucu kurulumu yaparken thick disk yapısı seçtiyseniz bu kurtarma işlemi sonrasında sanal sunucunuz açılırken işletim sistemi yok uyarısı verecektir. Eğer thick disk yapınız varsa önerim sıfırdan bir Windows kurup kurtardığınız .vmdk dosyasını 2. disk olarak oraya ekleyerek Windows içinden dosyaları almanızdır.
Öncelikle ESXi sunucunuza girdiğinizde SSH üzerinde şöyle bir uyarı göreceksiniz ;
Bu ekranı gördüğünüzde ESXi ara yüzünün tekrar gelmesi için öncelikle ESXi reboot atın. Sunucu açıldıktan sonra SSH’ a girin. Kurtarmak istediğiniz sanal sunucunun klasörüne cd komutu ve yolu belirterek girin. Siz FTP den datastorexxx olarak girersiniz fakat adı 6094xxx gibi değişir. Klasöre girdikten sonra ls -la komutunu yazın, burada flat.vmdk nın boyutunu alacağız. Aşağıdaki görselde de göründüğü gibi -flat.vmdk dosyasının boyutu 64424509440 yazıyor.
64424509440 olarak bir köşeye not aldık. Şimdi virüslü .vmdk dosyasını sileceğiz. Bunun için rm -rf xxx.vmdk yazın ve .vmdk dosyasını silin. NOT : xxx.vmdk dosyasını silin. Kesinlikle xxx-flat.vmdk dosyasını silmeyin.
xxx.vmdk dosyasını sildik. Şimdi vmkfstools kullanarak yeni .vmdk oluşturacağız. vmkfstools -c 64424509440 -d thin temp.vmdk komutunu yazıyoruz. Buradaki 64424509440 boyutu ls -la yaptığımızda çıkan -flat.vmdk boyutu olmalı buna dikkat edin.
temp.vmdk dosyamızı oluşturdu. Filezilla ile klasöre girdiğinizde aşağıdaki gibi temp.vmdk ve temp-flat.vmdk dosyalarının oluştuğunu göreceksiniz.
Şimdi temp.vmdk dosyasını Notepad++ ile açın. Aşağıdaki gibi bir ekranla karşılaşacaksınız.
9. satırda “temp-flat.vmdk” yazıyor. Burayı orjinal -flat.vdmk ile değiştireceğiz. Konudaki 2. SS’ e baktığınızda benim orjinal flat.vmdk ismim 185.88.172.17-flat.vmdk böyleydi buna göre düzenliyorum.
Ayrıca 19. satırda yazan ddb.thinProvisioned = “1” satırını siliyorum.
9. satırı “185.88.172.17-flat.vmdk” olarak düzenledim (kendi orjinal -flat.vmdk dosya adımı yazdım) ve 19. satırdaki ddb.thinProvisioned = “1” satırını sildim.
Düzenlenmiş son hali aşağıdaki görseldeki gibi olmalı. Sadece 2 satırda işlem yaptık ve kaydettik.
.vmdk dosyamı düzenleyip kaydettikten sonra temp-flat.vmdk dosyasını siliyorum. FTP den delete yapabilir veya SSH’ dan rm -rf komutu ile silebilirsiniz. Aşağıdaki görseldeki gibi siliyorum.
Şimdi temp.vmdk dosyasının adını ise flat.vmdk ile aynı yapıyorum. SS’ ler de benim flat.vmdk adım 185.88.172.17-flat.vmdk şeklinde. Bu yüzden temp.vmdk dosya adını 185.88.172.17.vmdk yaptım yani sadece -flat satırını sildim. Son hali aşağıdaki gibi oldu.
Ardından .vmx dosyanızı düzenleyeceğiz. Mevcut .vmx dosyanız virüslü olduğu için bunun yedeği .vmx~ olarak duruyor. Klasörünüzde xxxx.vmx ve xxxx.vmx~ şeklinde 2 adet dosya göreceksiniz.
Benim klasörümdeki .vmx adı 185.88.172.17.vmx~ şeklinde. Bunu not defteri ile açıyorum tüm kodları alıp orjinal .vmx içerisine yapıştırıyorum. Yani .vmx~ dosyasının içindeki tüm kodları alıp .vmx dosyasına yapıştırıyorum ve kayıt ediyorum.
.vmx dosyanızın son hali aşağıdaki gibi olmalıdır.
Ardından yine klasör içerisinde bulunan .vmsd dosyasını siliyorum. Buda virüslü ve sanal sunucunun açılmasını engeller bu yüzden xxxx.vmsd dosyasını da silin.
Filezilla ile işimiz bitti. Şimdi SSH’ a tekrar dönün ve vmkfstools -e xxxx.vmdk komutunu çalıştırın. Benim .vmdk dosya adım 185.88.172.17.vmdk olduğu için ” vmkfstools -e 185.88.172.17 .vmdk ” yazdım ve çalıştırdım.
SSH ve Filezilla ile işimiz bitti. Şimdi ESXi içerisinde sanal sunucuyu tekrar tanımlayacağız.
Bunun için ESXi içinde datastore’ e girin ve düzenlediğiniz klasör içerisinde xxxx.vmx e sağ tıklayıp Register VM yapın. Benim .vmx dosya adım 185.88.172.17.vmx olduğu için buna sağ tıkladım ve Register VM yaptım.
Eğer VM eklenirken zaten var diye hata alırsanız önce ESXi ana ekranında Virtual Machines alanında sanal sunucuyu bulup ona sağ tıklayıp Unregister yapın yani ESXi ara yüzünden kaldırın sonra .vmx e sağ tıklayıp Register VM yapın.
NOT : Mevcut sanal sunucuyu kaldırırken kesinlikle Unregister yapın Delete yapmayın aksi halde kalıcı olarak silersiniz.
Register VM yaptıktan sonra sanal sunucum normal bir şekilde Virtual Machines alanına geldi. Buradan artık sunucunuzu normal bir şekilde açıp kullanmaya devam edebilirsiniz.
Bu işlemler bittikten sonra ESXi’ a format atıp dışarıya kapatmayı unutmayın. Firewall alanından ;
SSH Server
vSphere Web Client
vSphere Web Access
NFC
VMware vCenter Agent
Bu alanları sadece belirli IP adreslerine açmanız yeterlidir.
Herkese şimdiden geçmiş olsun.
İlgili çözüm için r10.net formundan mselim’e teşekkür ederiz.