
Busca y descarga exploits públicos de la base de datos de Vulners — en línea, o totalmente sin conexión desde un índice local SQLite FTS5.
Busca y descarga exploits públicos de la base de datos de Vulners — en línea, o totalmente sin conexión desde un índice local.
Obtén una clave API · Búsqueda de Vulners · Registro de cambios · Arquitectura · Política de seguridad

--update crea un índice FTS5 local de SQLite
con todo el corpus de exploits; cualquier búsqueda posterior es una consulta local.wordpress 4.7, CVE-2024-3094 y ms17-010
coinciden literalmente, mientras que una expresión de texto completo deliberada sigue usando toda la sintaxis de FTS5.--mirror escribe el cuerpo de cada exploit en su propio archivo.Getsploit necesita Python 3.11 o superior.
$ pipx install getsploit
$ uv tool install getsploit
$ python -m pip install getsploit
Crea una clave en tu cuenta de Vulners y luego expónla a través del entorno:
$ export VULNERS_API_KEY="your-key" # pragma: allowlist secret
$env:VULNERS_API_KEY = "your-key" # pragma: allowlist secret
getsploit --set-key guarda una clave mediante un aviso de confirmación que oculta la entrada, en un archivo
privado dentro del directorio de Getsploit. El entorno tiene prioridad sobre ese archivo y es
la mejor opción para la automatización. No existe la opción --api-key: una clave pasada por la
línea de comandos termina en el historial del shell y en la lista de procesos.
La búsqueda en línea y --update necesitan una clave. --local y --status no.
$ getsploit CVE-2024-3094
$ getsploit "wordpress 4.7 remote code execution" --count 25
La consulta llega a Vulners sin cambios, por lo que su sintaxis de Lucene funciona tal como está documentada:
$ getsploit 'title:wordpress AND description:"code execution"'
--count por encima de 100 se pagina de forma transparente; una sola respuesta de la API nunca contiene más
de 100 documentos.
$ getsploit --update # descarga el archivo y crea el índice FTS5
$ getsploit --status # dónde está, cuánto ocupa, cuántos documentos tiene
$ getsploit --local wordpress 4.7
Las palabras de búsqueda normales se comparan literalmente, por lo que los identificadores y números de versión funcionan tal
como se escriben: wordpress 4.7, CVE-2024-3094, ms17-010. Una consulta que usa filtros de columna,
operadores booleanos, comillas, paréntesis, * o ^ se trata como una
expresión FTS5 de SQLite y notifica su propio error
cuando está mal formada:
$ getsploit --local 'title:eternalblue AND NOT description:metasploit'
Las columnas en las que se puede buscar son id, title, published, description y source_data. La
grafía heredada sourceData: todavía se acepta.
$ getsploit --mirror wordpress 4.7
$ getsploit --local --mirror eternalblue
Los archivos se guardan en un directorio derivado de la consulta, un archivo por exploit, creado sin seguir enlaces simbólicos y sin sobrescribir nunca nada que ya exista.
[!WARNING] Los archivos reflejados son código de terceros no confiable. Léelos antes de ejecutarlos.
$ getsploit --format json CVE-2024-3094
$ getsploit --format jsonl wordpress | jq -r .id
$ getsploit wordpress > results.tsv # la salida redirigida está separada por tabulaciones
--json sigue siendo un alias de --format json.
$ getsploit --color always query | less -R
$ getsploit --color never query
El color predeterminado es auto. Una terminal ancha muestra una tabla, una estrecha muestra
registros apilados y una secuencia redirigida obtiene valores separados por tabulaciones: los mismos datos en los tres casos.
Ejecuta getsploit --help para ver la lista completa de opciones.
Una actualización descarga el archivo mediante ocho conexiones de rango en paralelo, lo descomprime y convierte junto al destino, lo verifica y solo entonces confirma el cambio. El uso de memoria no depende del tamaño del archivo. Una búsqueda que ya se esté ejecutando contra la base de datos anterior termina contra ella sin interrupciones.
Las bases de datos creadas por Getsploit 2.x siguen siendo consultables; el siguiente --update las migra
de FTS4 a FTS5. Las expresiones de proximidad de FTS4 como one NEAR/5 two deben reescribirse
en la forma NEAR(...) de FTS5.
| Python | 3.11, 3.12, 3.13, 3.14 |
| Sistemas operativos | Linux, macOS, Windows |
| SDK de Vulners | 4.1 y versiones 4.x posteriores |
$ git clone https://github.com/vulnersCom/getsploit.git
$ cd getsploit
$ uv sync --all-groups
$ make check
CONTRIBUTING.md contiene las reglas de contribución y ARCHITECTURE.md los límites de los módulos y los invariantes de la base de datos.
Una versión (release) es una etiqueta v<version> enviada al repositorio. A partir de ahí,
el flujo de trabajo de publicación vuelve a ejecutar todos los controles sobre el
commit etiquetado, publica en PyPI mediante publicación confiable (trusted publishing) y escribe la versión
de GitHub a partir del registro de cambios. No existe ningún token de PyPI que pueda filtrarse.
Los archivos fuente de exploits son contenido no confiable: revísalos antes de abrirlos o ejecutarlos. Getsploit nunca ejecuta lo que descarga.
Las versiones se publican desde GitHub Actions mediante la publicación confiable de PyPI, por lo que no existe ningún token de API de larga duración que pueda filtrarse, y cada artefacto lleva una atestación de procedencia de compilación. Para reportar una vulnerabilidad en Getsploit, sigue SECURITY.md.
MIT © Vulners Team y colaboradores.
| Ubicación | ~/.getsploit/getsploit.db, o $GETSPLOIT_HOME |
| Formato | SQLite con un índice FTS5 de contenido externo |
| Tokenizador | unicode61 remove_diacritics 2 |
| Tamaño | aproximadamente 1.7 GB para el corpus completo |
| Actualización | atómica: la nueva base de datos reemplaza a la anterior en una sola operación |
| Dependencias de ejecución | click, rich, vulners |
| Comando | Propósito |
|---|
make format | Formatear y corregir automáticamente los archivos fuente |
make lint | Verificar formato, lint y tipos |
make test | Ejecutar las pruebas en paralelo |
make coverage | Exigir 100 % de cobertura de sentencias y ramas |
make leaks | Escanear archivos rastreados en busca de secretos |
make build | Compilar la rueda (wheel) y la distribución de código fuente |
make release | Ejecutar todos los controles y validar ambas distribuciones |
make check | Todo lo anterior que condiciona una fusión (merge) |