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
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