Explore Metasploit Framework: Fundamentos

Beginner

Introdução

Neste laboratório, exploraremos os conceitos fundamentais e o uso do Metasploit Framework, uma poderosa ferramenta de teste de penetração (penetration testing) de código aberto. O Metasploit oferece uma plataforma abrangente para identificar e explorar vulnerabilidades em vários sistemas e aplicações. O objetivo deste laboratório é familiarizá-lo com os componentes principais do Metasploit, suas metodologias de ataque e técnicas básicas de uso.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 93%. Recebeu uma taxa de avaliações positivas de 63% dos estudantes.

Entendendo o Metasploit Framework

Nesta etapa, apresentaremos o Metasploit Framework, sua arquitetura e conceitos principais.

O Metasploit é um framework de teste de penetração (penetration testing) poderoso e amplamente utilizado, desenvolvido em Ruby. Ele consiste em vários componentes, incluindo módulos, interfaces, plugins, utilitários e bibliotecas. O framework é projetado para ser modular, permitindo a reutilização de código e extensibilidade.

O Metasploit Framework é organizado em vários módulos-chave:

  1. Exploits: São módulos de código que aproveitam vulnerabilidades em sistemas-alvo para obter acesso não autorizado ou executar código arbitrário.
  2. Auxiliary: Este módulo inclui várias ferramentas de suporte, como scanners, fuzzers e utilitários de manipulação de protocolo.
  3. Encoders: Estes módulos são usados para ofuscar ou codificar payloads para contornar mecanismos de segurança como software antivírus ou firewalls.
  4. Payloads: Estes módulos contêm o código que é executado no sistema-alvo após uma exploração bem-sucedida.
  5. Post-Exploitation: Estes módulos fornecem funcionalidade para manter o acesso e conduzir ações adicionais no sistema comprometido.

O Metasploit fornece várias interfaces para interagir com o framework, incluindo uma interface de linha de comando (msfconsole), uma interface baseada na web (Metasploit Web UI) e uma interface de linha de comando (Metasploit Command Line).

Primeiramente, vamos iniciar o ambiente do laboratório. Inicie o Metasploitable2 clicando duas vezes no terminal xfce na área de trabalho e inserindo o seguinte comando no terminal:

sudo virsh start Metasploitable2

Aguarde o início da máquina-alvo, pode levar de 1 a 3 minutos.

Faça ping na máquina-alvo para garantir que ela esteja em execução (pressione Ctrl-C para sair do ping):

ping 192.168.122.102

Em seguida, vamos iniciar o container Kali e entrar na interface bash, execute a operação ping para verificar a conectividade de rede:

docker run -ti --network host b5b709a49cd5 bash

Agora, podemos executar a operação ping para verificar a conectividade de rede (pressione Ctrl-C para sair do ping):

ping 192.168.122.102

Agora, podemos iniciar o console Metasploit:

cd ~
msfconsole

Nas etapas seguintes, exploraremos o uso básico do console Metasploit e executaremos várias tarefas.

Nesta etapa, aprenderemos como navegar no console Metasploit e explorar os módulos disponíveis.

O console Metasploit fornece uma interface de linha de comando para interagir com o framework. Aqui estão alguns comandos básicos:

  • help: Exibe uma lista de comandos disponíveis e suas descrições.
  • search [keyword]: Pesquisa módulos com base na palavra-chave fornecida.

Vamos pesquisar módulos relacionados ao Linux no console Metasploit:

search linux

Este comando listará todos os módulos relacionados a vulnerabilidades e exploits do Linux.

Para selecionar um módulo específico, use o comando use seguido pelo caminho do módulo no console Metasploit:

use auxiliary/analyze/jtr_linux

Depois que um módulo é selecionado, você pode visualizar suas opções e parâmetros necessários usando o comando show options no console Metasploit:

show options

Aqui está um exemplo da saída que você pode ver:

Module options (auxiliary/analyze/jtr_linux):

   Name                  Current Setting  Required  Description
   ----                  ---------------  --------  -----------
   BLOWFISH              false            no        Include BLOWFISH hashes (Very Slow)
   BSDI                  true             no        Include BSDI hashes
   CONFIG                                 no        The path to a John config file to use instead of the default
   CRACKER_PATH                           no        The absolute path to the cracker executable
   CUSTOM_WORDLIST                        no        The path to an optional custom wordlist
   DES                   true             no        Indlude DES hashes
   FORK                  1                no        Forks for John the Ripper to use
   INCREMENTAL           true             no        Run in incremental mode
   ITERATION_TIMEOUT                      no        The max-run-time for each iteration of cracking
   KORELOGIC             false            no        Apply the KoreLogic rules to John the Ripper Wordlist Mode(slower)
   MD5                   true             no        Include MD5 hashes
   MUTATE                false            no        Apply common mutations to the Wordlist (SLOW)
   POT                                    no        The path to a John POT file to use instead of the default
   SHA256                false            no        Include SHA256 hashes (Very Slow)
   SHA512                false            no        Include SHA512 hashes (Very Slow)
   USE_CREDS             true             no        Use existing credential data saved in the database
   USE_DB_INFO           true             no        Use looted database schema info to seed the wordlist
   USE_DEFAULT_WORDLIST  true             no        Use the default metasploit wordlist
   USE_HOSTNAMES         true             no        Seed the wordlist with hostnames from the workspace
   USE_ROOT_WORDS        true             no        Use the Common Root Words Wordlist
   WORDLIST              true             no        Run in wordlist mode


Auxiliary action:

   Name  Description
   ----  -----------
   john  Use John the Ripper

Pressione Ctrl+D para sair do console Metasploit e iniciar a inspeção

Configurando Opções de Módulo

Nesta etapa, aprenderemos como definir opções para um módulo selecionado no Metasploit.

Primeiramente, se você não estiver no console Metasploit, deverá iniciar o console Metasploit:

cd ~
msfconsole

Selecione um módulo:

use auxiliary/analyze/jtr_linux

Muitos módulos exigem que opções específicas sejam definidas antes que possam ser executados. Você pode definir uma opção usando o comando set seguido pelo nome da opção e seu valor no console Metasploit, como set OPTION_NAME value.

Por exemplo, vamos definir a opção JOHN_PATH para o módulo jtr_linux no console Metasploit:

set JOHN_PATH /usr/share/metasploit-framework/data/wordlists/password.lst

Você também pode usar o comando setg para definir uma opção global que persistirá em todas as alterações de módulo.

Após definir as opções necessárias, você pode executar o módulo usando o comando run ou exploit no console Metasploit, dependendo do tipo de módulo.

run

ou

exploit

Para voltar ao contexto pai ou sair do módulo atual, use o comando back.

Pressione Ctrl+D para sair do console Metasploit e iniciar a inspeção

Exploração de uma Vulnerabilidade

Nesta etapa, simularemos um cenário do mundo real e tentaremos explorar uma vulnerabilidade em um sistema alvo.

Primeiramente, se você não estiver no console Metasploit, deverá iniciar o console Metasploit:

cd ~
msfconsole

Suponha que identificamos um servidor MySQL vulnerável no endereço IP alvo 192.168.122.102. Podemos usar o módulo mysql_login para tentar um ataque de força bruta nas credenciais do MySQL.

Selecione o módulo mysql_login no console Metasploit:

use auxiliary/scanner/mysql/mysql_login

Em seguida, defina as opções necessárias no console Metasploit:

set RHOSTS 192.168.122.102
set user_file /path/to/usernames.txt
set pass_file /path/to/passwords.txt

Finalmente, execute o módulo no console Metasploit:

exploit

O Metasploit tentará fazer login no servidor MySQL usando as combinações de nome de usuário e senha fornecidas dos arquivos especificados, e o nome de usuário e senha que fornecemos são apenas exemplos, o login pode falhar, você deve substituí-los pelo nome de usuário e senha reais.

Pressione Ctrl+D para sair do console Metasploit e iniciar a inspeção

Tarefas Pós-Exploração

Nesta etapa, exploraremos os módulos de pós-exploração disponíveis no Metasploit, que podem ser usados para manter o acesso e realizar ações adicionais em um sistema comprometido.

Após explorar com sucesso uma vulnerabilidade e obter acesso ao sistema alvo, você pode usar módulos de pós-exploração para realizar várias tarefas, como:

  • Coletar informações do sistema
  • Escalar privilégios
  • Manter acesso persistente
  • Pivoting (pivotear) para outros sistemas

Primeiramente, se você não estiver no console Metasploit, deverá iniciar o console Metasploit:

cd ~
msfconsole

Para usar um módulo de pós-exploração, siga os mesmos passos que com outros tipos de módulos no console Metasploit:

use post/windows/gather/enum_logged_on_users
show options

Aqui está um exemplo da saída que você pode ver:

Module options (post/windows/gather/enum_logged_on_users):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   CURRENT  true             yes       Enumerate currently logged on users
   RECENT   true             yes       Enumerate recently logged on users
   SESSION                   yes       The session to run this module on
set SESSION 1
exploit

Este módulo de exemplo enumera os usuários logados em um sistema Windows, mas o Metasploit fornece muitos outros módulos de pós-exploração para várias plataformas e tarefas.

Pressione Ctrl+D para sair do console Metasploit e iniciar a inspeção

Resumo

Neste laboratório, exploramos o Metasploit Framework, uma ferramenta poderosa para testes de penetração e avaliação de vulnerabilidades. Aprendemos sobre os componentes principais do Metasploit, como exploits, payloads e módulos auxiliares. Também praticamos a navegação no console Metasploit, a busca por módulos, a configuração de opções e a execução de módulos para explorar vulnerabilidades e realizar tarefas de pós-exploração.

O Metasploit fornece uma plataforma abrangente e versátil para hackers éticos, profissionais de segurança e pesquisadores identificarem e mitigarem vulnerabilidades de segurança. Ao entender e praticar com o Metasploit, você pode aprimorar suas habilidades em testes de penetração, análise de vulnerabilidades e avaliação geral de segurança.