Somos seres humanos. Básico. E como seres humanos que somos, estamos suscetíveis a falhas nossas e de outros iguais. Uma falha muito comum é a de esquecer senhas! Quem nunca passou por esse problema uma vez na vida? Ainda mais para os que trabalham justamente manipulando centenas delas. Ou mesmo que não as esqueça... mas e se alguém propositalmente mudou a senha de seu usuário? Como resolver isso?
A seguir veremos como proceder de forma bem simples para quebrar a senha de qualquer usuário do sistema, inclusive o root! E também mostrarei uma maneira simples de se proteger disso.
Esse artigo volta-se para o gerenciador de inicialização GRUB, mas também é válido para o LILO. O sistema operacional é independente, salvo em casos de configurações de segurança que tenham sido aplicadas.
Mãos à obra!
A solução
Assumindo que você já possui algum conhecimento sobre gerenciamento de senhas de usuários e permissões, vamos em frente.
Em primeiro lugar, reinicie a sua máquina. Após a reinicialização, à partir da tela do Grub, edite a linha referente ao boot do kernel. No Grub basta selecionar a linha do
Linux e pressionar a tecla "E". Em seguida, pressione "E" novamente na linha do kernel, normalmente a segunda, para editá-la.
Nessa tela, você verá alguns comandos e configurações que são passados ao kernel pelo Grub no momento do boot do sistema. Você terá de digitar agora um parâmetro adicional ao kernel desviando o INIT.
A última linha da tela será algo como a linha de exemplo abaixo:
kernel = (hd0,0)/boot/vmlinuz-2.6.35-28255U10_1cl root=/dev/hda1
Na frente dessa última linha, dê um espaço e insira o seguinte parâmetro:
init=/bin/bash
A linha ficará assim:
kernel = (hd0,1)/boot//vmlinuz-2.6.35-28255U10_1cl root=/dev/hda1 init=/bin/bash
Feito isso, pressione ENTER para alterar e em seguida pressione "B" para disparar o kernel. Se for o Grub2, pressione "Ctrl+X" apenas.
O kernel irá subir, mas o INIT será desviado abrindo um BASH para você com os poderes de root. O INIT não foi disparado, portanto nada deve funcionar, inclusive os aplicativos indicados no seu PATH. Isso fará com que seu sistema seja montado como somente leitura, impedindo-o de efetuar qualquer alteração.
Para que possa alterar alguma coisa, você deverá montar o sistema com permissão de leitura e escrita, mas não há como desmontar. Então faça isto da seguinte forma:
# mount -o remount,rw /
Dessa maneira, você receberá permissão para efetuar alterações. Tudo que você deve fazer agora é editar o arquivo aonde ficam as senhas criptografas dos usuários, o /etc/shadow. Utilize um editor de texto para isso, como o vim por exemplo. Faça assim:
# vim /etc/shadow
Localize a linha referente à senha do root; ou do usuário desejado. No meu exemplo irei utilizar o root. A linha referente a ele é a seguinte:
root:$6$524.VMbK$eHvusRkziT9gPWR/TEqwyM.KEB67MCvcaYJazPs.:15094:0:99999:7:::
Esses diversos números e letras misturados indicam a senha do usuário root que está criptografada. Para facilitar, vou reescrevê-la assim:
root:SENHACRIPTOGRAFADA:15094:0:99999:7:::
Melhorou né?! =)
Os dados estão separados por colunas usando o : (dois pontos) como delimitador. No caso o conteúdo SENHACRIPTOGRAFA representa a senha de root criptografada. Tudo o que precisa fazer agora é deletar esse conteúdo, mas não remova o : (dois pontos) antes nem o depois da senha! Isso pode comprometer seu sistema!
A linha ficará assim:
root::15094:0:99999:7:::
Salve as configurações e feche o arquivo.
Prontinho! Feito isso, você zerou a senha do root. Basta reiniciar a máquina normalmente que a senha do root estará vazia. Lembre-se que o INIT não foi acionado, portanto qualquer comando para reiniciar a máquina que você tentar utilizar falhará. Portanto, nesse caso você usará o bom e velho DEDO NO RESET para reiniciar manualmente mesmo! Não se preocupe porque se você salvou as configurações elas não serão perdidas.
Após reinicializar normalmente, logue como root e apenas pressione ENTER no momento da senha sem digitar nada que o login será efetuado com sucesso. O processo é o mesmo para seu usuário, você escolhe. Faça como root porque pelo menos assim você já altera a senha do root ao mesmo tempo que já tem privilégios para depois alterar a senha do seu usuário.
Está feito.
Não é nada de outro mundo, mas ajuda demais quando se esquece ou mudam sua senha de propósito.
Mas aí surge a pergunta: "O que impede outra pessoa de fazer o mesmo e quebrar minha senha?" A resposta é: NADA... a não ser que você faça o que direi a seguir no próximo tópico!