Vous êtes sur la page 1sur 11

Aula 10 - Como os hackers conseguem acesso root no Linux

INTRODUO
Pode-se instalar numa mesma mquina vrios sistemas operacionais diferentes (Linux, Windows, Netware, OS/2, etc..) Para gerenciar a inicializao deles usado um boot manager que permite escolher qual o sistema que se quer inicializar. O Linux possui um boot manager chamado LILO (LInux LOader). Com o LILO, alm de ser possvel inicializar vrios sistemas operacionais diferentes, voc tambm pode inicializar verses diferentes do prrprio Linux. possvel instalar o Linux vrias vezes na mesma mquina, cada instalao em uma partio diferente, e usar uma nica configurao do LILO para iniciar todas elas. O LILO pode gerenciar mais de sessenta imagens diferentes de inicializao e pode ser instalado em um disquete, em uma partio de disco rgido ou como arquivo de inicializao mestre. O menu de boot do LILO , em geral, exibido automaticamente na inicializao do micro com uma lista dos sistemas operacionais que podem ser carregados:

No exemplo da figura acima, temos as seguintes opes de inicializao: linux memtest windows Se aps um tempo de espera, nenhuma opo for digitada, o LILO inicializar a primeira opo do menu. O tempo de espera padro de 5 segundos. Quando o Linux iniciado, o kernel carregado na memria em um formato compactado que em seguida descompactado de forma automtica atravs de um pequeno programa que est localizado no incio da imagem do kernel. O kernel ento verifica o hardware (discos rgidos, disquetes, placas de rede...) e configura os seus controladores de dispositivos. Neste meio tempo, diversas mensagens so apresentadas:

Protegendo o LILO com senha Professor JeanChristian.com

Em seguida o kernel tenta montar o sistema de arquivo raiz. O tipo de sistema de arquivos detectado automaticamente e montado com permisses somente de leitura. Aps isso, o kernel executa o programa init que cuida da ativao de diversos servios:

O init ento passar o sistema para o modo multiusurio e iniciar o getty, permitindo o uso de consoles virtuais e linhas seriais. O getty o programa que permite que os usurios acessem o sistema:

Protegendo o LILO com senha Professor JeanChristian.com

BRECHA DE SEGURANA NO LILO


No tpico anterior vimos como funciona o processo normal de inicializao do Linux. Vimos, por exemplo, que para um usurio acessar o sistema preciso passar pelo processo de autenticao que uma forma segura de controlar o acesso ao sistema. Entretanto, se o seu servidor estiver em uma rea sem segurana, possvel que um intruso reinicialize seu sistema e consiga acesso de superusurio no autorizado, atravs do LILO. Este ataque realizado digitando-se no prompt do LILO: linux single

O parmetro single, faz com que o kernel inicie o Linux no modo monousurio. Este modo ignora os scripts de configurao e disponibiliza um shell de superusurio sem solicitar autenticao:

Protegendo o LILO com senha Professor JeanChristian.com

O modo monousurio do Linux semelhante ao modo de segurana do Windows. um modo de acessar o sistema para realizar tarefas de recuperao e administrao do sistema. Entretanto, este modo uma perigosa brecha de segurana que pode dar acesso total para usurios maliciosos. Um usurio mal intencionado pode at mudar a senha do root atravs desta brecha:

O ARQUIVO /etc/lilo.conf
O arquivo /etc/lilo.conf o arquivo de configurao do LILO. Nele esto todas informaes que definem como o LILO deve se comportar na inicializao. Veja abaixo um exemplo tpico do arquivo /etc/lilo.conf:

Protegendo o LILO com senha Professor JeanChristian.com

Onde:

boot=/dev/hda
especifica o local onde o LILO est instalado. Neste exemplo, o LILO est instalado no MBR do dispositivo /dev/hda, ou seja, do primeiro disco rgido IDE.

map=/boot/map
A opo map especifica a localizao do arquivo de mapa que o LILO cria quando instalado. Este arquivo contm a localizao fsica do kernel, de tal forma que ele possa ser encontrado e carregado pelo LILO.

install=/boot/boot.b
A opo install especifica o arquivo que contm o setor de inicializao do MBR.

default=win
A opo default define a imagem de inicializao padro. Caso default seja omitido, a primeira imagem listada no arquivo de configurao ser carregada.

prompt
A opo prompt fora a apresentao do prompt do LILO. no prompt do LILO que podemos digitar o nome de uma imagem a ser inicializada ou passar parmetros para a inicializao de um kernel do Linux.

timeout=50
Esta entrada define que LILO ir aguardar 5 segundos (50 dcimos de segundos) antes de inicializar o sistema default.

message=/boot/message
A opo message especifica um arquivo que contm uma mensagem a ser apresentada antes da linha de inicializao. O tamanho do arquivo de mensagem est limitado a 65535 bytes. Voc precisa reinstalar o LILO, sempre que o arquivo de mensagem for alterado ou movimentado para outra localizao.

mem=128M
O BIOS do sistema na maioria dos PCs detecta at 64MB de RAM instalada; o Linux usa esta informao para determinar a quantidade de memria instalada. Se voc tiver mais de 64MB, poder precisar usar este parmetro para permitir que o resto da memria do sistema seja usada. No exemplo acima, 128M especifica um sistema com 128 MB de RAM instalada. Observe que se voc informar ao sistema que ele tem mais memria do que na verdade tem instalada, vrios erros podero ocorrer, inclusive perda de dados ou problemas de carga do sistema.

image=/boot/vmlinuz-2.4.5-9cl label=linux root=/dev/hda6 read-only

Protegendo o LILO com senha Professor JeanChristian.com

O grupo com 4 linhas acima, define as caractersticas de inicializao do Linux.

image=/boot/vmlinux
A opo image indica onde est localizado a imagem de inicializao do kernel do Linux.

label=linux
A opo label define um nome curto e exclusivo que o LILO espera que seja digitado para inicializar o sistema correspondente. Portanto, digitar linux no prompt do LILO, ir carregar o kernel do Linux instalado na partio /dev/hda6.

root=/dev/hda6
A opo root especifica o dispositivo (partio) que deve ser montado como raiz (/) do sistema Linux.

read-only
Especifica que o sistema de arquivos raiz deve ser montado com permisses somente de leitura.

other=/dev/hda1 label=win table=/dev/hda


O grupo com 3 linhas acima, define as caractersticas de inicializao do Windows.

other=/dev/hda1
A opo other indica a partio de um sistema operacional diferente do Linux a ser iniciado. O LILO pode inicializar quase todos os sistemas operacionais existentes. Basta especificar aqui a partio. O LILO simplesmente carrega o setor de inicializao da partio e o executa.

label=windows
A opo label define um nome curto e exclusivo que o LILO espera que seja digitado para inicializar o sistema correspondente. Portanto, digitar windows no prompt do LILO, ir carregar o sistema instalado na partio /dev/hda1.

table=/dev/hda
A opo table especifica o dispositivo que contm a tabela de partio com o cdigo que carrega o sistema operacional. Em relao segurana do LILO, existem dois comandos que so teis para proteger o seu servidor contra o ataque do LILO: password e restricted.

password=senha
A opo password define uma senha que deve ser informada na reinicializao do sistema.

restricted
A opo restricted usada em conjunto com a opo password define que a senha s deve ser requerida quando algum parmetro for passado durante a inicializao. Por exemplo, se voc tentar passar o parmetro single com a inteno de iniciar o Linux em modo monousurio, a senha ser solicitada. password=POWER restricted

Protegendo o LILO com senha Professor JeanChristian.com

Salve o arquivo reinstale o LILO para que as mudanas feitas no arquivo /etc/lilo.conf tenham efeito: lilo

Para testar a segurana do novo LILO, reinicie o Linux e tente obter acesso de superusurio com: linux single

Como voc pode observar na figura acima, a tentativa de iniciar o Linux com o parmetro single, faz com que o LILO agora, requisite uma senha para prosseguir com a inicializao do modo monousurio.

ESCONDENDO O ARQUIVO /ETC/LILO.CONF


O arquivo /etc/lilo.conf no encryptado. Para mostrar a fragilidade que isto significa, acesse o servidor com uma conta de usurio comum (willian) e execute o comando: cat /etc/lilo.conf

Protegendo o LILO com senha Professor JeanChristian.com

Concluso: qualquer usurio do sistema pode visualizar o contedo do arquivo e descobrir a senha do LILO. Corrija esta vulnerabilidade mudando as permisses do arquivo /etc/lilo.conf de tal forma que ele possa ser lido apenas pelo usurio root: chmod 600 /etc/lilo.conf

Agora, um usurio comum ser impedido de visualizar o contedo do arquivo /etc/lilo.conf: cat /etc/lilo.conf

Protegendo o LILO com senha Professor JeanChristian.com

No pense que daqui pra frente voc poder domir com a cabea tranquila. Pois, proteger o LILO com senha no suficiente para prevenir ataques de inicializao com disquete. Qualquer usurio que tenha uma mquina com Linux em casa, pode criar um disco de boot que lhe dar acesso total como superusurio em um servidor Linux de uma empresa, mesmo que o LILO do servidor esteja protegido com senha. Veja como fcil: Um usurio malicioso, tendo Linux instalado em sua casa, e sabendo que o sistema raiz do servidor da empresa que deseja atacar, est instalado na partio /dev/hda6, por exemplo, pode criar um arquivo de configurao do LILO como o descrito a seguir: map=/boot/map install=/boot/boot.b prompt timeout=50 image=/boot/vmlinuz-2.4.5-9cl label=linux root=/dev/hda6 read-only

Aps digitar o arquivo, ele resolve grav-lo com o nome: lilo.hacking e com o comando abaixo ele transfere o LILO para um disquete: lilo -C /etc/lilo.hacking -b /dev/fd0

Protegendo o LILO com senha Professor JeanChristian.com

Tendo acesso fsico ao servidor que deseja atacar, o cracker configura a BIOS deste servidor para inicializar o sistema atravs de disquete:

O resto voc j sabe! Como o disquete no tem o LILO protegido por senha, quando o prompt do LILO do disquete aparecer, digite: linux single

Protegendo o LILO com senha Professor JeanChristian.com

Para previnir-se contra este ataque, voc deve desabilitar a opo de inicializao por disquete do BIOS/SETUP do servidor e proteger o BIOS/SETUP com senha. Ainda assim, o cracker poder abrir o micro, mudar alguns jumpers e resetar a CMOS o que ir desabilitar a senha do BIOS/SETUP e permitir que o ele configure a inicializao do sistema por disquete. Mas isso pode ser resolvido instalando-se arrebites no lugar dos parafusos do gabinete. Falando srio! A nica forma realmente segura de proteger o seu servidor de um ataque local trancando-o em uma sala com acesso restrito.

Vous aimerez peut-être aussi