sexta-feira, 25 de março de 2016

VMware ESXi - Como quebrar a senha de root



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: 
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# 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# tar zcvf state.tgz

root@ubuntu :/tmp# 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"


  

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 possível existente.
Saia do diretório 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# tar czf local.tgz etc

root@ubuntu :/tmp# 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# cp state.tgz /mnt

root@ubuntu :/tmp# 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. 

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.

Nenhum comentário: