Voltar às atualizações
New releaseAug 18, 2026

getsploit v3.0.1

Pesquise e baixe exploits públicos do banco de dados Vulners — online ou totalmente offline a partir de um índice local SQLite FTS5.

Compartilhar

Getsploit

Pesquise e baixe exploits públicos do banco de dados Vulners — online ou totalmente offline a partir de um índice local.

PyPI Python Downloads Stars CI CodeQL OpenSSF Scorecard Coverage Typed Ruff uv License: MIT

Obtenha uma chave de API · Busca no Vulners · Changelog · Arquitetura · Política de segurança

Getsploit pesquisando online, construindo um índice FTS5 local e depois pesquisando e espelhando offline


Por que Getsploit

  • 🔎 Uma consulta, todas as coleções. Exploit-DB, Metasploit, Packet Storm, Zero Day Initiative, proof-of-concepts do GitHub e mais, conforme indexados pelo Vulners.
  • 📴 Funciona com a rede desligada. Um único --update cria um índice local SQLite FTS5 de todo o corpus de exploits; toda busca posterior é uma consulta local.
  • 🧠 Busca o que você digitou. wordpress 4.7, CVE-2024-3094 e ms17-010 correspondem literalmente, enquanto uma expressão de texto completo deliberada ainda recebe a sintaxe FTS5 completa.
  • 📊 Progresso em que você pode confiar. Cada etapa de uma atualização relata números reais, e as duas etapas cujo tamanho não pode ser conhecido dizem isso em vez de inventar uma porcentagem.
  • 🧾 Amigável para pipes. JSON, JSON Lines e registros estáveis separados por tabulação quando a saída é redirecionada. Nenhuma cor ou decoração chega a um formato de máquina.
  • 💾 Mantém a fonte. --mirror grava cada corpo de exploit em seu próprio arquivo.
  • 🔐 Cuidado com seus dados. A chave nunca é um argumento de linha de comando, o arquivo de chave é aberto sem seguir symlinks e o conteúdo baixado nunca é executado.
  • 🧪 Verificado. 100% de cobertura de statements e branches no Python 3.11 até 3.14, em Linux, macOS e Windows.

Instalação

O Getsploit requer Python 3.11 ou mais recente.

$ pipx install getsploit
$ uv tool install getsploit
$ python -m pip install getsploit

Chave de API

Crie uma chave na sua conta Vulners e então exponha-a por meio do ambiente:

$ export VULNERS_API_KEY="your-key"  # pragma: allowlist secret
$env:VULNERS_API_KEY = "your-key"  # pragma: allowlist secret

getsploit --set-key armazena uma chave por meio de um prompt de confirmação oculto, em um arquivo privado dentro do diretório inicial do Getsploit. A variável de ambiente tem precedência sobre esse arquivo e é a melhor escolha para automação. Não existe uma opção --api-key: uma chave passada na linha de comando acaba no histórico do shell e na lista de processos.

A busca online e --update precisam de uma chave. --local e --status não precisam.

Uso

Busca online

$ getsploit CVE-2024-3094
$ getsploit "wordpress 4.7 remote code execution" --count 25

A consulta chega ao Vulners inalterada, portanto sua sintaxe Lucene funciona como documentado:

$ getsploit 'title:wordpress AND description:"code execution"'

--count acima de 100 é paginado de forma transparente; uma única resposta da API nunca carrega mais de 100 documentos.

Busca offline

$ getsploit --update                 # baixa o arquivo e constrói o índice FTS5
$ getsploit --status                 # onde está, tamanho, quantos documentos
$ getsploit --local wordpress 4.7

Palavras de busca comuns são correspondidas literalmente, portanto identificadores e números de versão funcionam como digitados: wordpress 4.7, CVE-2024-3094, ms17-010. Uma consulta que usa filtros de coluna, operadores booleanos, aspas, parênteses, * ou ^ é tratada como uma expressão SQLite FTS5 e relata seu próprio erro quando malformada:

$ getsploit --local 'title:eternalblue AND NOT description:metasploit'

As colunas pesquisáveis são id, title, published, description e source_data. A grafia legada sourceData: ainda é aceita.

Salvando fontes de exploits

$ getsploit --mirror wordpress 4.7
$ getsploit --local --mirror eternalblue

Os arquivos são gravados em um diretório derivado da consulta, um arquivo por exploit, criados sem seguir symlinks e nunca sobrescrevendo nada que já exista.

[!WARNING] Arquivos espelhados são código de terceiros não confiável. Leia-os antes de executá-los.

Saída legível por máquina

$ getsploit --format json CVE-2024-3094
$ getsploit --format jsonl wordpress | jq -r .id
$ getsploit wordpress > results.tsv       # saída redirecionada é separada por tabulação

--json continua sendo um alias para --format json.

Controle do terminal

$ getsploit --color always query | less -R
$ getsploit --color never query

A cor padrão é auto. Um terminal largo recebe uma tabela, um estreito recebe registros empilhados e um fluxo redirecionado recebe valores separados por tabulação — os mesmos dados nos três casos.

Execute getsploit --help para a lista completa de opções.

O banco de dados local

Localização~/.getsploit/getsploit.db, ou $GETSPLOIT_HOME
FormatoSQLite com índice FTS5 de conteúdo externo
Tokenizadorunicode61 remove_diacritics 2
Tamanhoaproximadamente 1,7 GB para o corpus completo
Atualizaçãoatômica: o novo banco de dados substitui o antigo em uma única operação

Uma atualização baixa o arquivo por oito conexões paralelas de range, descompacta e converte-o ao lado do destino, verifica-o e só então faz o commit. O uso de memória não depende do tamanho do arquivo. Uma busca já em execução contra o banco de dados antigo termina contra ele sem interferência.

Categorias