Pesquisando no Exploit-DB via CLI

CibersegurançaBeginner
Pratique Agora

Introdução

No campo da cibersegurança, descobrir uma vulnerabilidade de software é apenas o primeiro passo. Para entender o risco real, os profissionais de segurança precisam preencher a lacuna entre a descoberta e a exploração. O Exploit Database (Exploit-DB) é um arquivo compatível com CVE de exploits públicos e softwares vulneráveis correspondentes, desenvolvido para uso por testadores de penetração e pesquisadores de vulnerabilidades.

Essa ponte é importante porque uma descoberta de vulnerabilidade tem significados práticos diferentes, dependendo da existência de material de exploração público, de quão maduro ele é e das condições que exige. Mapear versões de software para referências de exploits ajuda a transformar uma descoberta bruta em contexto de risco.

Neste laboratório, você aprenderá a usar o searchsploit, a interface de linha de comando oficial do Exploit-DB. Você praticará a atualização do banco de dados local de exploits, a busca por versões específicas de software, a filtragem de grandes conjuntos de resultados e a extração de código-fonte de exploits para análise. Essas habilidades são essenciais para mapear serviços descobertos para vetores de ataque conhecidos.

Atualizar o banco de dados do Searchsploit

Nesta etapa, você aprenderá como garantir que sua cópia local do Exploit Database esteja atualizada.

A ferramenta searchsploit depende de um repositório local de exploits. Como novas vulnerabilidades são descobertas e publicadas diariamente, é crucial atualizar este banco de dados regularmente antes de realizar qualquer pesquisa. Se você pesquisar em um banco de dados desatualizado, poderá perder exploits publicados recentemente para o software que está investigando.

Manter as referências de exploits atualizadas faz parte da higiene de avaliação. Contextos desatualizados podem causar tanto uma falsa sensação de segurança quanto uma urgência equivocada.

Para atualizar o banco de dados, você pode usar a flag de atualização fornecida pelo comando searchsploit. Execute o seguinte comando no seu terminal:

searchsploit -u

Você verá uma saída indicando que a ferramenta está baixando as alterações mais recentes do repositório oficial. A saída será semelhante a esta:

[*] Updating searchsploit...
Already up to date.

Ao executar este comando, seu diretório local /opt/exploitdb é sincronizado com os exploits, shellcodes e artigos mais recentes disponíveis no Exploit-DB.

Nota: O processo de atualização pode levar vários minutos para ser concluído, especialmente ao verificar exploitdb-papers (por exemplo, exibindo Nothing here (/opt/exploitdb-papers). Starting fresh...). Por favor, seja paciente e deixe que ele termine. Se preferir não esperar, você pode pressionar Ctrl+C com segurança para cancelar o processo ou simplesmente abrir uma nova aba do terminal para continuar com o laboratório, já que o banco de dados principal de exploits é atualizado primeiro.

Pesquisar por versão de software

Nesta etapa, você aprenderá como realizar uma pesquisa básica para uma versão específica de software.

Ao escanear um sistema alvo (por exemplo, usando o Nmap), você geralmente descobre a versão exata dos serviços em execução nele. Você pode passar esses números de versão diretamente para o searchsploit para encontrar exploits relevantes. A ferramenta pesquisa nos títulos e descrições dos exploits em seu banco de dados para encontrar correspondências.

É por isso que uma detecção de versão cuidadosa é importante. Quanto melhor for sua identificação de software, mais útil e precisa se torna sua correlação de exploits.

Vamos imaginar que você descobriu um servidor FTP executando o vsftpd 2.3.4. Esta é uma versão notoriamente vulnerável do software. Para pesquisar exploits relacionados a esta versão específica, digite o nome do software e a versão como argumentos:

searchsploit vsftpd 2.3.4

O comando retornará uma tabela formatada mostrando o título do exploit e seu caminho correspondente no banco de dados. Sua saída deve ser assim:

------------------------------------------------------------------------ ---------------------------------
 Exploit Title                                                          |  Path
------------------------------------------------------------------------ ---------------------------------
vsftpd 2.3.4 - Backdoor Command Execution                               | unix/remote/17491.rb
vsftpd 2.3.4 - Backdoor Command Execution (Metasploit)                  | linux/remote/16362.rb
------------------------------------------------------------------------ ---------------------------------
Shellcodes: No Results

Observe que os resultados da pesquisa fornecem uma breve descrição da vulnerabilidade (neste caso, uma Execução de Comando via Backdoor) e o caminho para o arquivo de código do exploit. O número no nome do arquivo (como 17491) é o ID único do Exploit Database (EDB-ID).

Filtrar resultados da pesquisa

Nesta etapa, você aprenderá como refinar suas pesquisas usando filtros.

Às vezes, um termo de pesquisa amplo retornará centenas de resultados, dificultando encontrar o que você precisa. O searchsploit fornece várias flags para ajudar a restringir a saída. Duas das flags mais úteis são -t (que restringe a pesquisa ao título do exploit em vez de todo o caminho do arquivo ou descrição) e --exclude (que remove resultados que contêm palavras específicas).

Suponha que você esteja procurando por exploits de escalonamento de privilégios para o kernel Linux, mas deseja filtrar quaisquer exploits de Negação de Serviço (DoS), pois eles geralmente não são úteis para obter acesso.

Execute o seguinte comando para pesquisar nos títulos por "linux kernel privilege escalation" enquanto exclui o termo "dos":

searchsploit -t linux kernel privilege escalation --exclude="dos"

Você verá uma lista de exploits especificamente adaptados para escalonamento de privilégios em kernels Linux. A saída será extensa, mas será muito mais limpa do que uma pesquisa genérica:

------------------------------------------------------------------------ ---------------------------------
 Exploit Title                                                          |  Path
------------------------------------------------------------------------ ---------------------------------
Linux Kernel - 'BCC' Local Privilege Escalation                         | linux/local/40759.rb
Linux Kernel - 'BPF' Local Privilege Escalation                         | linux/local/40758.rb
Linux Kernel - 'ptrace_traceme' Local Privilege Escalation              | linux/local/47133.c
...
------------------------------------------------------------------------ ---------------------------------

Usar essas técnicas de filtragem permite que você identifique rapidamente o tipo exato de exploit que precisa para o seu cenário específico.

Examinar detalhes do código do exploit

Nesta etapa, você aprenderá como extrair e examinar o código real do exploit.

Encontrar um exploit é apenas parte do processo; você também deve ler e entender o código antes de executá-lo. Executar exploits desconhecidos pode ser perigoso ou pode exigir modificações específicas (como alterar o endereço IP ou a porta do alvo) para funcionar corretamente.

O searchsploit permite que você copie (espelhe) facilmente um exploit para seu diretório de trabalho atual usando a flag -m seguida pelo EDB-ID. Vamos extrair o exploit do vsftpd 2.3.4 que encontramos na Etapa 2, que tinha o EDB-ID 17491.

Execute o seguinte comando para espelhar o exploit para o seu diretório ~/project:

searchsploit -m 17491

Você deve ver uma saída confirmando que o arquivo foi copiado:

  Exploit: vsftpd 2.3.4 - Backdoor Command Execution
      URL: https://www.exploit-db.com/exploits/17491
     Path: /opt/exploitdb/exploits/unix/remote/17491.rb
    Codes: CVE-2011-2523, OSVDB-73573
 Verified: True
File Type: Ruby script, ASCII text
Copied to: /home/labex/project/17491.rb

Agora que o arquivo 17491.rb está no seu diretório atual, você pode examinar seu conteúdo usando um leitor de texto como cat ou um editor como nano. Execute o seguinte comando para visualizar as primeiras linhas do código do exploit:

head -n 20 17491.rb

A saída exibirá o código-fonte Ruby para o módulo Metasploit, permitindo que você leia os comentários, entenda a vulnerabilidade (um backdoor malicioso deixado no código-fonte) e veja como o exploit a aciona.

Resumo

Neste laboratório, você aprendeu como usar efetivamente o searchsploit para navegar no Exploit Database diretamente da linha de comando. Você começou atualizando o banco de dados local para garantir que possui as informações de vulnerabilidade mais recentes. Em seguida, realizou pesquisas direcionadas com base em versões específicas de software e aprendeu a filtrar resultados indesejados usando flags de exclusão. Finalmente, você praticou a extração do código-fonte do exploit para seu espaço de trabalho local para revisão e análise seguras. Essas técnicas são fundamentais para fluxos de trabalho de avaliação de vulnerabilidades e testes de penetração.