Metasploit – Instalação e utilização em ambiente GNU/Linux

Instalando

1. Visite a seguinte página e baixe a versão de instalação para GNU/Linux 32 ou 64 bits:

Salve o arquivo de instalação em uma pasta qualquer. Nesse tutorial será a pasta “Documentos”.

2. Abra o terminal como administrador.

3. Utilize o comando chmod +x para dar poder de execução ao arquivo baixado. Exemplo:

# chmod +x /home/pedro/Documentos/metasploit-latest-linux-installer.run

4. Execute o arquivo com:

# ./metasploit-lateset-linux-installer.run

5. Clique em “Avançar” para começar a instalação.

6. Marque: “I accept the agreement” → Clique em: “Avançar”.

7. Caso queira mudar a pasta de instalação ou clique em: “Avançar”.

8. Nesta etapa pode-se escolher registrar ou não no serviço. Neste caso escolheremos: “Yes”.

9. Deixe a porta default. Clique em: “Avançar”.

10. Escolha um nome para o servidor e clique em: “Avançar”.

11. Clique em “Avançar” para instalar.

12. Marque: “Access Metasploit Web UI” → Clique: “Finish”.

13. Aguarde cerca de 5 minutos e aparecerá essa tela para criação de login.

14. Após criado o login, clique em “GET PRODUCT KEY”, para obter a chave do Metasploit.

15. Selecione: “GET COMUNITY EDITION”.

16. Preencha o formulário e clique em: “Submit”.

17. A chave será mandada para o e-mail cadastrado, copie e cole ela, depois clique em: “ACTIVATE LICENSE”.

18. Pronto, o Metasploit está instalado e ativado.

19. Esta interface WEB é uma das interfaces que o Metasploit fornece para o usuário. Porém, utilizaremos o console do Metasploit chamado Msfconsole.

Para executar, digite no terminal: msfconsole

É aconselhável utilizar o Msfconsole em modo root.

Definições / Metasploitable / Msfconsole

Definições básicas

Antes de utilizarmos o Metasploit é importante conhecermos alguns conceitos:

  • Vulnerabilidade: falha de segurança em um software, hardware ou sistema operacional que fornece uma fonte potencial de ataque para um sistema;
  • Exploit: módulo especializado em tirar vantagem de uma vulnerabilidade específica de um sistema e prover acesso ao mesmo;
  • Payload: módulo que possibilita executar ações em um sistema após o mesmo ter sido acessado por um exploit. Podemos imaginar um exploit como um intruso que carrega um payload em sua mochila. Após invadir o sistema, o exploit libera o payload para este realizar sua tarefa.

Metasploitable

A equipe do Metasploit fornece uma máquina virtual Ubuntu para testes, chamada Metasploitable e que, intencionalmente, possui diversas vulnerabilidades.

Faça o download da Metasploitable e execute-a em algum software de virtualização, tal como VirtualBox ou VMware.

Msfconsole

É possível utilizar o Metasploit através de várias interfaces, como a interface WEB utilizada na instalação ou através de linhas de comando.

Neste tutorial, estaremos utilizando o Msfconsole, que fornece um interface com o framework do Metasploit baseada em console. O Msfconsole oferece recursos que tornam mais fácil o seu uso, tais como a auto-complementação de comandos (utilizando TAB) e a possibilidade de se usar comandos externos (nmap, por exemplo).

Para utilizar o Msfconsole, basta digitar o comando no terminal:

# msfconsole

Linux: Metasploit - Instalação e utilização em ambiente GNU/Linux

No Metasploit temos a ideia de módulos. Um módulo no Msfconsole é acessado por seu caminho completo em uma árvore de diretórios. Os módulos estão agrupados de acordo com suas características, como por exemplo, o seu tipo (exploit, payload, auxiliary, encoder, nop), sistema operacional, software vulnerável, etc.

Por exemplo, um caminho para um exploit na maioria dos casos segue este padrão:

exploit/sistema_operacional/tipo_do_serviço/ nome_do_módulo

Esse tipo de organização adicionada do sistema de auto-complementação facilita muito a pesquisa por um módulo.

Comandos

A seguir estão alguns comandos básicos do Msfconsole:

use < módulo >

Este comando é utilizado sempre que queremos executar um módulo.

back

Usado para “sair” de um módulo.

search < valor >

Comando utilizado para pesquisar um módulo. É possível utilizar filtros de pesquisa, especificando o filtro como parâmetro e o valor procurado.

Por exemplo, digitando:

search plataform:windows

Serão mostrados apenas módulos aplicáveis à plataforma Windows.

show < valor >

Mostra uma lista de módulos de acordo com o valor passado. Utilizado frequentemente dentro de um módulo (após o comando use), pois exibe somente os módulos “compatíveis” com o módulo utilizado no momento (principalmente no caso de estar se usando um exploit e procurando por um payload).

Dentro de um módulo é possível também listar outras coisas além de módulos, como a configuração do módulo em questão ou os sistemas alvo disponíveis.

set < parâmetro > < Valor >

Utilizado para configurar os parâmetros de execução de um módulo.

*info < módulo >

Utilizado para exibir os detalhes de um módulo. Estando dentro de um módulo (após o comando use) não há a necessidade do parâmetro “< módulo >” para exibir as suas informações.

Existem diversos outros comandos disponíveis que podem ser visualizados com o comando help. Para saber mais sobre o uso de um comando específico, basta digitar:

< comando > -h

Explorando sistemas vulneráveis

Para explorar as vulnerabilidades de um sistema, precisamos descobrir as portas que nele estão abertas e as aplicações que as utilizam. Podemos fazer isso de duas formas: utilizando o comando nmap ou módulos do próprio Metasploit.

Utilizando o nmap, digite no console:

nmap -sV -O < ip_alvo >

Os parâmetros “-sV -O” são utilizados para recuperar a versão do serviço que está utilizando uma porta e o sistema operacional alvo, respectivamente.

Utilizando módulos do Metasploit, devemos pesquisar por algum que realiza a verificação de portas abertas. Digite no console:

search scanner/portscan

Após escolher o tipo de scanner, basta utilizar o comando use passando o caminho do módulo como parâmetro. Exemplo:

use auxiliary/scanner/portscan/tcp

Os parâmetros que um módulo utiliza são configuráveis, e alguns obrigatórios para a sua execução. Para verificar os parâmetros do módulo digite:

show options

Para configurar uma parâmetro, devemos digitar:

set < nome_do_paramentro > < valor >

Na coluna “Required”, observamos os parâmetros que o módulo necessita que estejam configurados para executar. Neste caso, por exemplo, devemos atribuir o endereço IP do sistema alvo ao parâmetro RHOSTS. Por exemplo:

set rhosts 192.168.0.1

Uma vez configurado o módulo, digite o seguinte para executá-lo:

run

Como visto, ambas as abordagens exibem uma lista com as portas abertas no sistema alvo. A vantagem de se utilizar o nmap é que podemos obter informações mais detalhadas sobre as portas e sobre o sistema alvo, assim como configurar o modo sobre como a varredura será feita.

A lista das portas encontradas é o que devemos utilizar como guia para os próximos passos. Uma vez descoberto um serviço, a porta que ele utiliza e o sistema operacional do alvo, é hora de utilizar os comandos do Msfconsole para pesquisar exploits e payloads, que estão relacionados com aquele serviço e sistema operacional.

O primeiro passo: pesquisar um exploit. Como sabemos o serviço que utiliza determinada porta, podemos utilizar essa informação para refinar a nossa busca.

Por exemplo, podemos utilizar o comando search com a seguinte configuração:

search type:exploit name:mysql

Neste caso, serão retornados somente exploits que estão relacionados com o MySQL.

* Lembrando que o comando: info < módulo > pode ser utilizado para ver os detalhes de um módulo.

Uma vez escolhido o exploit, é hora de configurá-lo. Com o comando show options, será exibida uma lista contendo informações sobre os parâmetros utilizados pelo exploit.

Aqueles parâmetros que na coluna Required possuírem o valor “yes”, devem obrigatoriamente possuir um valor na coluna “Current Setting” para que o módulo seja executado.

Para configurar um parâmetro, utilize o comando:

set < parametro > < valor >

Como dito anteriormente, o exploit faz o trabalho de invasão do sistema através de uma aplicação com vulnerabilidades. E após a invasão ele executa o payload para realizar alguma ação naquele sistema.

Para configurar um payload para o exploit, digite o comando:

show payloads

Como estamos dentro de um exploit, será retornada uma lista contendo apenas os payloads compatíveis com o exploit em questão.

Para utilizar um payload, digite o comando:

set payload < payload >

É preciso verificar novamente com o comando show options se os parâmetros do payload estão corretamente configurados.

Caso nenhum payload seja configurado, após a invasão do exploit, o console funcionará como um terminal no sistema invadido.

Após terminada a configuração, basta digitar o comando exploit para executar o exploit:

Explorando uma vulnerabilidade no Android

Iremos agora explorar uma vulnerabilidade no sistema Android. Nesse teste estamos utilizando um aparelho com a versão 2.3 do sistema.

O primeiro passo é pesquisar um exploit para o Android:

search android

Se executarmos o comando:

info auxiliary/gather/android_htmlfileprovider

Veremos que, com esse exploit, é possível extrair arquivos do dispositivo a partir de uma conexão do browser do aparelho com a nossa máquina. O browser deve acessar um link no seguinte formato:

http://ip_da_maquina_local  (No meu caso: http://192.168.0.102/)

Ao acessar o link o browser fará o download de um arquivo enviado pelo exploit e, quando o arquivo for aberto, será exibido no console o conteúdo dos arquivos que extraímos do dispositivo.

Vamos então usá-lo:

use auxiliary/gather/android_htmlfileprovider

Se digitarmos:

show options

Veremos as configurações do exploit. Os seguintes parâmetros devem ser configurados (set < parametros > < valor >):

  • SRVHOST :: IP da máquina local
  • SRVPORT :: 80
  • FILES :: Já estão pré-configurados alguns arquivos que serão extraídos, mas nada impede que configuremos outros arquivos.

Agora basta executar o exploit com o comando:

exploit

Ao acessar o link no dispositivo Android, faremos o download de um arquivo HTML enviado pelo exploit. No Msfconsole veremos então o conteúdo dos arquivos que foram extraídos do dispositivo:

Conclusão

Com o Metasploit, podemos explorar vulnerabilidades em vários tipos de sistemas. Independente do tipo a sequência de passos, na maioria das vezes, obedece um padrão.

Quando não se tem ideia da configuração ou da existência de uma máquina alvo em uma rede, deve-se fazer a varredura de uma faixa de IPs utilizando comandos do GNU/Linux ou módulos do próprio Metasploit.

Quando se conhece o IP do sistema alvo e suas respectivas portas e serviços associados a estas, basta utilizar o comando search do Metasploit para encontrar módulos específicos para aquele sistema e serviço.

Módulos novos surgem constantemente no Metaspoit, logo, é aconselhável atualizar a ferramenta periodicamente (digite msfupdate em um terminal).

É possível também, desenvolver nossos próprios módulos. Procuraremos abordar esta parte de desenvolvimento de módulos em artigos futuros.

Para maiores informações a respeito do Metasploit, acessem o site:

E a comunidade oficial:

Rolar para cima