
getsploit v3.0.1
Ищите и скачивайте публичные эксплойты из базы данных Vulners — онлайн или полностью офлайн, из локального индекса SQLite FTS5.
Getsploit
Поиск и загрузка публичных эксплойтов из базы Vulners — онлайн или полностью офлайн по локальному индексу.
Получить API-ключ · Поиск Vulners · Журнал изменений · Архитектура · Политика безопасности

Почему Getsploit
- 🔎 Один запрос — все коллекции. Exploit-DB, Metasploit, Packet Storm, Zero Day Initiative, GitHub proof-of-concept и другие, проиндексированные Vulners.
- 📴 Работает без сети. Одна команда
--updateсоздаёт локальный SQLite FTS5-индекс всего корпуса эксплойтов; каждый последующий поиск выполняется локально. - 🧠 Ищет то, что вы ввели.
wordpress 4.7,CVE-2024-3094иms17-010сопоставляются буквально, а осознанное полнотекстовое выражение по-прежнему получает полный синтаксис FTS5. - 📊 Прогресс, которому можно доверять. Каждый этап обновления сообщает реальные цифры, а два этапа, чей объём заранее неизвестен, честно говорят об этом, вместо того чтобы выдумывать проценты.
- 🧾 Удобно для конвейеров. JSON, JSON Lines и стабильные записи, разделённые табуляцией, при перенаправлении вывода. Никакой цвет или оформление не попадает в машинный формат.
- 💾 Сохраняет исходники.
--mirrorзаписывает тело каждого эксплойта в отдельный файл. - 🔐 Бережно относится к вашим данным. Ключ никогда не передаётся как аргумент командной строки, файл ключа открывается без перехода по символическим ссылкам, а загруженное содержимое никогда не выполняется.
- 🧪 Проверено. 100% покрытие операторов и ветвлений на Python 3.11–3.14, в Linux, macOS и Windows.
Установка
Для Getsploit требуется Python 3.11 или новее.
$ pipx install getsploit
$ uv tool install getsploit
$ python -m pip install getsploit
API-ключ
Создайте ключ в вашем аккаунте Vulners, затем укажите его через переменную окружения:
$ export VULNERS_API_KEY="your-key" # pragma: allowlist secret
$env:VULNERS_API_KEY = "your-key" # pragma: allowlist secret
getsploit --set-key сохраняет ключ через скрытый запрос подтверждения в приватном
файле в домашнем каталоге Getsploit. Переменная окружения имеет приоритет над этим
файлом и лучше подходит для автоматизации. Опции --api-key не существует: ключ,
переданный в командной строке, попадает в историю shell и в список процессов.
Для онлайн-поиска и --update нужен ключ. Для --local и --status — нет.
Использование
Онлайн-поиск
$ getsploit CVE-2024-3094
$ getsploit "wordpress 4.7 remote code execution" --count 25
Запрос передаётся в Vulners без изменений, поэтому его синтаксис Lucene работает как описано в документации:
$ getsploit 'title:wordpress AND description:"code execution"'
--count больше 100 прозрачно разбивается на страницы; один ответ API никогда
не содержит более 100 документов.
Офлайн-поиск
$ getsploit --update # скачать архив и построить FTS5-индекс
$ getsploit --status # где находится, размер, количество документов
$ getsploit --local wordpress 4.7
Обычные поисковые слова сопоставляются буквально, поэтому идентификаторы и номера
версий работают как введённые: wordpress 4.7, CVE-2024-3094, ms17-010. Запрос,
использующий фильтры по колонкам, логические операторы, кавычки, скобки, * или ^,
обрабатывается как выражение SQLite FTS5
и при некорректном синтаксисе сообщает собственную ошибку:
$ getsploit --local 'title:eternalblue AND NOT description:metasploit'
Поисковые колонки: id, title, published, description и source_data.
Устаревшее написание sourceData: по-прежнему принимается.
Сохранение исходников эксплойтов
$ getsploit --mirror wordpress 4.7
$ getsploit --local --mirror eternalblue
Файлы сохраняются в каталог, определяемый запросом, по одному файлу на эксплойт; каталог создаётся без перехода по символическим ссылкам и никогда не перезаписывает уже существующие файлы.
[!WARNING] Зеркалированные файлы — это недоверенный сторонний код. Прочитайте их перед запуском.
Машиночитаемый вывод
$ getsploit --format json CVE-2024-3094
$ getsploit --format jsonl wordpress | jq -r .id
$ getsploit wordpress > results.tsv # при перенаправлении вывод разделён табуляцией
--json остаётся псевдонимом для --format json.
Управление терминалом
$ getsploit --color always query | less -R
$ getsploit --color never query
Цвет по умолчанию — auto. На широком терминале выводится таблица, на узком — записи
друг под другом, а при перенаправлении потока — значения, разделённые табуляцией:
в любом случае это одни и те же данные.
Выполните getsploit --help, чтобы увидеть полный список опций.
Локальная база данных
| Расположение | ~/.getsploit/getsploit.db или $GETSPLOIT_HOME |
| Формат | SQLite с индексом FTS5 для внешнего содержимого |
| Токенизатор | unicode61 remove_diacritics 2 |
| Размер | примерно 1.7 ГБ для полного корпуса |
| Обновление | атомарно: новая база заменяет старую одной операцией |
При обновлении архив скачивается по восьми параллельным range-соединениям, распаковывается и конвертируется рядом с целевым расположением, проверяется и только затем фиксируется. Использование памяти не зависит от размера архива. Уже запущенный поиск по старой базе продолжает работать с ней без помех.