O Kali Linux vem pré-equipado com todas as ferramentas necessárias para testes de penetração. Uma dessas ferramentas é o framework Metasploit que permite que os red teamers realizem reconhecimento, varredura, enumeração, e explorar vulnerabilidades para todos os tipos de aplicativos, redes, servidores, sistemas operacionais e plataformas.
Embora a principal funcionalidade do Metasploit se concentre em tarefas de pentesting pré e pós-exploração, também é útil no desenvolvimento de exploits e na pesquisa de vulnerabilidades.
Este artigo apresenta os principais componentes do framework Metasploit. Ele demonstra como usar os módulos Metasploit para varredura, enumeração e exploração em um banco de dados MySQL vulnerável hospedado em uma máquina conhecida como Metasploitable 2.
Metasploit é a ferramenta de pentesting mais usada que vem pré-instalada no Kali Linux. Os principais componentes do Metasploit são msfconsole e os módulos que oferece.
O que é msfconsole?
msfconsole é a interface tudo-em-um tipo shell mais comumente usada que permite acessar todos os recursos do Metasploit. Ele tem suporte de linha de comando semelhante ao Linux, pois oferece preenchimento automático de comandos, tabulação e outros atalhos do bash.
É a interface principal que permite trabalhar com módulos Metasploit para escanear e lançar um ataque na máquina alvo.
O Metasploit possui pequenos trechos de código que habilitam sua principal funcionalidade. No entanto, antes de explicar os módulos, você deve ter clareza sobre os seguintes conceitos recorrentes:
- Vulnerabilidade: é uma falha no design ou código do alvo que o torna vulnerável à exploração levando à divulgação de informações confidenciais.
- Explorar: um código que explora a vulnerabilidade encontrada.
- Carga útil: é um código que ajuda você a atingir o objetivo de explorar uma vulnerabilidade. Ele é executado dentro do sistema de destino para acessar os dados de destino, como manter o acesso via Meterpreter ou um shell reverso.
Agora indo para os cinco principais módulos do Metasploit:
- Auxiliar: O módulo auxiliar contém um conjunto de programas como fuzzers, scanners e ferramentas de injeção de SQL para coletar informações e obter uma compreensão mais profunda do sistema de destino.
- Codificadores: os codificadores criptografam as cargas/explorações para protegê-los contra soluções antivírus baseadas em assinatura. Como payloads ou exploits contêm caracteres nulos ou ruins, há grandes chances de serem detectados por uma solução antivírus.
- Explorar: Conforme discutido anteriormente, um exploit é um código que aproveita as vulnerabilidades de destino para garantir o acesso ao sistema por meio de cargas úteis.
- Carga útil: como mencionado anteriormente, as cargas úteis ajudam você a atingir o objetivo desejado de atacar o sistema de destino. Isso significa que eles o ajudarão a obter um shell interativo ou a manter um backdoor, executar um comando ou carregar malware, etc. O Metasploit oferece dois tipos de cargas úteis: cargas sem estágios e cargas com estágios.
- Publicar: O módulo de pós-exploração o ajudará a coletar mais informações sobre o sistema. Por exemplo, ele pode ajudá-lo a despejar os hashes de senha e procurar credenciais de usuário para movimentação lateral ou escalonamento de privilégios.
Você pode usar os seguintes comandos para visualizar cada módulo e suas categorias:
cd /usr/share/metasploit-framework/modules
ls
tree -L 1 nome-do-módulo/
Para começar a usar a interface Metasploit, abra o terminal Kali Linux e digite msfconsole.
Por padrão, o msfconsole abre com um banner; para remover isso e iniciar a interface no modo silencioso, use o msfconsole comando com o -q bandeira.
A interface se parece com um shell de linha de comando do Linux. Alguns comandos do Linux Bash que ele suporta são ls, clear, grep, history, jobs, kill, cd, exit, etc.
Modelo ajuda ou um ponto de interrogação"?" para ver a lista de todos os comandos disponíveis que você pode usar dentro do msfconsole. Alguns dos mais importantes que usaremos neste artigo são:
Comando | Descrição |
---|---|
procurar | Permite pesquisar no banco de dados Metasploit com base no protocolo/aplicativo/parâmetro fornecido |
usar | Permite que você escolha um módulo específico e altera o contexto para comandos específicos do módulo |
informação | Fornece informações sobre o módulo selecionado |
exposição | Exibe informações sobre o nome do módulo fornecido e opções para o módulo atual |
Verifica | Verifica se o sistema de destino tem uma vulnerabilidade |
definir | É uma variável específica do contexto que configura opções para o módulo atual |
desarmar | Remove os parâmetros definidos anteriormente |
corre | Executa o módulo atual |
Antes de começar, configure o banco de dados Metasploit iniciando o servidor PostgreSQL e inicialize o banco de dados msfconsole da seguinte forma:
systemctl iniciar postgresql
inicialização do msfdb
Agora verifique o status do banco de dados inicializando o msfconsole e executando o db_status comando.
Para fins de demonstração, configure a máquina Linux vulnerável de código aberto Metasploitable2.
Reconhecimento MySQL com msfconsole
Encontre o Endereço IP da máquina Metasploitable primeiro. Em seguida, utilize o db_nmap comando em msfconsole com sinalizadores Nmap para escanear o banco de dados MySQL em 3306 porta.
db_nmap -sV -sC -p 3306
Você pode executar o normal nmap -p- comando para confirmar o número da porta do banco de dados MySQL.
Relacionado: Nmap para iniciantes: ganhe experiência prática com varredura de portas
Use o procurar opção para procurar um módulo auxiliar para escanear e enumerar o banco de dados MySQL.
tipo de pesquisa: mysql auxiliar
Na lista acima, você pode usar o auxiliar/scanner/mysql/mysql_version módulo digitando o nome do módulo ou o número associado para verificar os detalhes da versão do MySQL.
usar 11
Ou:
use auxiliar/scanner/mysql/mysql_version
Agora use o mostrar opções comando para exibir os parâmetros necessários para executar o módulo atual:
A saída exibe que a única opção necessária e não definida é RHOSTS, que é o endereço IP da máquina de destino. Use o definir rhosts comando para definir o parâmetro e executar o módulo, da seguinte forma:
A saída exibe os detalhes da versão MySQL semelhantes como o db_nmap função.
Conta raiz do Bruteforce MySQL com msfconsole
Após a digitalização, você também pode forçar a conta root do MySQL via Metasploit's auxiliar (scanner/mysql/mysql_login) módulo.
Você precisará definir o PASS_FILE parâmetro para o caminho da lista de palavras disponível dentro /usr/share/wordlists:
set PASS_FILE /usr/share/wordlistss/rockyou.txt
Em seguida, especifique o endereço IP da máquina de destino com o comando RHOSTS.
definir RHOSTS
Definir BLANK_PASSWORDS para true caso não haja uma senha definida para a conta root.
definir BLANK_PASSWORDS verdadeiro
Por fim, execute o módulo digitando corre no terminal.
Enumeração MySQL com msfconsole
msfconsole também permite enumerar o banco de dados com a ajuda do auxiliar (admin/mysql/mysql_enum) módulo. Ele retorna todas as contas com detalhes como privilégios associados e hashes de senha.
Para fazer isso, você terá que especificar a senha, o nome de usuário e a variável rhosts.
configurar senha ""
definir nome de usuário root
definir rhosts
Por fim, execute o módulo digitando:
corre
Exploração do MySQL com msfconsole
A partir da fase de enumeração, fica claro que a conta root tem privilégios de arquivo que permitem que um invasor execute o load_file() função. A função permite explorar o banco de dados MySQL carregando todos os dados de o arquivo /etc/senha através do auxiliar(/admin/mysql/mysql_sql) módulo:
Novamente, defina o nome de usuário, a senha e a variável rhosts. Em seguida, execute uma consulta que invoque a função load_file() e carregue o /etc/passwd Arquivo.
set sql selecione load_file(\"/etc/password\")
Os módulos Metasploit ajudam em todas as fases do teste de penetração. O Metasploit também permite que os usuários criem seus próprios módulos.
Este artigo resume alguns módulos principais do framework Metasploit e demonstra como escanear, enumerar e explorar um banco de dados MySQL na máquina Metasploitable 2.
O Metasploit não é a única ferramenta de teste de penetração que você usará como profissional de segurança cibernética. Existem vários outros utilitários com os quais você precisa se familiarizar se quiser se tornar um especialista em segurança.
Se você está se perguntando como os profissionais testam a penetração, este guia lhe dará uma ajuda.
Leia a seguir
- Linux
- Hacking Ético
- Hackear
- Aplicativos Linux
Rumaisa é redatora freelancer na MUO. Ela já desempenhou muitos cargos, de matemática a entusiasta de segurança da informação, e agora está trabalhando como analista de SOC. Seus interesses incluem ler e escrever sobre novas tecnologias, distribuições Linux e qualquer coisa relacionada à Segurança da Informação.
Assine a nossa newsletter
Junte-se à nossa newsletter para dicas de tecnologia, análises, e-books gratuitos e ofertas exclusivas!
Clique aqui para assinar