Vmware esxi de bulunan *-000001-sesparse.vmdk ve *-000001-delta.vmdk dosyalarını nasıl kurtarabiliriz?

Burada belirtilen hack olayından sonra bizim sunucularda da sorun oluştu ve bunun sonucunda veri tabanı olarak kullandığım bir sunucuya erişmek için beynimi yakma noktasına gelmiştim. Denemelerim sonucunda *-000001-sesparse.vmdk şeklinde dosyaları bulunan vmware sunucunu ayağa kaldırmayı başardım. Şuan mysql yedeklerini alıyorum, o arada da nasıl yaptığımı anlatıp sizlere yardımcı olmak istiyorum.

Bu anlatım ayrı olarak *-000001-sesparse.vmdk ve *-000001-delta.vmdk dosyaları bulunan sunucuları kurtaracaktır. Yani kendi yöntemimle oldu, umarım sizde de olur.

Öncelikle normal sanal sunucuları olanlar burdaki konudan yardım alabilirler. Konu üzerine kafa yoran ve çalışan herkese burdan da teşekkür edelim.

Önemli uyarı: Bu adımları uygulamadan önce yedek alın dosyaları. Eğer başaramazsanız tekrar deneme şansınız olur. Yada benim anlattığım yöntemde yanlışlar varsa en azından geri dönüşü olur.

Şimdi bir çok kişinin uğraştığı konuya gelelim. Öncelikle sırayla r10 daki bu konudaki ilk bölümü yapın. Ancak sanal makineyi bağlama kısmında (Register VM) durun ve aşağıdaki adımları uygulamaya başlayın.

ssh ile işlem yapacağımız sanal sunucunun bulunduğu klasöre giriyoruz.

Burada göreceğiniz dosyalardan aşağıdaki uzantıdan olanları silin:
.nvram, .vmsd

Sonrasında VM_ADI.vmdk dosyası acıyoruz, içerisinden iki satır bizim için gerekli:

CID=fffffffe
RW 214572800 VMFS "VM_ADI-flat.vmdk"

Bunlar bir kenarda dursun, sonraki adımlara geçin.

Şimdi *-000001.vmdk (*-00000*.vmdk) ismindeki dosyaları siliyoruz ve aynı isimde yeni dosya oluşturuyoruz. İçerisine aşağıdakileri yapıştırıyoruz:

SESPARSE DOSYALARI İÇİN

# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=23456789
parentCID=fffffffe
createType="seSparse"
parentFileNameHint="VM_ADI.vmdk"
# Extent description
RW 214572800 SESPARSE "VM_ADI-000001-sesparse.vmdk"

# The Disk Data Base 
#DDB

ddb.grain = "8"

LÜTFEN DİKKAT: kurtarmaya çalıştığınız *-000001-delta.vmdk dosyalarıysa yukarıdaki dosyadan bazı alanları değiştirmeyi unutmayın, örnek delta için ayar dosyası böyle olmalı:

DELTA DOSYALARI İÇİN

# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=23456789
parentCID=fffffffe
createType="vmfsSparse"
parentFileNameHint="VM_ADI.vmdk"
# Extent description
RW 214572800 VMFSSPARSE "VM_ADI-000001-delta.vmdk"

# The Disk Data Base 
#DDB

#ddb.grain = "8"

Bu dosyada dikkat ettiyseniz önceki etapta kopyaladığımız CID ile parentCID alanları aynı. Bu önemli, eğer birden fazla *-000001.vmdk dosyanız varsa, sonraki örnek *-000002.vmdk içerisindeki parentCID kısmını da *-000001.vmdk dosyasındaki CID ile aynı olacak. Bu konulardan anlıyorsanız zaten birisinin ana, diğerinin de alt dosya olduğunu ve bu şekilde alt alta gittiğini ve zincirleme dosyalamada birbirlerini takip etmesi için olduğunu anlayabilirsiniz.

DİKKAT: Burada dikkat etmeniz gereken diğer konu dosya boyutu kısmı. Önceki kenara koyduğumuz iki satırdan ikincisinde göreceğiniz “214572800” ana dosyamız olan VM_ADI-flat.vmdk nin boyutudur ve bu boyut diğer bütün alt -00000.vmdk dosyalarında aynı olmak zorundadır. Yoksa açılmıyor, sanırım benim hata yaptığım yerlerden biride buydu.

Dosya içerisinde ki VM_ADI alanlarını kendinize göre düzenleyin ve kaydedin.

Şimdi aşağıdaki kodu çalıştırarak çıktıda hata olup olmadığına bakın:
vmkfstools -e "VM_ADI -000001.vmdk"

Eğer birden fazla varsa onlar içinde kontrol edin:

vmkfstools -e "VM_ADI -000002.vmdk"
vmkfstools -e "VM_ADI -000003.vmdk"
vmkfstools -e "VM_ADI -000004.vmdk"

Hepsinde de bu çıktıyı alıyorsanız mutlu ana yaklaşıyorsunuz demektir:
Disk chain is consistent.

Bundan sonra yapacağınız şey, r10 daki konuda durdurduğum yerden devam etmeniz ve sanal sunucuyu tanıtıp açmanız :slight_smile:

Her şey yolundaysa sunucunuz açılıp sorunsuz şekilde dosyalarınıza ulaşabileceksiniz. Eğer etaplardan birinde yada sonuçta hata ile karşılaşırsanız buradan hatayı ve yaptıklarınızı detaylıca anlatın, ben dahil konuda bilgili arkadaşlar yardımcı olmaya çalışırız.

Ayrıca yabancı forumda bu konuyla ilgili bir çok farklı bilgiye erişilebilir: https://www.bleepingcomputer.com/forums/t/782193/esxi-ransomware-help-and-support-topic-esxiargs-args-extension

Hi,
I am French and I don’t speak Turkish. Thanks for your tutorial. The problem is that I have an error when I run the command vmkfstools -e Serveur2016_1-000001-sesparse.vmdk -v 1

DISKLIB-DSCPTR: descriptor above max size: 321656664576
DISKLIB-LINK  : "/vmfs/volumes/5f***a6/Serveur2016/Serveur2016_1-000001-sesparse.vmdk" : failed to open (The file specified is not a virtual disk).
DISKLIB-CHAIN : "/vmfs/volumes/5f***a6/Serveur2016/Serveur2016_1-000001-sesparse.vmdk" : failed to open (The file specified is not a virtual disk).
DISKLIB-LIB   : Failed to open '/vmfs/volumes/5f***a6/Serveur2016/Serveur2016_1-000001-sesparse.vmdk' with flags 0xe The file specified is not a virtual disk (15).
DISKLIB-DSCPTR: descriptor above max size: 321656664576
DISKLIB-LINK  : "/vmfs/volumes/5f***a6/Serveur2016/Serveur2016_1-000001-sesparse.vmdk" : failed to open (The file specified is not a virtual disk).
DISKLIB-CHAIN : "/vmfs/volumes/5f***a6/Serveur2016/Serveur2016_1-000001-sesparse.vmdk" : failed to open (The file specified is not a virtual disk).
DISKLIB-LIB   : Failed to open '/vmfs/volumes/5f***a6/Serveur2016/Serveur2016_1-000001-sesparse.vmdk' with flags 0xc The file specified is not a virtual disk (15).
Failed to open disk link /vmfs/volumes/5f***a6/Serveur2016/Serveur2016_1-000001-sesparse.vmdk :The file specified is not a virtual disk (15)Disk chain is not consistent : The file specified is not a virtual disk (15)
AIOMGR-S : stat o=2 r=18 w=0 i=0 br=76944 bw=0
OBJLIB-LIB: ObjLib cleanup done.
WORKER: asyncOps=0 maxActiveOps=0 maxPending=0 maxCompleted=0

ls -la

drwxr-xr-x    1 root     root         81920 Feb 11 16:07 .
drwxr-xr-t    1 root     root         81920 Feb 10 17:14 ..
-rw-------    1 root     root     38191399424 Feb  3 10:32 Serveur2016-000001-sesparse.vmdk
-rw-------    1 root     root           288 Feb 11 16:05 Serveur2016-000001.vmdk
-rw-------    1 root     root     107374182912 Feb  6 17:11 Serveur2016-flat.vmdk
-rw-------    1 root     root           519 Feb  6 17:09 Serveur2016.vmdk
-rwxr-xr-x    1 root     root          4829 Feb  3 10:31 Serveur2016.vmx
-rw-------    1 root     root     321656664576 Feb  3 10:32 Serveur2016_1-000001-sesparse.vmdk
-rw-------    1 root     root           292 Feb 11 16:05 Serveur2016_1-000001.vmdk
-rw-------    1 root     root     322122547712 Feb  6 17:11 Serveur2016_1-flat.vmdk
-rw-------    1 root     root           521 Feb  6 17:10 Serveur2016_1.vmdk

My serveur2016.vmdk file

# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=4fdd7f2e
parentCID=ffffffff
createType="vmfs"

# Extent description
RW 209715201 VMFS "Serveur2016-flat.vmdk"

# The Disk Data Base 
#DDB

ddb.adapterType = "lsilogic"
ddb.geometry.cylinders = "13054"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.longContentID = "f7e7b5104069ff90137cafb54fdd7f2e"
ddb.toolsInstallType = "1"
ddb.toolsVersion = "10240"
ddb.uuid = "60 00 C2 90 7d 9e 1a 86-80 f4 68 a3 d3 6d e4 d6"
ddb.virtualHWVersion = "14"

My serveur2016_1.vmdk file

# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=8ee445de
parentCID=ffffffff
createType="vmfs"

# Extent description
RW 629145601 VMFS "Serveur2016_1-flat.vmdk"

# The Disk Data Base 
#DDB

ddb.adapterType = "lsilogic"
ddb.geometry.cylinders = "39162"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.longContentID = "9d4e9c252b8721796e8eb51d8ee445de"
ddb.toolsInstallType = "1"
ddb.toolsVersion = "10240"
ddb.uuid = "60 00 C2 92 1b 9c be 04-5a 68 5e 18 27 e3 ba e2"
ddb.virtualHWVersion = "14"

My serveur2016_1-000001.vmdk file

# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=f8e01e06
parentCID=8ee445de
createType="seSparse"
parentFileNameHint="Serveur2016_1.vmdk"
# Extent description
RW 629145601 SESPARSE "Serveur2016_1-000001-sesparse.vmdk"

# The Disk Data Base 
#DDB

ddb.grain = "8"

My serveur2016-000001.vmdk file

# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=8a8a082b
parentCID=4fdd7f2e
createType="seSparse"
parentFileNameHint="Serveur2016.vmdk"
# Extent description
RW 209715201 SESPARSE "Serveur2016-000001-sesparse.vmdk"

# The Disk Data Base 
#DDB

ddb.grain = "8"

Thank you for your aid.
Regards

1 Beğeni

Bonjour, tqt pas je comprends francais. Dis cest quoi les file: y a _1 dans les name. Sont-ce des sauvegardes ? je vais me pencher dessus.

Merci. La vm a 2 disques: 100go et 300go (_1)

Pouvez-vous exécuter ce code et écrire le résultat (bu kodu calistirip sonucu yazarmisin:):
ls -la Serveur2016_1-flat.vmdk

on peut faire teamwiewer? comme ca je peux voir mieux mais je vais esseyer. Je ne peux pas dire je peux t aider. Croisons les doigts avant de commencer.