Esta publicação é baseada no módulo da Hack The Box (HTB) Academy sobre o uso do framework Metasploit . Este módulo equipa os alunos com as habilidades necessárias para usar o Metasploit para enumeração de rede, ataques, testes de vulnerabilidades de segurança, evasão de detecção, execução de ataques de escalonamento de privilégios e pós-exploração.
Você pode aprender mais navegando pelo catálogo de cursos gratuitos ou avançados de segurança cibernética na HTB Academy!
O que é Metasploit?
O Projeto Metasploit é uma plataforma modular de testes de penetração baseada em Ruby que permite escrever, testar e executar código de exploração. Esse código pode ser personalizado por você ou obtido de um banco de dados contendo os exploits descobertos e modularizados mais recentes.
Em sua essência, o Projeto Metasploit é uma coleção de ferramentas comumente usadas que fornecem um ambiente completo para testes de penetração e desenvolvimento de exploits. O Metasploit Framework inclui um conjunto de ferramentas que você pode usar para testar vulnerabilidades de segurança, enumerar redes, executar ataques e evitar detecções.
Compreendendo o Framework Metasploit
O Console do Metasploit Framework (msfconsole) é a interface mais popular para o Metasploit Framework (MSF). Ele oferece um console centralizado “tudo em um” e permite que você acesse praticamente todas as opções disponíveis no MSF.
O Msfconsole pode parecer intimidador no começo, mas depois que você aprender a sintaxe do comando, poderá começar a apreciar o poder dessa interface.
💡Para uma folha de dicas completa, consulte o módulo da HTB Academy sobre como usar o Metasploit Framework
Em termos gerais, o MSF oferece os seguintes recursos:
- A única maneira suportada de acessar a maioria dos recursos do Metasploit.
- Interface baseada em console para MSF.
- Possui mais recursos e é a interface MSF mais estável.
- Suporte completo a readline, tabulação e conclusão de comando.
- Permite a execução de comandos externos no msfconsole.
Devemos confiar em ferramentas ao fazer testes de penetração?
Há algum debate na comunidade de segurança sobre o uso de ferramentas automatizadas durante uma avaliação de segurança. A não utilização de ferramentas automatizadas não dá ao analista de segurança ou ao testador de penetração a chance de “provar” seu valor ao interagir com um ambiente vulnerável.
No entanto, alguns especialistas em segurança discordam, argumentando que as ferramentas nos ajudam a aprender melhor, oferecendo uma abordagem mais amigável à grande variedade de vulnerabilidades existentes, ao mesmo tempo em que nos poupam tempo para as partes mais complexas de uma avaliação.
Alguns testadores usam ferramentas automatizadas para localizar os “frutos mais fáceis”, para que possam gastar mais tempo testando manualmente vulnerabilidades mais complicadas ou raras.
De qualquer forma, confiar em ferramentas pode levar a algumas desvantagens, como:
- Colocar o testador em uma zona de conforto da qual será difícil sair ao aprender novas habilidades.
- Criando um risco de segurança, pois as ferramentas são publicadas on-line para todos (incluindo invasores) verem e usarem.
- Causando um efeito de “visão de túnel”, onde parece que “se a ferramenta não consegue fazer isso, eu também não consigo”.
Podemos combater essas desvantagens analisando e aprendendo profundamente nossas ferramentas, para que possamos manter nossos rastros cobertos e evitar um evento cataclísmico durante nossa avaliação.
Desde que sigamos as regras aqui (veja as melhores práticas do Metasploit para testadores de penetração ), ferramentas como o Metasploit podem ser uma plataforma educacional valiosa para iniciantes e um mecanismo necessário para economizar tempo para profissionais.
Não tenha visão de túnel. Use a ferramenta como uma ferramenta, não como um pilar ou suporte de vida para nossa avaliação completa.
Usos e benefícios do Metasploit
Então, quem realmente usa o Metasploit? A estrutura fácil de usar foi adotada por profissionais de segurança e cibercriminosos e é especialmente popular na comunidade de segurança ofensiva.
Como o software é popular entre os criminosos cibernéticos e amplamente disponível, isso reforça a necessidade de os profissionais de segurança se familiarizarem com a estrutura, mesmo que não a utilizem.
O uso do MSF tem os seguintes benefícios:
- Código aberto: muitos adotam o MSF por ser de código aberto e desenvolvido ativamente. Essa personalização profunda dá aos pentesters acesso ao código-fonte e a capacidade de adicionar seus próprios módulos.
- Facilidade de uso: alterne facilmente entre cargas úteis, o que proporciona grande flexibilidade ao tentar penetrar em sistemas.
- Saídas limpas: o MSF consegue sair de forma limpa sem ser detectado, mesmo que não seja esperado que o sistema de destino reinicie após o teste de penetração.
- GUI visual: gerencie vulnerabilidades e crie espaços de trabalho com o clique de um botão.
Apesar dos debates no setor girarem em torno do nível de conhecimento de segurança necessário para operar uma ferramenta do tipo “canivete suíço”, como o Metasploit, esses tipos de estruturas permitem exploração e auditoria aprofundadas, para as quais talvez não houvesse o tempo necessário em outras circunstâncias.
Componentes MSF
O framework Metasploit possui diversos componentes que trabalham juntos para oferecer uma plataforma abrangente de testes de penetração . Analisaremos esses componentes em detalhes para ajudar você a entender como a ferramenta funciona.
Módulos
Os módulos Metasploit são scripts preparados com uma finalidade e funções específicas que já foram desenvolvidos e testados em campo. Os módulos são organizados em diversos tipos, incluindo Auxiliares, Exploits e Payloads.
Por exemplo, a categoria de exploração consiste em provas de conceito (POCs) que podem ser usadas para explorar vulnerabilidades existentes de maneira amplamente automatizada.
| Tipo | Descrição |
| Auxiliar | Recursos de escaneamento, fuzzing, sniffing e administração. Oferece assistência e funcionalidade extras. |
| Codificadores | Garanta que as cargas úteis cheguem intactas ao seu destino. |
| Explorações | Definidos como módulos que exploram uma vulnerabilidade que permitirá a entrega de carga útil. |
| NOP | (Sem código de operação) Mantenha os tamanhos de carga consistentes em todas as tentativas de exploração. |
| Cargas úteis | O código é executado remotamente e chama a máquina do invasor para estabelecer uma conexão (ou shell). |
| Plugins | Scripts adicionais podem ser integrados em uma avaliação com o msfconsole e coexistir. |
| Publicar | Grande variedade de módulos para reunir informações, aprofundar-se, etc. |
O Metasploit também oferece uma função de busca bem desenvolvida para os módulos existentes. Podemos usar essa função para pesquisar rapidamente em todos os módulos usando tags específicas para encontrar um adequado ao nosso objetivo.
msf6 > help search
Usage: search [<options>] [<keywords>:<value>]
Prepending a value with '-' will exclude any matching results.
If no options or keywords are provided, cached results are displayed.
OPTIONS:
-h Show this help information
-o <file> Send output to a file in csv format
-S <string> Regex pattern used to filter search results
-u Use module if there is one result
-s <search_column> Sort the research results based on <search_column> in ascending order
-r Reverse the search results order to descending order
Keywords:
aka : Modules with a matching AKA (also-known-as) name
author : Modules written by this author
arch : Modules affecting this architecture
bid : Modules with a matching Bugtraq ID
cve : Modules with a matching CVE ID
edb : Modules with a matching Exploit-DB ID
check : Modules that support the 'check' method
date : Modules with a matching disclosure date
description : Modules with a matching description
fullname : Modules with a matching full name
mod_time : Modules with a matching modification date
name : Modules with a matching descriptive name
path : Modules with a matching path
platform : Modules affecting this platform
port : Modules with a matching port
rank : Modules with a matching rank (Can be descriptive (ex: 'good') or numeric with comparison operators (ex: 'gte400'))
ref : Modules with a matching ref
reference : Modules with a matching reference
target : Modules affecting this target
type : Modules of a specific type (exploit, payload, auxiliary, encoder, evasion, post, or nop)
Supported search columns:
rank : Sort modules by their exploitabilty rank
date : Sort modules by their disclosure date. Alias for disclosure_date
disclosure_date : Sort modules by their disclosure date
name : Sort modules by their name
type : Sort modules by their type
check : Sort modules by whether or not they have a check method
Examples:
search cve:2009 type:exploit
search cve:2009 type:exploit platform:-linux
search cve:2009 -s name
search type:exploit -s type -r
Alvos
Cada módulo possui uma lista de Alvos, que são os Sistemas Operacionais (SO) exclusivos nos quais o módulo foi testado para execução. Use o comando “show targets” em uma visualização de módulo de exploit para exibir todos os alvos vulneráveis disponíveis para aquele exploit específico.
Verifique se o módulo suporta segmentação automática, porque o padrão será o alvo listado na posição 0, a menos que seja instruído de outra forma.
msf6 > show targets
[-] No exploit module selected.
Cargas úteis
Um Metasploit Payload é um tipo de módulo que normalmente auxilia no retorno de um shell ao invasor.
Essas cargas úteis são enviadas com o exploit e projetadas para ignorar os procedimentos de funcionamento padrão do serviço vulnerável e, então, serem executadas no sistema operacional de destino para tentar retornar uma conexão reversa ao invasor e estabelecer uma posição.
Existem três tipos de módulos de carga útil no Metasploit Framework:
- Singles: contêm o exploit e todo o shellcode para a tarefa selecionada. Esses payloads são, por definição, mais estáveis do que seus equivalentes, pois contêm tudo em um só lugar.
- Stagers: trabalha com payloads de Stage para executar uma tarefa específica. Após a implantação, um Stager estabelece uma conexão entre a máquina do invasor e o host da vítima, para que possa executar stagers no host remoto.
- Estágios: componentes baixados pelos módulos de payload do Stager. Os diversos Estágios de payload oferecem recursos avançados sem limites de tamanho, como Meterpreter, VNC Injection e outros.
Codificadores
Os codificadores ajudam a tornar os payloads compatíveis com diferentes arquiteturas de processadores, ao mesmo tempo que auxiliam na evasão antivírus. Eles entram em ação ao alterar o payload para rodar em diferentes sistemas operacionais e arquiteturas.
Bancos de dados
Os bancos de dados no msfconsole monitoram seus resultados. Durante avaliações complexas de máquinas, as coisas podem ficar complicadas devido à grande quantidade de resultados de pesquisa, pontos de entrada, problemas detectados e credenciais descobertas, entre outros dados retornados. É aqui que os bancos de dados entram em ação.
O Msfconsole possui suporte integrado para o sistema de banco de dados PostgreSQL. Com ele, temos acesso direto, rápido e fácil aos resultados da varredura, além da capacidade adicional de importar e exportar resultados em conjunto com ferramentas de terceiros. As entradas do banco de dados também podem ser usadas para configurar os parâmetros do módulo Exploit diretamente com as descobertas já existentes.
Plugins
Plugins são softwares prontamente disponíveis que já foram lançados por terceiros e têm aprovação dos criadores do Metasploit para integrar seu software dentro da estrutura.
Eles podem representar produtos comerciais que têm uma Community Edition para uso gratuito, mas com funcionalidade limitada, ou podem ser projetos individuais desenvolvidos por indivíduos.
O uso de plugins torna a vida do pentester ainda mais fácil, trazendo a funcionalidade de outros softwares conhecidos para os ambientes msfconsole ou Metasploit Pro.
Como usar o Metasploit
Pronto para começar a utilizar o MSF durante seus testes de penetração? Aqui está um guia passo a passo sobre como começar a usar esta ferramenta popular:
Etapa 1: Baixe e instale o Metasploit
O Metasploit Framework funciona em diversas plataformas, incluindo Windows, Kali Linux e macOS. Muitas distribuições Linux voltadas para segurança, como Parrot Security e Kali Linux, vêm com o msfconsole pré-instalado.
Etapa 2: Inicie o Metasploit
Após a instalação, digite msfconsole no terminal de sua escolha. Após iniciar o msfconsole, o console exibirá a imagem inicial do MSF e o prompt de linha de comando, aguardando nosso primeiro comando.
Etapa 3: Atualizar o banco de dados
O Metasploit se beneficia de um enorme banco de dados de exploits e vulnerabilidades. Para se beneficiar desse banco de dados, mantê-lo atualizado deve ser uma prioridade. Digite o comando “db update” para garantir que você tenha a versão mais recente do banco de dados.
Etapa 4: Selecione seu módulo
Conforme discutido anteriormente, os módulos constituem os componentes principais do Metasploit Framework. Para navegar pelos módulos para escanear ou explorar redes, localize os módulos no seguinte diretório:
/path/to/metasploit/apps/pro/msf3/modules
Para encontrar um exploit específico, use o comando “search”. Por exemplo, para encontrar um exploit que tenha como alvo o protocolo “SMB”, digite “search smb”.
Depois de encontrar o exploit que procura, use o comando “use” para selecioná-lo. Por exemplo, para executar o exploit “eternalromance”, digite use exploit/windows/smb/MS17-010_eternalromance.
Etapa 5: Defina a meta
Insira o endereço IP do sistema de destino que deseja testar. Defina o destino com o comando “set”. Por exemplo, se o endereço IP do host for 192.168.1.100, digite “set RHOST 192.168.1.100”.
Não se esqueça de verificar se o seu módulo é compatível com o seu sistema de destino usando o comando “show targets”.
Importante : Você nunca deve executar ferramentas de pentesting em um sistema para o qual não tenha permissão para testar ou explorar. Dependendo das leis da sua região, isso pode ser ilegal. Se você não tiver um alvo para praticar, pode configurar o projeto Metasploitable no GitHub: https://github.com/rapid7/metasploitable3 .
Agora que você configurou o msfconsole, pode começar a usá-lo. Para praticar mais, confira os módulos do HTB sobre Introdução (com pentesting), Usando o Framework Metasploit e Shells e Payloads .
Melhores práticas do Metasploit para testadores de penetração
Como testadores de penetração , nunca devemos confiar somente em uma ferramenta para fazer o trabalho por nós, e é por isso que estas práticas recomendadas devem estar sempre em mente:
1. Não negligencie suas habilidades práticas
Muitas pessoas costumam pensar que a falha de um exploit refuta a existência da vulnerabilidade suspeita.
No entanto, isso é apenas uma prova de que o exploit Metasploit que você usou não funcionou, não que a vulnerabilidade não existe. Isso ocorre porque muitos exploits podem exigir personalização nos hosts de destino para que funcionem.
Portanto, considere ferramentas automatizadas, como o framework Metasploit, como ferramentas de suporte, em vez de um substituto para nossas habilidades manuais.
2. Entenda os fundamentos
Antes de executar qualquer tipo de exploração, precisamos entender os fundamentos dos testes de penetração. Isso não é apenas essencial para se destacar no seu trabalho, mas também para identificar pontos que as ferramentas podem ignorar.
Você deve aprender a executar exploits manualmente antes de usar ferramentas. Quando iniciantes entram na área de testes de segurança, geralmente adotam um fluxo de trabalho linear de resolução de problemas baseado em ferramentas.
No entanto, testes de penetração no mundo real exigem um elemento de intuição humana bruta. Se a intuição humana não fosse necessária, softwares pagos já teriam resolvido o problema da segurança. Não se pode confiar exclusivamente em pensamento programático ou orientado a ferramentas, pois criatividade, adaptabilidade e pensamento inovador são essenciais.
3. Mantenha o Metasploit atualizado
O MSF está constantemente recebendo patches e atualizações, incluindo atualizações para os CVEs mais recentes. Isso significa que você deve mantê-lo atualizado para aproveitar ao máximo a ferramenta e evitar ignorar vulnerabilidades recentes.
Recomendamos verificar atualizações com o comando “db update” sempre que usá-lo.
Lembre-se de verificar a documentação do Metasploit se tiver problemas.
4. Acompanhe seu progresso
Você pode se tornar um testador de penetração melhor anotando suas descobertas ao longo do processo. Isso ajudará você a identificar pontos de melhoria e a comprovar seu valor para as principais partes interessadas.
Não se esqueça de tirar prints sempre que executar um exploit ou conseguir acesso a algo. Dizem que “imagens valem mais que mil palavras”, e essas capturas de tela podem ajudar você a escrever qualquer relatório que precise produzir.

Deixe um comentário