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.
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:
- 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.
- Auxiliary: Este módulo inclui várias ferramentas de suporte, como scanners, fuzzers e utilitários de manipulação de protocolo.
- Encoders: Estes módulos são usados para ofuscar ou codificar payloads para contornar mecanismos de segurança como software antivírus ou firewalls.
- Payloads: Estes módulos contêm o código que é executado no sistema-alvo após uma exploração bem-sucedida.
- 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.
Navegação Básica e Exploração de Módulos
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.