VMware ESXi – Dica avançada: reset da senha de root (perdida)

Continuando com dicas para o VMware ESXi, trago aqui uma dica que tenho anotada naquele bloquinho de notas tradicional e que, infelizmente, já precisei usar algumas vezes nesta vida de administrador de sistemas e servidores: resetar a senha perdida ou esquecida de um servidor VMware ESXi.

Como resetar / redefinir a senha do root (perdida ou esquecida)

Como já comentei em posts anteriores, com dicas de como alterar a senha (perdida ou esquecida) de sistemas Linux, Windows e macOS, esquecer a senha de um servidor é uma situação que deve ser evitada a todo custo, afinal, isto pode gerar problemas sérios. Mas, infelizmente, é uma situação que pode acontecer, especialmente em ambientes de testes e estudos onde geralmente as políticas de segurança são colocadas em segundo plano.

Abaixo está um passo a passo detalhado para resetar a senha do usuário root do VMware ESXi. Se você for um usuário avançado de sistemas Linux, vá para o final do post e confira um resumo dos comandos para efetuar este reset.

Ao final do processo, será possível acessar o sistema sem nenhuma senha.

Primeiro passo: preparação do ambiente

Faça o download de um “Linux Live“, como o Linux Ubuntu (baixe a versão desktop, não a server). Depois disso, use algum software (como o Rufus, para Windows ou o Startup Disk Creator, do Ubuntu) para converter o arquivo baixado (iso) para um pendrive bootável (ou, se for um caso mais crítico, gravar o arquivo iso em um CD/DVD). Feito isso, desligue o servidor do VMware ESXi, insira o pendrive (ou o CD) neste servidor e, então, nas opções de boot, selecione este drive para o boot.

Usando o Linux Ubuntu, vá à opção “Try Ubuntu withou installing“. Assim, o Linux Ubuntu será carregado na memória RAM e, em alguns instantes, o sistema exibirá um bem-vindo. Nesta janela, use novamente a opção “Try Ubuntu“. Após, a interface padrão do Linux Ubuntu estará carregada e disponível para uso.

Linux Ubuntu - Boot Options (GRUB)
Linux Ubuntu – Boot Options (GRUB): Experimente o Ubuntu sem instalar
Linux Ubuntu - Tela de Welcome
Linux Ubuntu – Tela de Bem-vindo: Experimente o Ubuntu sem instalar e sem fazer nenhuma alteração em seu computador / servidor

Ambiente pronto: comandos para reset da senha

Como descrito acima, a primeira coisa a se fazer é usar um “Linux Live” (neste caso, o Linux Ubuntu) para inicializar o servidor onde está o VMware ESXi. Com o Linux carregado, abra o terminal (atalho padrão: Ctrl + Alt + t). Agora, com este ambiente pronto, vamos aos comandos necessários para apagar a senha do usuário root do VMware ESXi:

  1. No terminal do Linux, para alterar do usuário padrão (ubuntu) para o usuário root use o comando: $ sudo -s ou $ sudo bash
  2. Agora, como root, vamos compreender os volumes (discos e partições) disponíveis e em uso no seu servidor. Podemos usar o fdisk ou o gparted. Recomendo usar o gparted, para isso, digite o comando: # gparted
  3. Na janela do gparted, identifique em qual disco está instalado o seu VMware. No meu caso (servidor homelab simples com um disco NVME), está em /dev/nvme0n1 (partição: /dev/nvme0n1p1), mas, dependendo do seu servidor (hardware), ele pode estar em /dev/sda1, /dev/sda5, /dev/sdb1, etc.
  4. Identificado o disco correto, localize a partição que armazena o sistema VMware ESXi que, em geral, é a segunda partição (a primeira é identificada com a label ESXi), localizada nos primeiros 250 MB. Esta partição contém o state.tgz, que é onde encontraremos o arquivo shadow, que armazena os password hashes dos usuários do sistema. Na figura abaixo está um exemplo de como identificar este disco e partição (note a partição com a label ESXi e, logo em seguida, a partição citada):
  5. Identificada a partição correta, vamos montá-la em nosso sistema temporário. Use o comando: mount /dev/nvme0n1p5 /mnt
    *Lembrando que o /dev/nvme0n1p5 deve ser substituído pelo disco/partição correspondente do seu servidor.
  6. Acesse o diretório mnt usando o comando: cd /mnt
  7. Localize o arquivo state.tgz com o comando: ls state*

    Linux Ubuntu - Terminal: sistema montado e arquivo state.tgz localizado
    Linux Ubuntu – Terminal: sistema montado e arquivo state.tgz localizado
  8. Copie este arquivo para o diretório temp padrão: cp state.tgz /tmp
  9. Acesse o diretório temp usando o comando: cd /tmp
  10. Descompacte o arquivo state.tgz com o comando: tar -xzvf state.tgz
  11. Se você listar os arquivos descompactados (# ls), observará o arquivo local.tgz. Descompacte o arquivo local.tgz usando o comando: tar -xzvf local.tgz
  12. Se você listar os arquivos descompactados (# ls), observará um diretório chamado etc. Acesse o diretório etc usando o comando: cd etc (não use cd /etc);
  13. Agora, finalmente, chegamos onde precisamos. Use o comando ls sha* para confirmar que encontramos o arquivo shadow
  14. Edite o arquivo shadow usando o comando: nano shadow
  15. No arquivo aberto, você precisará deletar o password hash do usuário root, que fica nas primeiras duas colunas (entre os “: :”). Veja as imagens abaixo:
    Linux Ubuntu - Arquivo shadow
    Linux Ubuntu – Arquivo shadow: delete a hash, conforme ilustrado na imagem

    Linux Ubuntu - Arquivo shadow sem a hash do user root
    Linux Ubuntu – Arquivo shadow já sem a hash do user root (deve ficar semelhante a imagem)
  16. Tecle “Ctrl X” para sair e “y” para salvar o arquivo shadow;
  17. Agora, volte ao diretório anterior usando o comando: cd ..
  18. Reconstrua os arquivos compactados, adicionando o arquivo shadow modificado, para isso, use os comandos: tar -czf local.tgz etctar -czf state.tgz local.tgz
  19. Copie o arquivo state modificado para a partição original do VMware, que foi montado em /mnt, usando o comando: cp state.tgz /mnt/
  20. E, por fim, desmonte a unidade montada, com o comando: umount /mnt
  21. Agora, finalmente, reinicie o seu servidor usando o comando: reboot ou shutdown -h now. Remova o drive do Linux Ubuntu e inicie o VMware normalmente.

Pronto! Agora é aguardar o carregamento do VMware ESXi e então fazer login usando o user root, sem senha.

VMware ESXi - Senha do root não configurada (vazia)
VMware ESXi – Senha do root não configurada (Not set)

Importante: não esqueça de cadastrar uma nova senha posteriormente e anotá-la em algum gerenciador de credenciais, como o Passbolt, descrito em detalhes neste post 😉

Dica: para adicionar um usuário adicional e, quem sabe, evitar toda essa dor de cabeça, veja este post.

Resumo dos comandos para usuários avançados de sistemas Linux

Se você for um usuário mais avançado de sistemas Linux, após o boot do seu Linux Live, abra o terminal e entre com a lista de comandos abaixo:

sudo su
gparted
mount /dev/sda5 /mnt
(o “/dev/sda5” varia de acordo com o seu hardware)
cd /mnt
cp state.tgz /tmp
cd /tmp
tar -xzvf state.tgz
tar -xzvf local.tgz
cd etc
nano shadow
(delete o password hash do user root e então salve o arquivo)
cd ..
tar -czf local.tgz etc
tar -czf state.tgz local.tgz
cp state.tgz /mnt
umount /mnt
reboot

*Com informações de: Ubuntu – Create a usb stick on Ubuntu, Altaro – How to reset ESXi root password, Ubackup – Reset VMware root password.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.