
CVE2PoC is a tool that helps penetration testers, bug hunters, and security researchers quickly find public exploits or PoCs related to a CVE ID
CVE2PoC — это инструмент, который помогает пентестерам, баг-хантерам и исследователям безопасности быстро находить публичные эксплойты, подтверждения концепции (PoC) и бюллетени безопасности, связанные с идентификатором CVE.
CVE2PoC можно установить с помощью pipx или uv.
pipx install git+https://github.com/0liverFlow/cve2poc
uv tool install git+https://github.com/0liverFlow/CVE2PoC
uvx git+https://github.com/0liverFlow/CVE2PoC
Использование CVE2PoC интуитивно понятно. Вы можете просто указать идентификатор CVE.
Обратитесь к меню помощи и разделу демонстрации ниже, чтобы лучше понять возможности инструмента.
usage: cve2poc.py [-h] [-x] [-d] [-f FILE] [-o OUTPUT] [-l LANGUAGE] [--limit LIMIT] [-t] [--labs CVE ID]
[--bugbounty-reports CVE ID] [--mitigations CVE ID] [--cve2cpe CVE ID] [--cpe2cve CPE] [-s FILE]
[--api-keys] [--no-banner]
[cve]
Простой, но мощный инструмент для быстрого поиска PoC, связанных с CVE ID
позиционные аргументы:
cve CVE ID
опции:
-h, --help показать это справочное сообщение и выйти
-x , --examine Просмотреть README-файл эксплойта
-d, --description Показать описание CVE ID
-f FILE, --file FILE Указать файл со списком CVE ID
-o OUTPUT, --output OUTPUT Каталог для сохранения отчётов
-l LANGUAGE, --language LANGUAGE Фильтровать PoC по языку программирования
--limit LIMIT Количество отображаемых PoC
-t , --threads Количество параллельных потоков
--labs CVE ID Поиск предварительно настроенных Docker-сред и практических лабораторий, связанных с CVE ID
--bugbounty-reports CVE ID Поиск отчётов баг-баунти, связанных с CVE ID
--mitigations CVE ID Шаги по устранению уязвимости
--cve2cpe CVE ID Получение CPE, связанных с CVE ID
--cpe2cve CPE Получение CVE, связанных с CPE
-s FILE, --save FILE Выходной файл для сохранения результатов CPE2CVE
--api-keys Настройка ключей API GitHub и NVD (необязательно)
--no-banner Убрать баннер
Выполните эту команду, чтобы найти публичные эксплойты, связанные с CVE ID:
cve2poc <CVE ID>

По умолчанию инструмент возвращает топ-10 эксплойтов, отсортированных по звёздам и форкам. Кроме того, он ищет модули Metasploit, шаблоны Nuclei и эксплойты Exploit-DB, связанные с указанным CVE ID.
Чтобы найти несколько CVE, укажите файл со списком CVE ID (один CVE на строку) с помощью флага -f:
cve2poc -f <file>


По умолчанию CVE2PoC автоматически создаёт подробные отчёты в форматах JSON и HTML в текущем каталоге. Чтобы использовать другой выходной каталог, используйте флаг
-o.
Чтобы протестировать эту возможность, используйте предоставленные образцы файлов.
Приведённая ниже команда возвращает описание CVE ID, а также дополнительные ссылки для лучшего понимания уязвимости:
cve2poc --description <CVE ID>

CVE2PoC можно использовать для поиска готовых Docker-сред и практических лабораторий, чтобы безопасно понять и протестировать эксплойты перед их использованием в реальных условиях, снижая риск сбоев в производстве.
cve2poc --labs <CVE ID>

Отчёты о баг-баунти могут быть полезны для лучшего понимания того, как CVE был использован в реальных сценариях. Они также могут содержать PoC, которые помогут вам воспроизвести уязвимость.
cve2poc --bugbounty-reports <CVE ID>

Чтобы быстро определить шаги по устранению уязвимости, используйте эту команду:
cve2poc --mitigations <CVE ID>

CVE2PoC имеет функцию, аналогичную searchsploit -x, которая позволяет читать README-файл эксплойта прямо из терминала. Это удобно, особенно если вам нужно быстро понять, как работает эксплойт, не используя браузер.
Чтобы просмотреть документацию эксплойта, используйте эту команду:
cve2poc --examine <GitHub Clone URL>

GitHub Clone URL — это URL, возвращаемый CVE2PoC для каждого PoC.
Чтобы получить CVE ID, связанные с CPE, выполните эту команду:
cve2poc --cpe2cve <CPE>

Чтобы получить CPE, связанные с CVE ID, выполните эту команду:
cve2poc --cve2cpe <CVE ID>

CVE2PoC имеет функцию, которая помогает искать PoC, написанные на определённом языке программирования. Чтобы использовать её, выполните эту команду:
cve2poc <CVE ID> --language <Programming Language>

По умолчанию CVE2PoC возвращает топ-10 эксплойтов, найденных на GitHub. Тем не менее, вы можете отобразить больше или меньше эксплойтов с помощью флага --limit:
cve2poc <CVE ID> --limit <N>

N должно быть больше или равно 1.
CVE2PoC использует argcomplete для автоматического автодополнения при нажатии Tab через argparse.
sudo apt install python3-argcomplete
# Для Bash
register-python-argcomplete cve2poc >> ~/.bashrc
source ~/.bashrc
# Для Zsh
register-python-argcomplete cve2poc >> ~/.zshrc
source ~/.zshrc
CVE2PoC использует ruff для линтинга и форматирования.
# Запустить линтер
uv run ruff check .
# Запустить линтер с автоисправлением
uv run ruff check --fix .
# Запустить форматтер
uv run ruff format .
Огромное спасибо следующим источникам, на которые опирается CVE2PoC:
Этот инструмент предназначен только для образовательных, исследовательских и авторизованных целей тестирования безопасности. Используйте его только на системах, которыми вы владеете или на которые имеете явное разрешение для проверки. Автор не несёт ответственности за любое неправомерное использование или ущерб, возникший в результате его использования.