GRUB e a senha de root - como atacar e proteger seu sistema

Neste artigo vamos aprender que através do GRUB é possível alterarmos a senha de root. Aprenderemos também como proteger o GRUB com senha para evitarmos que esse tipo de coisa venha a acontecer.

[ Hits: 50.712 ]

Por: Bruno Salmito Filizola de Faria em 06/11/2008 | Blog: http://brunosalmito.blogspot.com


Introdução



O GRUB (Grand Unified Boot Loader) é flexível, funcional e poderoso, podendo inicializar Sistemas Operacionais (9x, ME, NT, 2000 e XP), DOS, Linux etc.

Por utilizar o padrão Multiboot, ele é capaz de carregar diversas imagens de boot e módulos. O GRUB também permite buscar imagens do kernel pela rede, por cabos seriais, suporta discos rígidos IDE e SCSI, detecta toda a memória RAM disponível no sistema, tem interface voltada para linha de comandos ou menus de escolha, além de suportar sistemas sem discos ou terminais remotos.

Trechos extraídos do Guia FocaLinux.

Vamos agora colocar em prática.

Tirando a senha de root

Primeiramente vamos ver como é fácil "roubarmos" ou "excluirmos" a senha de root.

Vamos ligar o computador e, assim que o GRUB for inicializado, aparecerá uma tela parecida com a Fig. 1.0.
Linux: Tela inicial do Grub
Fig. 1.0
Pressionamos a tecla "e" para editarmos a linha, logo após selecionamos a opção do kernel (Fig. 1.1).
Linux: Editar kernel no Grub
Fig. 1.1
Após selecionar, pressione "e" novamente. Uma tela (Fig. 1.2) deverá aparecer.
Linux: Grub - editando parâmetros do kernel
Fig. 1.2
Vamos apagar a opção "ro", que significa Read Only, e vamos colocar a opção "rw", que significa Read Write, depois vamos deixar igual ao da Fig. 1.3: "rw 1 init=/bin/bash".
Linux: Grub - parâmetro rw - read-write
Fig. 1.3
Pressionamos a tecla "Enter" e uma tela como a da Fig. 1.4 deverá aparecer.
Linux: Grub - confirmar editar kernel
Fig. 1.4
Feito isso o sistema habilitará um shell com permissões de root. Note que nenhuma senha foi pedida, bastando assim agora trocar a senha e reiniciar a máquina (Fig. 1.5).
Linux: Grub capturando shell de root
Fig. 1.5
    Próxima página

Páginas do artigo
   1. Introdução
   2. Implantando senhas no GRUB
   3. Impedindo o acesso ao sistema sem senha
Outros artigos deste autor

ALSA

Instalação do Debian Linux (passo-a-passo)

Leitura recomendada

Como instalar o Trac no Ubuntu 10.10

Instalação do modem Netodragon no Conectiva 10

Tutorial de Instalação do Redmine

Pós-instalação do Arch Linux

Autenticando clientes Linux em servidor NIS FreeBSD de forma segura

  
Comentários
[1] Comentário enviado por fabio em 06/11/2008 - 15:22h

Muito bom! Se não me falhe a memória, é o primeiro artigo completo sobre este assunto publicado aqui no VOL. Geralmente textos sobre senha no boot loader vão para a seção de dicas :)

Um abraço.

[2] Comentário enviado por brunosalmito em 06/11/2008 - 15:29h

Muito Obrigado pela força amigo.

[3] Comentário enviado por thiagomlx em 06/11/2008 - 15:31h

Bem interessante a dica. Algo que as vezes passa despercebido.

Parabéns pelo artigo. Está bem explicativo.
Abs

[4] Comentário enviado por samuK em 06/11/2008 - 16:08h

Parabéns Pelo Artigo Bruno!! Muito bom mesmo!

Assunto interessante e muito bem explicado!

[]'s

[5] Comentário enviado por brunosalmito em 06/11/2008 - 16:13h

Muito obrigado a todos pela força.

[6] Comentário enviado por rafaelfreitas em 06/11/2008 - 16:37h

Foi uma excelente abordagem sobre o assunto, parabéns brother.

[7] Comentário enviado por rweu em 06/11/2008 - 21:17h

Cara, gostei muito do artigo , e inclusive tomei a liberdade de incluir o short cut dele em um post no site www.fedora.org.br, segue:

http://www.fedora.org.br/post37789.html#37789

Blz



[8] Comentário enviado por dbahiaz em 07/11/2008 - 01:20h

Dúvida!! Tentei no opensuse 11 e não consegui. Se alguém souber como fazer, o boot do opensuse 11 é o seguinte:

title openSUSE 11.0 - 2.6.25.18-0.2
root (hd0,2)
kernel /boot/vmlinuz-2.6.25.18-0.2-default root=/dev/disk/by-id/scsi-SATA_Maxtor_6Y160M0_Y43WWBEE-part3 resume=/dev/sda2 splash=silent sho$
initrd /boot/initrd-2.6.25.18-0.2-default

De qualquer forma seu artigo mostra que nenhum sistema é totalmente seguro, show de bola!

[9] Comentário enviado por brunosalmito em 07/11/2008 - 22:30h

rweu.
Valeu pela divulgação :P

[10] Comentário enviado por guilhermecunha em 08/11/2008 - 01:58h

Isto acontece também se tu rodar com single no final ...

[11] Comentário enviado por edersg em 09/11/2008 - 22:59h

Bruno Salmito Filizola de Faria:
> (...)
> Bom amigos fico por aqui, espero que tenham gostado e qualquer
> dúvida reportem, terei o maior prazer em ajudá-los.

Olá Bruno! Muito boa noite!

Como você está? Espero que esteja a cada dia melhor!

Meus parabéns pelo excelente artigo. Graças a ele, eu acabei de
acrescentar uma senha no grub do meu Debian. Segurança nunca é
demais, pelo contrário, quanto mais segurança em nossos sistemas,
melhor.

Obrigado Bruno!

Tenha uma
E X C E L E N T E
semana!

FÉ, SAÚDE e PAZ!


[12] Comentário enviado por fabioarnoni em 10/11/2008 - 05:12h

Muito bom , parabéns !!! Agora meu Debian está protegido heheheh abraços!

[13] Comentário enviado por jovera em 11/11/2008 - 08:53h

Botar senha no Grub não é suficiente...
pois um qualquer usuário cadastrado no sistema poderá ter acesso a ela..
basta dar um cat /boot/grub/menu.lst ir na seção password e o usuário irá visualizar a senha...
é necessário dar um chmod como root mudando as permissões.
chmod 770 é uma sugestão.


[14] Comentário enviado por brunosalmito em 11/11/2008 - 09:34h

Sim amigo jovera isso é verdade, só que no tuto também estou colocando como usar essa senha usando a criptografia, ou seja caso o usuário Venha a dar um cat no menu.lst ele vai ver a senha criptografada, mas a sua idéia também é uma segurança a mais, muito obrigado pela a sua observação.

Muito obrigado pela força jovera, vo incluir a sua dica no meu tuto.

Muito obrigado de coração.

[15] Comentário enviado por zene1308 em 11/11/2008 - 14:12h

excelente artigo!
valeu pela dica...
parabéns

[16] Comentário enviado por removido em 12/11/2008 - 15:53h

Parabéns pelo artigo.
No meu ububtu 8.10 ficou assim para funcionar a senha criptografada no grub:
password --md5 `senha criada pelo usuário`
Peguei essa dica no próprio comentário do arquivo
No seu artigo não cita o --md5. De qualquer forma muito bom, simples e prático.
Marcio

[17] Comentário enviado por removido em 22/01/2009 - 02:01h

Bruno,

Muito lega a dica... mais se o usuário fizer o que está na dica do riav aqui do VOL.

http://www.vivaolinux.com.br/dica/Recuperando-a-senha-do-root-com-o-Kurumin/

Ache que podemos dificultar mais nao tem como controlar isso

Abs.

[18] Comentário enviado por ramontcruz em 23/03/2009 - 11:49h

Muito bom!!!
Tinha ouvido falar disso mas não tinha entendido como fazer. As figuras mataram todas as minhas dúvidas!!!
Valeu!!!

[19] Comentário enviado por aleksandre em 12/01/2010 - 08:57h

E quanto ao grub 2, tem como colocar senha nele?
Considero um erro grave aquela opção recovery mode do Ubuntu 9.10 que dá acesso de root a qualquer um.
Ateh!

[20] Comentário enviado por pauloedson em 23/07/2012 - 22:41h

por falar em grub II

o "menu.lst" nao se encontra nesse caminho: /boot/grub

alias, creio que esse arquivo "menu.lst" nao mais existe com esse nome!

salvo engano, o novo caminho é: "/etc/default" e "/etc/grub.d"

alguem discorda?!

[21] Comentário enviado por gabi74 em 03/11/2012 - 08:52h

No Grub II coloca-se senha no ficheiro 00_header que se encontra no /etc/grub.d!

No fim do ficheiro escreve-se (dando como exemplo o utilizador: gabi e a senha: novembro)

Se quiser encriptar a senha:

cat << EOF
set superusers="gabi"
password_pbkdf gabi grub.pbkdf2.sha512.10000.F7511F9973C87195FF9055DA141CD77E6FE821B4C4237CC6C07AE8EB6EC2B462F680
CF66341BF3FECDFFCCFA36D75E21EA3E4881A6706582E669E913903BA7BB.4DE46C6DFE1A5199921E6759275AD77
8DCA5A048D59E684A6E6A07501418060474537B52FFAE70BE9ADB384470DC1112E6456B9D82D62674CD644AAFB47854E8
EOF

Nota: O nome de utilizador é mesmo entre aspas ("") na primeira linha!

No fim basta salvar as alterações e dar um update-grub no Terminal

Ao reiniciar já terá a senha se tentar editar!

(Exemplo sem encriptar):

cat << EOF
set superusers="gabi"
password gabi novembro
EOF


A senha encriptada pode ser obtida escrevendo o comando: grub-mkpasswd-pbkdf2
Lembro que convem executar isto como root para que tudo funcione bem!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts