terça-feira, 19 de abril de 2011

Teste de vulnerabilidades com OpenVAS 3.0

Autor: Mauro Risonho de Paula Assumpção A.K.A firebits
Data: 18/03/2010

Teste de vulnerabilidades com OpenVAS 3.0

A nova versão do ótimo scanner de vulnerabilidades, OpenVAS 3.0, já está disponível. Ainda não há ports para árvores de várias distros como Debian, Ubuntu e outras, mas há o código-fonte, do qual qualquer distro pode aceitar a compilação. No processo de Pentesting, uma das etapas é "teste de vulnerabilidades", para na sequência "teste de ataques", por exemplo com o Metaspolit Framework.

Esta é mais um artigo sobre OpenVAS. Como todo mundo sabe, há o projeto Backtrack Brasil, onde você também pode achar este artigo com mais detalhes ainda. Vou me concentrar no Ubuntu 9.10, pois está aqui no nosso Pentesting LAB em uma máquina virtual, para testarmos, mas a técnica é similar nas outras distros. Não testamos em outras distros ainda e até convido os membros do Viva o Linux e Backtrack Brasil a fazerem isso. Aqueles que gostariam de aproveitar OpenVAS 3 podem esperar as seguintes novas funcionalidades:

* A nova arquitetura interna dos módulos
* NVT Meta informação que está livre de limites de tamanho arbitrário
* Suporte a IPv6
* suporte a clientes WMI
* Suporta próximas extensões opcionais:
* OpenVAS Manager para armazenar e organizar exames em um servidor central em um Banco de dados SQL
* OpenVAS Administrador de Usuário, Feed-e Configurações de Gestão
* Greenbone Segurança Assistent para uma versão web-based Vulnerability Management


Você pode ler mais sobre ele no site oficial OpenVAS, que é www.openvas.org. Agora, vamos para as coisas boas.

As instruções a seguir são para fazer o OpenVAS 3 funcionar no Ubuntu 9.10.

Pré-requisitos
Primeiro precisamos instalar todos os pacotes dependentes:

$ sudo apt-get install build-essencial libgnutls libpcap0.8-dev-dev bison libglib2.0-dev libgpgme11 libssl-dev-dev cmake

Depois de ter instalado os pacotes, precisamos fazer o download dos arquivos necessários para OpenVAS. Os links abaixo podem ser ultrapassados devido a constante atualização, logo certifique-se de obter a versão mais recente.

$ cd /tmp
$ wget http://wald.intevation.org/frs/download.php/706/openvas-libraries-3.0.3.tar.gz
$ wget http://wald.intevation.org/frs/download.php/696/openvas-scanner-3.0.1.tar.gz

Agora que baixamos os arquivos necessários, devemos compilar e instalar os pacotes na seguinte ordem:

1. openvas-libraries
2. openvas-scanner

Instalar OpenVAS Libraries (bibliotecas do OpenVAS)
Comece por descompactar openvas-libraries e depois compile/instale:

$ tar -xvf openvas-libraries-3.0.3.tar.gz
$ cd openvas-libraries-3.0.3/
$ sudo ./configure
$ sudo make
$ sudo make install

Se tudo correr bem aqui, então você deve receber uma mensagem dizendo que o openvas-libraries foi instalado. Se por algum motivo você receber uma mensagem dizendo que gpgme não foi instalado, tente o seguinte:

$ sudo apt-get install libgpgme11-dev

Instalar OpenVAS Scanner
Em seguida descompacte o openvas-scanner e depois compile/instale:

$ cd ..
$ tar -xvf openvas-scanner-3.0.1.tar.gz
$ cd openvas-scanner-3.0.1/
$ sudo ./configure
$ sudo make
$ sudo make install

As bibliotecas do OpenVAS e o scanner devem agora ser instaladas.

Temos que nos certificar de que o /usr/local/bin e /usr/local/sbin estão em nosso PATH. Podemos fazer isso digitando:

$ echo ${PATH}

Na saída do comando acima você deve ver /usr/local/bin e /usr/local/sbin em algum lugar. Senão você terá que adicionar as entradas para a variável PATH do ambiente manualmente, veja neste link:

* https://help.ubuntu.com/community/EnvironmentVariables#Persistent%20environment%20variables


Se a sua variável PATH do ambiente está correta e funcionando, então você pode construir os links para as novas bibliotecas:

$ sudo ldconfig

Gerar um Certificado
Agora estamos prontos para gerar um certificado para o nosso OpenVAS Server e certifique-se de adicionar valores relevantes para a sua localização.

$ sudo openvas-mkcert

Siga as instruções na tela e insira as informações apropriadas quando solicitado.

Criar um usuário
Agora precisamos adicionar um usuário:

$ sudo openvas-adduser

Digite um nome de usuário e escolha o seu método de autenticação (escolha "pass" para autenticar com uma senha). Aperte Ctrl-D quando lhe for pedido sobre as regras se você não quer que as restrições de scanning.

Agora tudo o que precisamos é da instalação do OpenVAS scanner. O próximo passo é sincronizar o servidor com a atualizações de plugins de vulnerabilidade do NVT. O NVT (Network Vulnerability Test) feed é uma lista de arquivos que contém plugins de vulnerabilidades, que serão transferidos para o servidor do OpenVAS. Eu recomendaria que você executar o comando openvas-nvt-sync em intervalos regulares para garantir que seus arquivos estão atualizados pelo NVT ou adicionar no cron, para ser atualizado automaticamente.

$ sudo openvas-nvt-sync

NOTA: A primeira vez que você executar este comando pode demorar um pouco para baixar todas as NVT's. Então tome um café e coma um sanduíche, beba um pouco de água, alguma cerveja e alguns pacote de amendoins ... ou seja, o que for de comer/beber, porque vai demorar!

Uma vez feito, você pode iniciar o daemon servidor OpenVAS:

$ sudo openvassd

Poderá demorar alguns minutos para carregar todos os plugins. Uma ótima oportunidade para fazer algum exercício e queimar a cerveja e pacote de amendoim que você bebeu e comeu antes do download dos plugins.

Se tudo correr conforme o planejado, agora você tem uma versão do servidor OpenVAS, que durante este artigo, está na versão 3. O próximo passo no processo é a configuração de um cliente para se conectar ao servidor OpenVAS. Você pode optar por fazer isso em um computador diferente, mas você pode facilmente instalá-lo no mesmo computador.


Instalar o cliente do OpenVAS (OpenVAS Client)

Primeiro precisamos instalar os pacotes dependentes para o cliente:

$ sudo apt-get install libgtk2.0-dev htmldoc

Agora podemos proceder para instalar o cliente:

$ cd /tmp
$ wget http://wald.intevation.org/frs/download.php/685/openvas-client-3.0.0.tar.gz
$ tar -xvf openvas-client-3.0.0.tar.gz
$ cd openvas-client-3.0.0/
$ sudo ./configure
$ sudo make
$ sudo make install

Se o que você fez acima deu certo, ótimo! No entanto, se você está rodando um sistema operacional de 64 bits como eu, você pode obter um erro quando você executar "sudo make". O erro que eu recebi foi:

/usr/bin/ld: cannot find -lcrypto
collect2: ld returned 1 exit status
make[1]: *** [OpenVAS-Client] Error 1
make[1]: Leaving directory `/tmp/openvas-client-3.0.0/openvas'
make: *** [client] Error 2

Eu executei o seguinte comando para ver qual era o problema:

$ ldconfig -p | grep crypto
libcrypto.so.0.9.8 (libc6,x86-64) => /lib/libcrypto.so.0.9.8
libcrypto.so.0.9.8 (libc6,x86-64) => /usr/lib/libcrypto.so.0.9.8
libcrypto.so.0.9.8 (libc6, hwcap: 0x0008000000008000) => /lib32/i686/cmov/libcrypto.so.0.9.8
libcrypto.so.0.9.8 (libc6, hwcap: 0x0004000000000000) => /lib32/i586/libcrypto.so.0.9.8
libcrypto.so.0.9.8 (libc6, hwcap: 0x0002000000000000) => /lib32/i486/libcrypto.so.0.9.8
libcrypto.so.0.9.8 (libc6, x86-64) => / lib/libcrypto.so.0.9.8
libcrypto.so.0.9.8 (libc6, x86-64) => / usr/lib/libcrypto.so.0.9.8
libcrypto.so.0.9.8 (libc6 hwcap,: 0x0008000000008000) => / lib32/i686/cmov/libcrypto.so.0.9.8
libcrypto.so.0.9.8 (libc6 hwcap,: 0x0004000000000000) => / lib32/i586/libcrypto.so.0.9.8
libcrypto.so.0.9.8 (libc6 hwcap,: 0x0002000000000000) => / lib32/i486/libcrypto.so.0.9.8

Criando um link em /usr/lib/ resolveu o problema:

$ sudo ln -s /usr/lib/libcrypto.so.0.9.8 /usr/lib/libcrypto.so

Se você tiver que fazer a ligação simbólica, tenha certeza que fez o comando depois de completar a instalação:

$ sudo ldconfig
$ sudo make clean
$ sudo ./configure
$ sudo make
$ sudo make install

Senão faz antes!

Você provavelmente terá uma mensagem dizendo que o cliente foi instalado com sucesso. Você pode executar o cliente com:

$ sudo OpenVAS-Client

Obs.: O cliente deve ser digitado da forma acima, pois há diferença de maiúsculas e minúsculas por padrão dos desenvolvedores do software.

O cliente pode ser instalado em qualquer computador que tenha acesso ao servidor. Uma vez que é instalado, você só precisa conectar, configurar um scan e pronto!

É isso aí, mais uma missão cumprida ou comprida? ;) Acho que os 2.

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.