Daha önceki makalemizde Veeam üzerinden Root password’ı kurtarmıştık.
https://sercancelenk.com/vmware-esxi-root-sifresi-nasil-kurtarilir/
Şimdi bootbank üzerinden nasıl ESXi root password’unun kurtarılacağına bakacağız.
1) Sunucunuzu 7.0 U2 veya daha yüksek bir ESXi ISO sürümü ile başlatın. Tercihen, sunucuda kurulu olan sürümle aynı ISO’yu kullanmanız önerilir.
2) DCUI üzerinden Shell’e erişim
ESXi kurulum medyasından önyükleme yaptıktan ve Installer ekranı geldikten sonra:
Alt + F1 tuşlarına basarak DCUI üzerinden shell ekranına geçin.
root kullanıcısı ile giriş yapın (varsayılan durumda parola olmayabilir).
Eğer DCUI üzerinden çalışmak sizin için zor ise (örneğin kopyala/yapıştır yapamıyorsanız), SSH servisini başlatıp uzaktan bağlanabilirsiniz.
3) IP adresi kontrolü ve yapılandırma
Öncelikle ESXi host üzerinde IP adresi tanımlı olduğundan emin olun.
Varsayılan olarak:
IPv4 için DHCP aktifse otomatik IP alır.
IPv6 için SLAAC/EUI-64 ile otomatik adres oluşturur.
Mevcut IP yapılandırmasını kontrol etmek için:
localcli network ip interface ipv4 address list
localcli network ip interface ipv6 address list
Statik IP atamak isterseniz (örnek vmk0 arayüzü):
localcli network ip interface ipv4 set --interface-name vmk0 --ipv4 YOUR_IPv4_Address --netmask YOUR_NETMASK --type static
localcli network ip interface ipv6 address add --interface-name vmk0 --ipv6 YOUR_IPv6_ADDRESS/PREFIX
Root parolasını belirleme
SSH’yi aktif etmeden önce root kullanıcısı için güçlü bir parola belirleyin:
passwd root
Parola belirlemeden SSH açmak özellikle public IP kullanılan ortamlarda ciddi güvenlik riskidir.
SSH servisini başlatma
/etc/init.d/SSH start
Bu işlem SSH servisini 22/TCP portunda başlatır.
4) Boot bölümlerini görüntüleme
ESXi kurulum medyası disk bölümlerini otomatik olarak mount eder. İlgili dizin:
/vmfs/volumes/
BOOTBANK1 ve BOOTBANK2 bölümleri burada bulunur.
Güncelleme yapılmamış sistemlerde BOOTBANK2 genellikle boştur.
Aktif boot bölümünü doğrulamak için:
localcli storage filesystem list
6) state.tgz dosyasını çıkarma
ESXi yapılandırması (kullanıcı parolaları dahil) state.tgz dosyasında saklanır.
Çalışma dizini oluşturup dosyayı kopyalayalım:
mkdir /tmp/digiboy
cd /tmp/digiboy
cp /vmfs/volumes/BOOTBANK1/state.tgz .
tar x -z -f state.tgz
Not: Bootbank FAT dosya sistemi olduğu için doğrudan orada extract ederseniz dosya izinleri kaybolur. Bu yüzden /tmp altında çalışıyoruz.
Şifreleme bilgisi kontrolü
crypto-util envelope describe local.tgz.ve
Kullanılan KeyID’yi öğrenmek için:
crypto-util keys getkidbyname ConfigEncryptionKey
Anahtarı cache’e eklemek için:
localcli --plugin-dir=/usr/lib/vmware/esxcli/int system settings encryption stop
localcli --plugin-dir=/usr/lib/vmware/esxcli/int system settings encryption setup -c encryption.info
localcli --plugin-dir=/usr/lib/vmware/esxcli/int system settings encryption start
7) local.tgz.ve dosyasının şifresini çözme
crypto-util envelope extract --aad ESXConfiguration local.tgz.ve local.tgz
8) Arşivi açma
mkdir local
tar x -z -f local.tgz -C local
cd local
9) SQLite veritabanından root hash görüntüleme
Parola artık etc/shadow içinde değil, SQLite veritabanındadır:
/usr/lib/vmware/sqlite/bin/sqlite3 var/lib/vmware/configstore/backup/current-store-1 "SELECT * FROM Config WHERE Component='esx' AND ConfigGroup='authentication' AND Name='user_accounts' AND Identifier='root'"
10) Yeni hash içeren SQL dosyası oluşturma
vi /tmp/digiboy/reset-password.sql
İçerik:
UPDATE Config SET UserValue='{"name":"root","password_hash":"$6$OvKeHTuaUlOIkE/k$p2fCVL5q5kniGsWYo1xU4Tzct0ZJ7hFQeJH2z9c5F/srN2hQkBKf/lTepTZHwJqRim48vNJ9Meky3E5S0amnL0","description":"Administrator"}' WHERE Component='esx' AND ConfigGroup='authentication' AND Name='user_accounts' AND Identifier='root'
Bu hash değeri “Sercan2026!!” parolasına aittir.
11) SQL sorgusunu çalıştırma
/usr/lib/vmware/sqlite/bin/sqlite3 var/lib/vmware/configstore/backup/current-store-1 </tmp/digiboy/reset-password.sql
12) local.tgz dosyasını yeniden oluşturma
tar c -z -f /tmp/digiboy/local-new.tgz "tar t -z -f /tmp/digiboy/local.tgz"
13) Dosyayı tekrar şifreleme
cd /tmp/digiboy/
key_id="crypto-util keys getkidbyname ConfigEncryptionKey"
mv local.tgz.ve local-old.tgz.ve
crypto-util envelope insert --aad ESXConfiguration --id ${key_id} local-new.tgz local.tgz.ve
14) Yeni state.tgz oluşturma
mv state.tgz state-old.tgz
tar c -z -f state.tgz local.tgz.ve encryption.info
15) Bootbank’e geri kopyalama
cd /vmfs/volumes/BOOTBANK1
mv state.tgz state.tgz.bak
mv /tmp/digiboy/state.tgz .
Mevcut state.tgz dosyasının yedeğini almanız önerilir.
İşlem tamamlandıktan sonra sistemi yeniden başlatabilirsiniz. Root parolası artık Sercan2026!! olacaktır.
