
Pesquise e baixe exploits públicos do banco de dados Vulners — online ou totalmente offline a partir de um índice local SQLite FTS5.
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

--update cria um índice local SQLite FTS5 de
todo o corpus de exploits; toda busca posterior é uma consulta local.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.--mirror grava cada corpo de exploit em seu próprio arquivo.O Getsploit requer Python 3.11 ou mais recente.
$ pipx install getsploit
$ uv tool install getsploit
$ python -m pip install getsploit
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.
$ 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.
$ 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.
$ 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.
$ 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.
$ 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.
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.
Bancos de dados criados pelo Getsploit 2.x permanecem pesquisáveis; o próximo --update os migra
de FTS4 para FTS5. Expressões de proximidade FTS4, como one NEAR/5 two, devem ser reescritas
na forma FTS5 NEAR(...).
| Python | 3.11, 3.12, 3.13, 3.14 |
| Sistemas operacionais | Linux, macOS, Windows |
| SDK do Vulners | 4.1 e 4.x mais recentes |
$ git clone https://github.com/vulnersCom/getsploit.git
$ cd getsploit
$ uv sync --all-groups
$ make check
CONTRIBUTING.md contém as regras de contribuição e ARCHITECTURE.md os limites dos módulos e as invariantes do banco de dados.
Um release é uma tag v<versão> enviada ao repositório. A partir dela,
o workflow de release reexecuta o portão completo no commit
marcado, publica no PyPI por meio de trusted publishing e grava o release no GitHub
a partir do changelog. Não existe token PyPI para vazar.
Arquivos-fonte de exploits são conteúdo não confiável: revise-os antes de abrir ou executar. O Getsploit em si nunca executa o que baixa.
Releases são publicados a partir do GitHub Actions por meio de trusted publishing do PyPI, portanto não existe token de API de longa duração para vazar, e todo artefato carrega uma atestação de proveniência de build. Para relatar uma vulnerabilidade no Getsploit, siga SECURITY.md.
MIT © Vulners Team e colaboradores.
| 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 |
| Dependências de runtime |
click, rich, vulners |
| Comando | Finalidade |
|---|
make format | Formatar e corrigir automaticamente os arquivos-fonte |
make lint | Verificar formatação, lint e tipos |
make test | Executar testes em paralelo |
make coverage | Garantir 100% de cobertura de statements e branches |
make leaks | Verificar segredos em arquivos rastreados |
make build | Criar a wheel e a distribuição de código-fonte |
make release | Executar todos os portões e validar ambas as distribuições |
make check | Tudo acima que bloqueia um merge |