Introdução
O
Metasploit é um programa e sub-projeto desenvolvido por Metasploit LLC. Ele foi inicialmente criado em 2003 utilizando a linguagem de programação Perl, porém, mais tarde, foi reescrito na linguagem Ruby. O
Metasploit tem levado completamente os teste e simulações de vulnerabilidades a níveis profissionais. O mesmo está disponível nas versões PRO e Community.
A versão utilizada neste artigo é a Community, onde já vem integrada ao Kali Linux e também pode ser facilmente instalada em qualquer outra distribuição
GNU/Linux.
O Metasploit pode ser utilizado de três formas:
msfconsole,
msfcli e
msfweb. Contudo, a principal interface mais utilizada para trabalhar com o Metasploit é a msfconsole. É uma eficiente interface de linha de comando com um grande conjunto de exploits[1] e payloads[2] que serão úteis na detecção de falhas e escalada de privilégios.
Iniciando o teste
Tentaremos ganhar acesso remoto a um sistema vulnerável. Será feito o levantamento de possíveis alvos em nossa rede. Assim que os mesmos forem detectados, aplicaremos alguns testes afim de obter exito em nosso ataque.
Foram utilizados os programas nbtScan e NMap. Solicitei ao nbtScan que realize uma varredura por hosts ativos em minha rede. O mesmo encontrou um servidor SRV-AD-01. O segundo IP refere-se ao Kali
Linux.
Caso você tenha mais hosts ativos em sua rede e queira procurar por vulnerabilidades neles, recomendo criar um arquivo de texto ou planilha para organizar suas atividades. O NMap detectou algumas portas de serviços abertas. Vamos trabalhar em cima do serviço
msrpc rodando na porta 135.
Execute o comando
msfconsole para carregar o Metasploit:
# msfconsole
Após o Metasploit ter sido carregado, iremos fazer uma busca por exploits relacionados ao RPC. O comando
search vai nos ajudar nessa tarefa. Execute:
search dcerpc
Alguns resultados da busca nos foram retornados. Neste artigo, não dá para testar todos os exploits. Dessa forma, vamos usar o
exploit/windows/dcerpc/ms03_026_dcom. Antes de usar qualquer exploit, é bom saber qual a finalidade do mesmo. Execute o comando abaixo para obter mais informações:
Agora é preciso ativar a execução do exploit:
Após digitar o comando, pressione Enter e veja que houve uma alteração no console. Isso significa que você entrou no ambiente do exploit. Todo exploit precisa ser configurado da maneira correta, inserindo algumas informações necessárias ao seu uso.
As mesmas podem ser vistas como o comando:
show options
Agora, é preciso configurar o nosso alvo com a variável RHOST. A porta será a default, já configurada: 135.
O próximo passo agora, é a escolha do Payload, compatível com o exploit em uso a ser utilizado. Para visualizar todos os Payloads disponíveis, execute o comando:
# show payloads
No nosso caso, usaremos o
tcp meterpreter, o qual gera um shell remoto no servidor, quando o ataque obtêm êxito.
Novamente é preciso visualizar as opções de configuração do payload.
# show options
Configure a variável LHOST com o IP do seu Kali Linux. A porta será a padrão. Veja como ficou a configuração na imagem abaixo:
Com tudo pronto e configurado, chegou a hora de execução do ataque. Para isso, basta digitar o comando:
# exploit
Será uma aberta uma sessão remota do alvo e observe que o prompt de comando alterou para:
meterpreter>
Dessa forma, você já está conectado à maquina. Execute o comando
help e veja os comandos disponíveis que podem ser utilizados.
Conclusão
Tem muito mais coisas, mas que deixaria o artigo bem longo. Recomendo a leitura do
Metasploit Unleashed, que vai ajudá-los a entender melhor o funcionamento e utilização do metasploit.
O alvo utilizado neste artigo foi uma VM com Windows Server 2003. É sempre importante lembrar de manter o sistema atualizado com patches de segurança, antivírus e versões do sistema operacional mais atual. Isso é o mínimo, mas que ajuda bastante a mitigar os vetores de ataque.
Caso queiram saber um pouco mais sobre a falha de segurança explorada, recomendo ler o boletim de segurança
MS03-026, disponibilizado no site da Microsoft.
Vou ficando por aqui e em breve novos artigos.
Indicações:
- [1] - Este é o código que será direcionado para um sistema com a intenção de tirar proveito de um defeito em um software.
- [2] - Representa o código que será executado em um sistema após uma brecha/vulnerabilidade ser encontrado no sistema.