ESXi Babyk Ransomware Sonrası VM Kurtarma: Header Transplant ile Boot Onarımı
VMware ESXi üzerinde Babyk ransomware saldırısı sonrası “Operating system not found” hatası alan sanal makineleri, çalışan bir restored kopyadan header transplant yöntemiyle nasıl kurtaracağınızı adım adım anlatıyorum.
VMware ESXi ortamlarında görülen Babyk ransomware saldırıları, sanal makine dosyalarını hedef alarak VM’lerin açılışını bozar. En sık karşılaşılan tablo şudur: VM power on olur, ancak konsolda Operating system not found, No bootable device veya EFI tarafında No Media benzeri hatalar görünür. Bu yazıda, gerçek bir kurtarma senaryosundan yola çıkarak header transplant yöntemini, dosya yapısını nasıl okuyacağınızı ve inventory’ye güvenli dönüşü detaylı anlatıyorum.
Amaç, fidye ödemeden ve çalışan üretim sunucularını bozmadan boot zincirini geri getirmektir. Bu rehber sistem yöneticileri, hosting ekipleri ve siber olay müdahale (IR) süreçleri için yazılmıştır.
Babyk Ransomware ESXi’de Ne Yapar?
Babyk (ve benzeri ESXi odaklı fidye yazılımları) genelde şu izleri bırakır:
- .babyk uzantılı dosyalar: Özellikle
.vmdk.babyk, log ve yardımcı dosyalar yeniden adlandırılır. - “How To Restore Your Files.txt” gibi fidye notları VM klasörüne bırakılır.
- -flat.vmdk büyük veri dosyası çoğu zaman klasörde kalır; ancak dosyanın baş kısmı (MBR/GPT, EFI System Partition, NTFS boot sector) şifrelenmiş veya bozulmuş olabilir.
- Descriptor (
.vmdk) eksik/yanlış CID ve DDB alanlarıyla yeniden yazılmış olabilir.
Kritik nokta şudur: Diskin tamamı her zaman şifreli değildir. Çoğu vakada ilk yüzlerce MB yüksek entropili (şifreli/bozuk) görünürken, daha derinlerde NTFS MFT (FILE0) gibi yapılar sağlam kalabilir. Bu yüzden “disk öldü” diye silmek yerine dosya yapısını okumak kurtarma şansını artırır.
Belirtiler: Bu Sorun mu?
- VM açılıyor ama işletim sistemi bulunamıyor
- EFI firmware ile “No Media”, BIOS ile boot menüsü boş kalıyor
- Datastore’da VM klasörü duruyor,
-flat.vmdkboyutu büyük - Klasörde
.babykve fidye notu var - Daha önce kurtarılmış
*_restoredkopyalar datastore’da duruyor olabilir
Kurtarma Öncesi Güvenlik Kuralları
- Çalışan restored VM’i kapatmayın. Özellikle production’da ayakta olan kardeş kopyaya power off / disk yazma yapmayın.
- Önce yedek alın. Hedef
-flat.vmdkbaşından en az 1 GB’ı ayrı dosyaya kopyalayın. - Aynı UUID ve IP ile iki VM’i ağa birlikte bağlamayın. Klon/transplant sonrası Windows aynı static IP’yi getirebilir.
- Fidye ödemeyin. Bu yazıdaki yöntem, ödeme olmadan boot onarımına odaklanır.
Teşhis: Dosya Yapısına Bakmak
ESXi SSH üzerinden hedef klasörü inceleyin:
ls -lah /vmfs/volumes/DiskX/ORNEK-VM/
hexdump -C -n 64 /vmfs/volumes/DiskX/ORNEK-VM/ORNEK-VM-flat.vmdk | head
cat /vmfs/volumes/DiskX/ORNEK-VM/ORNEK-VM.vmdk
cat /vmfs/volumes/DiskX/ORNEK-VM/ORNEK-VM.vmdk.babyk
Ne arıyoruz?
- MBR imzası: Sektör 0 sonunda
55 AAolmalı. Yoksa boot alanı bozuk/şifreli demektir. - GPT: LBA 1’de
EFI PARTgörülebilir (UEFI disklerde). - NTFS: Partition başlangıcında OEM alanı
NTFSolmalı. - MFT: Derinde
FILE0görünmesi, veri gövdesinin kısmen sağlıklı olduğunu gösterir. - Kardeş kopya: Aynı
uuid.bios/ aynı disk kapasitesi ile çalışan*_restoredVM var mı?
Inventory’de klasör adı ile displayName karışmış olabilir. Örneğin klasör 185.x.x.75 iken inventory adı başka bir IP olabilir. Bu yüzden sadece klasör adına değil, VMX içindeki uuid.bios ve scsi disk adına bakın.
Çözüm Yöntemi: Header Transplant
Yöntemin özü şudur: Çalışan ve sağlıklı bir restored kardeş VM’den disk başlığını (header) alıp, bozuk hedefin -flat.vmdk dosyasının başına yazmak. Böylece:
- Bozuk MBR / partition / boot sektörleri onarılır
- Hedef diskteki veri gövdesi korunur
- Çalışan kardeş VM kapatılmaz
Pratikte ilk 1 GB genelde yeterlidir; çünkü şifreleme/bozulma çoğu vakada ilk ~500 MB civarında yoğunlaşır.
Adım Adım Uygulama
1) Çalışan kardeşte geçici snapshot alın
Hedef: Kardeş VM açık kalsın, yazmalar delta’ya gitsin, base disk okunabilir hale gelsin.
vim-cmd vmsvc/snapshot.create <VMID> "hdr_src" "temp header source" 0 0
vim-cmd vmsvc/snapshot.get <VMID>
Önemli: Snapshot sonrası -000001.vmdk ve açık -flat.vmdk çoğu zaman kilitli kalır (Device or resource busy / Failed to lock the file). Klon için parent/base .vmdk descriptor kullanın.
2) Base diskten thin klon alın
mkdir -p /vmfs/volumes/DiskY/tmp_hdr
vmkfstools -i '/vmfs/volumes/DiskX/RESTORED/ORNEK.vmdk' \
'/vmfs/volumes/DiskY/tmp_hdr/base.vmdk' -d thin
Bu işlem thin provisioning ile görece hızlı tamamlanabilir. Klon bittikten sonra header kaynağı olarak base-flat.vmdk kullanılır.
3) Hedef VM’i kapatıp header yedeği alın
vim-cmd vmsvc/power.off <HEDEF_VMID>
dd if=/vmfs/volumes/.../HEDEF-flat.vmdk \
of=/vmfs/volumes/.../header_backup_pre.bin \
bs=1M count=1024 conv=fsync
4) Sağlıklı header’ı hedefe yazın
dd if=/vmfs/volumes/DiskY/tmp_hdr/base-flat.vmdk \
of=/vmfs/volumes/.../HEDEF-flat.vmdk \
bs=1M count=1024 conv=notrunc,fsync
conv=notrunc kritiktir: Sadece başı değiştirir, flat dosyanın geri kalanını silmez.
5) VMDK descriptor’ı düzeltin
Babyk sonrası descriptor eksik kalmış olabilir. Çalışan kardeşin DDB alanlarını referans alarak şunları tamamlayın:
CID/ddb.longContentIDddb.uuid, geometry,ddb.thinProvisionedddb.adapterType→ VMX ile uyumlu olmalı (çoğu senaryodalsilogic)- Extent satırı doğru flat dosyayı göstermeli
6) VMX ve inventory ayarları
displayNamedeğerini istediğiniz isme çekin (ör. inventory’de görünür ad)- Yeni
uuid.biosverin (kardeşle çakışmasın) - Yeni MAC verin (
ethernet0.addressType = static) - Firmware’i kardeş VM ile hizalayın. Bu vakada EFI “No Media” verdi, BIOS ile boot başarılı oldu.
vim-cmd vmsvc/reload <VMID>ile inventory’yi yenileyin
vim-cmd vmsvc/getallvms | grep -i SemihTest
7) Temizlik: snapshot ve geçici klon
vim-cmd vmsvc/snapshot.remove <KARDEŞ_VMID> <SNAPSHOT_ID>
# gerekirse:
vim-cmd vmsvc/snapshot.removeall <KARDEŞ_VMID>
rm -rf /vmfs/volumes/DiskY/tmp_hdr
Kardeş VM’in power state, tools ve IP durumunu doğrulayın. Amaç onu bozmamaktır.
8) Hedefi açın ve doğrulayın
vim-cmd vmsvc/power.on <HEDEF_VMID>
vim-cmd vmsvc/get.guest <HEDEF_VMID>
Başarı işaretleri:
guestState = running- VMware Tools çalışıyor
- Guest OS adı görünüyor (ör. Windows Server 2022)
IP Çakışması Tuzağı
Header / disk klonu Windows guest’in ağ ayarlarını da taşıyabilir. Sonuç: Kurtarılan VM ile restored kardeş aynı IPv4’ü kullanmaya çalışır. Bu durumda:
- Kurtarılan VM’de NIC’i hemen kesin:
vim-cmd vmsvc/device.connection <HEDEF_VMID> 4000 disconnect
- Konsoldan IP’yi değiştirin
- Ardından NIC’i tekrar bağlayın
Ayrıca bir sonraki açılışta otomatik bağlanmasın diye VMX’te ethernet0.startConnected = "FALSE" bırakmak güvenlidir.
Firmware Seçimi: EFI mi BIOS mu?
| Durum | Öneri |
|---|---|
| Kardeş VM EFI + sağlam ESP | EFI deneyin |
| EFI “No Media” / boot entry yok | BIOS’a geçip tekrar deneyin |
| MBR imzası var, GPT yok | BIOS daha olası |
| Secure Boot açık ve imza uyumsuz | Geçici olarak Secure Boot kapatın |
Neden Bu Yöntem İşe Yarıyor?
Babyk’in ESXi varyantında sık görülen model, büyük flat diskin tamamını değil özellikle başlangıç bloklarını bozmaktır. Boot loader zinciri (MBR/VBR/ESP) kırılınca hiper yönetici diski açar ama misafir işletim sistemi yüklenemez. Header transplant:
- Boot zincirini sağlıklı kopyadan geri getirir
- Veri alanındaki sağlıklı MFT/gövdeyi kullanmaya devam eder
- Çalışan production kopyayı kapatmadan ilerleme şansı verir
Elbette her saldırı aynı değildir. Disk gövdesi de tamamen şifreliyse bu yöntem yetmez; o durumda temiz yedek, storage snapshot veya offline decrypt/restore senaryoları gerekir.
Kontrol Listesi (Cheat Sheet)
- Hedef klasörde
.babyk+ fidye notu var mı? - Flat başı
55 AAveriyor mu? - Derinde
FILE0/ NTFS izi var mı? - Aynı UUID/boyutta çalışan restored kardeş var mı?
- Kardeşte snapshot → base
vmkfstools -iklon - Hedef off → 1 GB header yedek → 1 GB transplant
- Descriptor + VMX (isim, UUID, MAC, firmware)
- Snapshot/temp temizliği
- Power on → Tools/OS doğrula
- IP çakışması varsa NIC disconnect
Sık Yapılan Hatalar
- Kilitli flat’e dd denemek: Busy hatası alırsınız; önce snapshot + base klon yolunu kullanın.
-000001.vmdkklonlamaya takılmak: Çoğu zaman lock edilir; parent descriptor deneyin.- UUID/MAC kopyalamak: Inventory ve ağda çakışma üretir.
- Descriptor’ı yarım bırakmak: Disk açılır ama geometry/CID hatalarıyla kararsız kalabilir.
- Restored kardeşi power off etmek: Gereksiz risk. Bu yöntemde gerekmez.
Sıkça Sorulan Sorular
Babyk nedir?
ESXi ve sanal makine dosyalarını hedef alan bir ransomware ailesidir. Dosya uzantısı ve fidye notu ile kendini belli eder. Amaç, yedek ve erişim olmadan operasyonu durdurup fidye almaktır.
Header transplant veri kaybına yol açar mı?
Doğru yapıldığında (conv=notrunc ve sınırlı count) yalnızca disk başı değişir. Yine de işlem öncesi 1 GB header yedeği şarttır.
Restored VM yoksa ne yapılır?
Bu yöntem sağlıklı bir kardeş/yedek header’a ihtiyaç duyar. Yoksa storage snapshot, harici yedek veya offline onarım (Windows recovery / BCD / registry) senaryolarına geçilir.
Sadece .vmdk.babyk dosyasını geri adlandırmak yeter mi?
Bazen descriptor kurtarımı yeterlidir. Ancak flat başı şifreliyse yeniden adlandırma tek başına boot getirmez; header onarımı gerekir.
Bu işlem legal midir?
Kendi yönettiğiniz / yetkili olduğunuz sistemlerde felaket kurtarma kapsamındadır. Başkasına ait sistemlere izinsiz müdahale etmek yasaya aykırıdır.
Sonuç
ESXi üzerinde Babyk sonrası “işletim sistemi bulunamadı” hatası, çoğu zaman disk gövdesinin tamamen yok olduğu anlamına gelmez. Dosya yapısını okuyup çalışan bir restored kopyadan header transplant yapmak; doğru snapshot/klon tekniği, descriptor düzeltmesi ve UUID/MAC izolasyonu ile birlikte etkili bir kurtarma yoludur.
Bu yazıdaki akış, gerçek bir olay müdahalesinde doğrulanmış adımlara dayanır: kardeş VM bozulmadan klon alındı, hedef boot alanı onarıldı, inventory’ye yeni adla eklendi ve IP çakışması NIC kesilerek kontrol altına alındı.
Benzer bir vakanız varsa önce yedek, sonra teşhis, en son yazma sırasını bozmayın. Kurtarma sürecinde en değerli şey acele etmek değil, geri dönüşü olan adımlar atmaktır.
Destek İhtiyacı Olanlar
ESXi / Babyk / VM boot sorunlarında yardıma ihtiyacınız olursa doğrudan bana ulaşabilirsiniz:
- E-posta: semih@mynet.com
- Telefon: 0541 646 16 16
Mümkünse mesajınızda ESXi sürümü, hata ekranı (Operating system not found / No Media vb.), datastore klasöründeki dosya listesi ve VM’in powered off olup olmadığını paylaşın; teşhisi hızlandırır.
Yorumlar (0)
Henüz yorum yok. İlk yorumu siz yapın!