Introdução
O Metasploit Framework é uma ferramenta poderosa utilizada por profissionais de segurança para testes de penetração e avaliação de vulnerabilidades. Ele contém um vasto banco de dados de módulos, incluindo exploits, scanners auxiliares, payloads e muito mais. Com milhares de módulos disponíveis, saber como pesquisar eficientemente pelo módulo correto é uma habilidade crítica.
Neste laboratório, você aprenderá as técnicas fundamentais para pesquisar módulos no Metasploit. Começaremos com pesquisas básicas por palavras-chave e, em seguida, exploraremos como refinar essas pesquisas usando filtros por tipo de módulo e identificadores específicos de CVE. Finalmente, você aprenderá como inspecionar os detalhes de um módulo e selecioná-lo para uso.
Use o comando search com um nome de serviço como ssh
Nesta etapa, você começará iniciando o console do Metasploit e realizando uma pesquisa básica por módulos relacionados a um serviço específico. O comando search é sua principal ferramenta para navegar na extensa biblioteca de módulos do Metasploit.
Primeiro, abra seu terminal e inicie o console do Metasploit Framework executando o comando msfconsole. Isso pode levar um momento para carregar.
msfconsole
Você verá um banner e o prompt de comando do Metasploit, que se parece com msf6 >.
Agora, vamos pesquisar por todos os módulos relacionados ao serviço SSH (Secure Shell). Digite o seguinte comando no console do Metasploit e pressione Enter:
search ssh
O Metasploit exibirá uma lista de todos os módulos que têm "ssh" em seu nome ou descrição. A saída será uma tabela com várias colunas:
- #: O número de índice do módulo nos resultados da pesquisa.
- Name: O caminho completo e o nome do módulo.
- Disclosure Date: A data em que a vulnerabilidade foi divulgada publicamente.
- Rank: A classificação de confiabilidade do módulo (por exemplo,
excellent,great,good). - Check: Indica se o módulo possui um método de verificação para saber se um alvo é vulnerável sem explorá-lo.
- Description: Um breve resumo do que o módulo faz.
Sua saída será semelhante a esta (a lista pode ser mais longa e as versões podem diferir):
msf6 > search ssh
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/scanner/ssh/ssh_login 1999-01-01 normal No SSH Login Check Scanner
1 auxiliary/scanner/ssh/ssh_login_pubkey 2002-07-23 normal No SSH Public Key Login Scanner
2 exploit/linux/ssh/libssh_auth_bypass 2018-10-16 great Yes LibSSH Authentication Bypass
3 auxiliary/scanner/ssh/ssh_enumusers 2018-08-20 normal No OpenSSH User Enumeration
4 post/linux/manage/ssh_authorized_keys normal No Linux Manage SSH Authorized Keys
...
Esta pesquisa simples oferece uma visão geral de todos os módulos relacionados a SSH disponíveis.
Filtre os resultados da pesquisa por tipo de módulo como exploit ou auxiliary
Nesta etapa, você aprenderá como refinar seus resultados de pesquisa filtrando por um tipo de módulo específico. A pesquisa anterior retornou vários tipos de módulos, como auxiliary, exploit e post. Frequentemente, você sabe que tipo de módulo precisa.
O Metasploit permite filtrar pesquisas com palavras-chave como type. Os tipos mais comuns são:
exploit: Módulos que se aproveitam de uma vulnerabilidade para obter controle.auxiliary: Módulos para varredura (scanning), fuzzing, sniffing e outras ações que não são exploits diretos.post: Módulos de pós-exploração que são executados em um sistema comprometido.
Vamos refinar nossa pesquisa anterior para encontrar apenas módulos exploit relacionados a SSH. Use o filtro type: em sua consulta de pesquisa:
search type:exploit ssh
A saída agora será limitada a módulos que são classificados como exploits:
msf6 > search type:exploit ssh
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/linux/ssh/libssh_auth_bypass 2018-10-16 great Yes LibSSH Authentication Bypass
1 exploit/multi/ssh/sshexec 2004-01-01 manual No SSH Exec
...
Da mesma forma, se você estivesse procurando um scanner para coletar informações sobre um serviço SSH, pesquisaria por módulos auxiliary:
search type:auxiliary ssh
Este comando retornará uma lista de scanners e outras ferramentas não-exploit para SSH.
msf6 > search type:auxiliary ssh
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/scanner/ssh/ssh_login 1999-01-01 normal No SSH Login Check Scanner
1 auxiliary/scanner/ssh/ssh_enumusers 2018-08-20 normal No OpenSSH User Enumeration
...
Usar filtros de tipo é uma maneira poderosa de encontrar rapidamente o tipo de ferramenta que você precisa.
Pesquise por um identificador CVE específico
Nesta etapa, você aprenderá como pesquisar módulos associados a um identificador específico de Common Vulnerabilities and Exposures (CVE). Quando você souber o ID CVE de uma vulnerabilidade que deseja explorar, esta é a maneira mais direta de encontrar o exploit correspondente.
Um CVE é um identificador exclusivo para uma vulnerabilidade de cibersegurança publicamente conhecida. Os módulos do Metasploit são frequentemente marcados com os CVEs que eles abordam.
Você pode pesquisar por CVE usando o filtro cve:. Por exemplo, vamos pesquisar um módulo relacionado ao CVE-2018-15473, uma vulnerabilidade de enumeração de usuários em algumas versões do OpenSSH.
search cve:2018-15473
Esta pesquisa é muito específica e deve retornar apenas o(s) módulo(s) projetado(s) para explorar essa vulnerabilidade exata.
msf6 > search cve:2018-15473
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/scanner/ssh/ssh_enumusers 2018-08-20 normal No OpenSSH User Enumeration
Como você pode ver, a pesquisa identifica o módulo auxiliar exato para este CVE. Pesquisar por CVE é uma técnica essencial quando você está trabalhando a partir de um relatório de varredura de vulnerabilidade ou de um aviso de segurança.
Use o comando info para visualizar informações detalhadas do módulo
Nesta etapa, você aprenderá como obter informações detalhadas sobre um módulo antes de usá-lo. Após encontrar um módulo promissor, é importante entender o que ele faz, quais opções ele requer e quem o desenvolveu. O comando info fornece tudo isso.
Você pode usar o comando info com o nome completo do módulo ou com seu número de índice do último resultado da pesquisa. Vamos obter mais informações sobre o módulo ssh_enumusers que encontramos na etapa anterior.
Você pode usar o nome completo:
info auxiliary/scanner/ssh/ssh_enumusers
Alternativamente, se ele era o item 0 em sua última pesquisa, você poderia simplesmente usar info 0. Usar o nome completo é geralmente mais confiável.
O comando exibirá uma página detalhada sobre o módulo:
msf6 > info auxiliary/scanner/ssh/ssh_enumusers
Name: OpenSSH User Enumeration
Module: auxiliary/scanner/ssh/ssh_enumusers
License: Metasploit Framework License (BSD)
Rank: Normal
Disclosed: 2018-08-20
Provided by:
Justin Gardner
Check supported:
No
Basic options:
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 22 yes The target port (TCP)
THREADS 1 yes The number of concurrent threads (max one per host)
USER_FILE yes File containing usernames, one per line
Description:
This module enumerates valid usernames on OpenSSH servers by exploiting
a subtle timing discrepancy in the C library's handling of password
authentication.
References:
https://nvd.nist.gov/vuln/detail/CVE-2018-15473
https://www.exploit-db.com/exploits/45233/
Esta saída fornece informações cruciais, incluindo as opções necessárias (RHOSTS, USER_FILE, etc.), uma descrição completa do propósito do módulo e links para as divulgações originais da vulnerabilidade. Sempre revise essas informações antes de usar um módulo.
Selecione um módulo para usar com o comando use
Nesta etapa final, você aprenderá como selecionar um módulo para torná-lo ativo. Uma vez que você identificou e pesquisou um módulo, você precisa carregá-lo no contexto do framework para configurá-lo e executá-lo. Isso é feito com o comando use.
Semelhante ao comando info, use pode ser seguido pelo nome completo do módulo ou seu número de índice dos resultados da pesquisa. Vamos selecionar o módulo ssh_enumusers.
use auxiliary/scanner/ssh/ssh_enumusers
Após executar este comando, você notará que o prompt do Metasploit muda. Ele agora inclui o nome do módulo ativo, indicando que ele está carregado e pronto para configuração.
msf6 > use auxiliary/scanner/ssh/ssh_enumusers
msf6 auxiliary(scanner/ssh/ssh_enumusers) >
O novo prompt msf6 auxiliary(scanner/ssh/ssh_enumusers) > confirma que o módulo está carregado. A partir daqui, você normalmente usaria comandos como show options para ver quais parâmetros precisam ser definidos, set para configurá-los e, finalmente, run ou exploit para executar o módulo. Não executaremos o módulo neste laboratório, mas selecioná-lo é a etapa final essencial no processo de pesquisa.
Para retornar ao prompt principal msf6 >, você pode usar o comando back.
Resumo
Neste laboratório, você aprendeu as habilidades essenciais para encontrar módulos dentro do Metasploit Framework. Agora você é capaz de navegar pelos milhares de módulos disponíveis com precisão e eficiência.
Você praticou o uso dos comandos principais para este processo:
search: Para encontrar módulos com base em palavras-chave como nomes de serviços.search type:<type>: Para filtrar resultados para tipos específicos de módulos comoexploitouauxiliary.search cve:<cveid>: Para identificar módulos associados a uma vulnerabilidade CVE específica.info: Para inspecionar os detalhes, opções e propósito de um módulo.use: Para selecionar e carregar um módulo no contexto do framework.
Dominar essas técnicas de pesquisa é um passo fundamental para se tornar proficiente com o Metasploit. Agora você está bem equipado para encontrar as ferramentas certas para seus futuros engajamentos de testes de penetração.


