
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.
Getsploit
Pesquise e baixe exploits públicos do banco de dados Vulners — online ou totalmente offline a partir de um índice local.
Obtenha uma chave de API · Busca no Vulners · Changelog · Arquitetura · Política de segurança

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
--updatecria 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-3094ems17-010correspondem 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.
--mirrorgrava 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 |
| Formato | SQLite com índice FTS5 de conteúdo externo |
| Tokenizador | unicode61 remove_diacritics 2 |
| Tamanho | aproximadamente 1,7 GB para o corpus completo |
| Atualização | atô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.