VMware ESXi - Como quebrar a senha de root
Autor: Julio Cesar Mauro | Publicado: 2016-03-25T16:49:00-03:00









Salve salve nerdaiada maldita :D :D :D



Sabe quando você chega na nova empresa e começa a levantar tudo o que existe de infraestrutura?



Sabe quando você espera que a pessoa que você substitui seja uma pessoa idônea e profissional?



Então... Tive um pequeno problema com o segundo item e tive que me virar nos 30 para conseguir o controle de 6 servidores ESXi que não estavam no VCenter. Pois bem, pesquisa daqui, pesquisa de lá, achei um documento que falava que para quebrar a senha do ESXi, você precisaria ou reinstalar o SO, mantendo a partição das VMs ou então alterar o shadow dentro do /etc do SO.



Como reinstalar tudo traria um risco enorme de perder configurações, servidores que não tinha conhecimento que existia e etc, resolvi que alterar a senha direto no shadow do sistema seria a opção mais viável e menos perigosa... em termos.



Pesquisei mais ainda sobre como é o funcionamento do SO da VMware que tanto amamos e descobri que todos os arquivos cruciais para o sistema - /etc, /bin, /usr ficam COMPACTADOS dentro de partições específicas do VMware e teria que descompactar o arquivo e compactar novamente para funcionar a alteração, MAS com devido cuidado de não alterar nada de permissão ou algo do gênero para não destroir o servidor.



Abaixo segue as instruções de como quebrar a senha do VMware ESXi 4.x e 5.x. Não testei no 6, mas deve ser no mesmo procedimento.



Primeiro passo:&nbsp;

Ter um Live CD de algum linux, eu utilizei do Ubuntu. Dê boot no servidor e inicie o live CD. Ao finalizar a carga, abra o gparted, por um terminal ou direto pelo menu do ubuntu.






Segundo passo:
Em todos os ESXi que precisei fazer esse procedimento, precisei montar o /dev/sda5. Partição aonde está o shadow, que precisamos alterar. Monte a partição no /mnt ou em qualquer outra pasta de sua escolha com o mount.

root@ubuntu :/tmp#&nbsp;mount /dev/sda5 /mnt






Terceiro Passo
Após montar a partição, verifique os arquivos existentes. Você vai precisar de um arquivo chamado state.tgz. Ao localizar ele, copie para o /tmp ou qualquer outro diretório de sua preferência.




Descompacte o state.tgz dentro do /tmp. Ira aparecer um arquivo chamado local.tgz, descompacte esse arquivo também.

root@ubuntu :/tmp#&nbsp;tar zcvf state.tgz

root@ubuntu :/tmp#&nbsp;tar zcvf local.tgz

Quarto passo
Após descompactar, irá aparecer a pasta etc dentro do /tmp. Entre nessa pasta e edite o arquivo "shadow"




&nbsp;&nbsp;

Apague o hash da senha da linha do root. É o conteúdo entre o primeiro e o segundo ":"

Antes:
root:$6$FT.js0st$VLJ6c7ckDgwf1LncCHEQwdznOo.4Sxz/yqfMtTfDSi3JV.UeLwynQyicNYNr32wHRd6wkAym9SAZGSgqcAlmQ/:16885:0:99999:7:::

Depois:
root::16885:0:99999:7:::

Salve o arquivo.



Quinto passo

Agora que vem o mais "complicado". Precisamos reempacotar o shadow para dentro do arquivo original tgz. Eu testei algumas formas de compactação e consegui ter exito em apenas um modo... o mais simples&nbsp;possível&nbsp;existente.

Saia do&nbsp;diretório&nbsp;etc que você está e primeiro recompacte o "etc" para o arquivo local.tgz e logo em seguida compacte o local.tgz em state.tgz.

root@ubuntu :/tmp#&nbsp;tar czf local.tgz etc

root@ubuntu :/tmp#&nbsp;tar czf state.tgz local.tgz

Feito isso, copie o arquivo state.tgz para dentro do /mnt (/dev/sda5) e reinicie o servidor.

root@ubuntu :/tmp#&nbsp;cp state.tgz /mnt

root@ubuntu :/tmp#&nbsp;init 6



Na tela de login do esxi, digite o usuario "root" e deixa a senha em branco. Bingo, acesso ao console do esxi feito. Agora altere a senha de root, recadastre no vcenter (se for o caso) e suba as maquinas virtuais normalmente, pois com esse procedimento ele não inicia as VMs do servidor automaticamente, mesmo que estejam para subir automaticamente.&nbsp;


E fica a dica: Nunca centralizar as senhas dos seus servidores em apenas uma pessoa. Compartilhe a senha com seu superior, alguem de sua equipe ou o melhor de tudo, em um centralizador de logins, como Active Directory ou OpenLdap.