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: