Torna agli aggiornamenti
New releaseAug 18, 2026

getsploit v3.0.1

Cerca e scarica exploit pubblici dal database Vulners — online, oppure completamente offline da un indice locale SQLite FTS5.

Condividi

Getsploit

Cerca e scarica exploit pubblici dal database Vulners — online, o completamente offline da un indice locale.

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

Ottieni una chiave API · Ricerca Vulners · Changelog · Architettura · Politica di sicurezza

Getsploit che cerca online, costruisce un indice FTS5 locale, poi cerca e replica offline


Perché Getsploit

  • 🔎 Una sola query, ogni raccolta. Exploit-DB, Metasploit, Packet Storm, Zero Day Initiative, proof-of-concept GitHub e altro, come indicizzati da Vulners.
  • 📴 Funziona a rete disconnessa. Un singolo --update costruisce un indice SQLite FTS5 locale dell'intero corpus di exploit; ogni ricerca successiva è una query locale.
  • 🧠 Cerca ciò che digiti. wordpress 4.7, CVE-2024-3094 e ms17-010 corrispondono letteralmente, mentre un'espressione full-text intenzionale riceve comunque la sintassi FTS5 completa.
  • 📊 Avanzamento affidabile. Ogni fase di un aggiornamento riporta numeri reali, e le due fasi di cui non si conosce la dimensione lo dicono esplicitamente, invece di inventare una percentuale.
  • 🧾 Pensato per le pipe. JSON, JSON Lines e record separati da tabulazione stabili quando l'output è reindirizzato. Nessun colore o decorazione raggiunge mai un formato machine-readable.
  • 💾 Conserva la sorgente. --mirror scrive il corpo di ogni exploit in un proprio file.
  • 🔐 Attento ai tuoi dati. La chiave non è mai un argomento da riga di comando, il file della chiave viene aperto senza seguire symlink e il contenuto scaricato non viene mai eseguito.
  • 🧪 Verificato. Copertura del 100% di istruzioni e branch su Python 3.11 fino a 3.14, su Linux, macOS e Windows.

Installazione

Getsploit richiede Python 3.11 o successivo.

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

Chiave API

Crea una chiave nel tuo account Vulners, poi esponila tramite l'ambiente:

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

getsploit --set-key salva una chiave tramite un prompt di conferma nascosto, in un file privato nella home di Getsploit. L'ambiente ha la precedenza su quel file ed è la scelta migliore per l'automazione. Non esiste l'opzione --api-key: una chiave passata sulla riga di comando finisce nella cronologia della shell e nell'elenco dei processi.

La ricerca online e --update richiedono una chiave. --local e --status no.

Utilizzo

Ricerca online

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

La query arriva a Vulners invariata, quindi la sua sintassi Lucene funziona come documentato:

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

--count oltre 100 viene impaginato in modo trasparente; una singola risposta API non contiene mai più di 100 documenti.

Ricerca offline

$ getsploit --update                 # scarica l'archivio e costruisce l'indice FTS5
$ getsploit --status                 # dov'è, quanto è grande, quanti documenti contiene
$ getsploit --local wordpress 4.7

Le parole di ricerca ordinarie vengono confrontate letteralmente, quindi identificatori e numeri di versione funzionano come digitati: wordpress 4.7, CVE-2024-3094, ms17-010. Una query che usa filtri di colonna, operatori booleani, virgolette, parentesi, * o ^ viene trattata come una espressione SQLite FTS5 e segnala un proprio errore quando è malformata:

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

Le colonne ricercabili sono id, title, published, description e source_data. È ancora accettata la grafia legacy sourceData:.

Salvataggio delle sorgenti degli exploit

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

I file finiscono in una directory derivata dalla query, un file per exploit, creati senza seguire symlink e senza mai sovrascrivere nulla che esista già.

[!WARNING] I file replicati sono codice di terze parti non affidabile. Leggili prima di eseguirli.

Output leggibile dalle macchine

$ getsploit --format json CVE-2024-3094
$ getsploit --format jsonl wordpress | jq -r .id
$ getsploit wordpress > results.tsv       # l'output reindirizzato è separato da tabulazioni

--json resta un alias per --format json.

Controllo del terminale

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

Il colore predefinito è auto. Un terminale largo ottiene una tabella, uno stretto record impilati e un flusso reindirizzato valori separati da tabulazione — gli stessi dati in tutti e tre i casi.

Esegui getsploit --help per l'elenco completo delle opzioni.

Il database locale

Posizione~/.getsploit/getsploit.db, oppure $GETSPLOIT_HOME
FormatoSQLite con indice FTS5 a contenuto esterno
Tokenizerunicode61 remove_diacritics 2
Dimensionicirca 1,7 GB per l'intero corpus
Aggiornamentoatomico: il nuovo database sostituisce il vecchio con una singola operazione

Un aggiornamento scarica l'archivio tramite otto connessioni di intervallo parallele, lo decomprime e lo converte accanto alla destinazione, lo verifica e solo allora esegue il commit. L'uso della memoria non dipende dalla dimensione dell'archivio. Una ricerca già in esecuzione sul vecchio database termina su di esso senza interferenze.

Categorie