VMware ESXi 密码恢复指南
2025/9/5...大约 3 分钟
VMware ESXi 密码恢复指南
背景故事
某企业客户在日常运维中,由于人员岗位变动和交接文档不完整,意外丢失了VMware ESXi服务器的root管理员密码。导致运维团队无法正常登录和管理虚拟化平台,影响了日常的虚拟机维护和监控工作。
由于该ESXi服务器承载了多个关键业务系统,常规的密码重置方法无法适用,且客户希望尽可能保留现有的服务器配置和虚拟机状态。
因为遇到了这个事情然后对特定版本进行恢复密码,发现不同版本的VMware密码的恢复方法不一样,我对各种版本的VMware稍作研究,对方法进行记录。
Esxi的密码加密类型可以大致分为两种种,7.0.1之前的版本是配置记录法,通过明文密码进行记录,并压缩保存,7.0.1之后的版本使用了加密压缩包+数据库进行记录,安全性大幅增加;下面我对每种类型的密码加密和破解进行分章节介绍。
7.0.1之前的Esxi版本密码破解
环境准备
启动Linux Live系统(如Fedora Live),打开终端,确认ESXi配置分区(通常是/dev/sda5
)。
操作步骤
备份和解压配置文件
mount /dev/sda5 /mnt
mkdir /tmp/esxi_recovery
cp /mnt/state.tgz /tmp/esxi_recovery
cd /tmp/esxi_recovery
tar xzf state.tgz
tar xzf local.tgz
修改密码配置 编辑etc/vmware/esx.conf
文件(6.5前版本可能是esxi.conf
):
vi etc/vmware/esx.conf
找到密码相关行进行修改或删除。
6.7-7.0.1版本操作
vi etc/shadow
# 删除root那一行的加密密码,密码就会为空,不需要密码就能登陆控制台
重新打包并恢复
tar czf local.tgz etc/
tar czf state.tgz local.tgz
cp state.tgz /mnt/state.tgz
umount /mnt
重启ESXi主机 重启后即可使用修改后的密码登录。
7.0.1之后的Esxi密码破解
环境准备
- 一台ESXi服务器(可使用
crypto-util
命令) - 一个CD Linux系统(用于挂载ESXi配置盘,推荐使用Fedora Live或其他带桌面环境的发行版)
在Linux操作系统内进行拷贝解压
mount /dev/sda5 /mnt
mkdir /tmp/esxi_recovery
cp /mnt/state.tgz /tmp/esxi_recovery
cd /tmp/esxi_recovery
tar xzf state.tgz
我们可以得到加密的文件
ls
encryption.info
local.tgz.ve
将local.tgz.ve文件解密和修改
转移进Esxi系统进行操作
解密
crypto-util ++coreDumpEnabled=false,mem=20 envelope extract --aad ESXConfiguration local.tgz.ve local.tgz
tar -zxvf local.tgz
# 这里能得到var目录和etc目录
编辑和注入加密密钥
生成密钥
lunar@light MINGW64 ~
$ openssl passwd -6 P@ssw0rd456
$6$WETC82U1igW2DA5B$DdhGW5DJGvZibnsGn2V.xdKGGeMQfs5K7dXcpf9C2v9pqmgKF01ma/iH1.yfHD0Jwb8rv0mt1kmkZFlG53Ltq1
lunar@light MINGW64 ~
$ openssl passwd -6 P@ssw0rd456
$6$TQSuipF384bW8Ggf$PjUJ46McgVBwqUGcJjSFD241tpXXPvedUPwwLEHS9i64l0fREBtvxCdxmWelDwBz0Vc28bbAMZtLJEqE8Yri70
查询密钥存储
/usr/lib/vmware/sqlite/bin/sqlite3 /tmp/var/lib/vmware/configstore/backup/current-store-1
select *
from config
where Component='esx'
and ConfigGroup = 'authentication'
and Name = 'user_accounts'
and Identifier = 'root'
;
注入密钥
/usr/lib/vmware/sqlite/bin/sqlite3 /tmp/var/lib/vmware/configstore/backup/current-store-1
# 进入数据库,更新密码为P@ssw0rd456
update config set UserValue='{"name":"root","password_hash":"$6$TQSuipF384bW8Ggf$PjUJ46McgVBwqUGcJjSFD241tpXXPvedUPwwLEHS9i64l0fREBtvxCdxmWelDwBz0Vc28bbAMZtLJEqE8Yri70","description":"Administrator"}' where Component='esx' and ConfigGroup = 'authentication' and Name = 'user_accounts' and Identifier = 'root'
;
重新打包并恢复
在Esxi系统里面打包
rm -f local.tgz
tar -cvf local.tgz .ssh/ etc/ var/
将local.tgz文件拷贝回Linux操作系统
rm -rvf state.tgz
tar -cvf state.tgz encryption.info local.tgz
拷贝回服务器并重启
cp state /mnt
重启后可以使用
P@ssw0rd456
进行登录
更新日志
2025/9/5 15:42
查看所有更新日志
d5378
-于