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ásicasAntes de utilizarmos o Metasploit é importante conhecermos alguns conceitos:
MetasploitableA 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 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. ComandosA 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 >):
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ãoCom 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: |