
CVE2PoC는 침투 테스터, 버그 헌터, 보안 연구원이 특정 CVE ID와 관련된 공개 익스플로잇 또는 PoC를 빠르게 찾을 수 있도록 도와주는 도구입니다.
CVE2PoC는 침투 테스터, 버그 헌터, 보안 연구자들이 CVE ID와 관련된 공개 익스플로잇, 개념 증명(PoC), 권고문을 빠르게 찾을 수 있도록 도와주는 도구입니다.
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 ID만 지정하면 됩니다.
도구의 기능을 더 잘 이해하려면 아래의 도움말 메뉴와 데모 섹션을 참조하세요.
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]
A simple yet powerful tool to quickly find PoCs related to a CVE ID
positional arguments:
cve CVE ID
options:
-h, --help show this help message and exit
-x , --examine Examine an exploit's README file
-d, --description Display a CVE ID description
-f FILE, --file FILE Specify a file containing a list of CVE IDs
-o OUTPUT, --output OUTPUT Output directory to store the reports
-l LANGUAGE, --language LANGUAGE Filter PoCs by programming language
--limit LIMIT Number of PoCs to display
-t , --threads Number of concurrent threads
--labs CVE ID Search pre-built docker environments and Hands-on labs related to a CVE ID
--bugbounty-reports CVE ID Search Bug Bounty reports related to a CVE ID
--mitigations CVE ID Remediation steps to fix a vulnerability
--cve2cpe CVE ID Retrieve CPEs related to a CVE ID
--cpe2cve CPE Retrieve CVEs related to a CPE
-s FILE, --save FILE Output file to save CPE2CVE results
--api-keys Configure your GitHub and NVD API keys (Not required)
--no-banner Remove banner
CVE ID와 관련된 공개 익스플로잇을 검색하려면 다음 명령을 실행하세요:
cve2poc <CVE ID>

기본적으로 이 도구는 star와 fork 수를 기준으로 정렬된 상위 10개 익스플로잇을 반환합니다.
또한 지정된 CVE ID와 관련된 Metasploit 모듈, Nuclei 템플릿, Exploit-DB 익스플로잇도 검색합니다.
여러 CVE를 검색하려면 -f 플래그를 사용하여 CVE ID 목록(줄마다 하나의 CVE)이 포함된 파일을 지정하세요:
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은 CVE2PoC가 각 PoC에 대해 반환하는 URL입니다.
CPE와 관련된 CVE ID를 조회하려면 다음 명령을 실행하세요:
cve2poc --cpe2cve <CPE>

CVE ID와 관련된 CPE를 조회하려면 다음 명령을 실행하세요:
cve2poc --cve2cpe <CVE ID>

CVE2PoC에는 특정 프로그래밍 언어로 작성된 PoC를 검색하는 데 도움이 되는 기능이 있습니다. 사용하려면 다음 명령을 실행하세요:
cve2poc <CVE ID> --language <Programming Language>

기본적으로 CVE2PoC는 GitHub에서 찾은 상위 10개 익스플로잇을 반환합니다. 그러나 --limit 플래그를 사용하여 익스플로잇 표시 개수를 늘리거나 줄일 수 있습니다:
cve2poc <CVE ID> --limit <N>

N은 1보다 크거나 같아야 합니다.
CVE2PoC는 argcomplete를 사용하여 argparse를 통한 탭 완성을 자동으로 수행합니다.
sudo apt install python3-argcomplete
# For Bash
register-python-argcomplete cve2poc >> ~/.bashrc
source ~/.bashrc
# For Zsh
register-python-argcomplete cve2poc >> ~/.zshrc
source ~/.zshrc
CVE2PoC는 린팅과 포맷팅에 ruff를 사용합니다.
# Run linter
uv run ruff check .
# Run linter with auto-fix
uv run ruff check --fix .
# Run formatter
uv run ruff format .
CVE2PoC가 의존하는 다음 소스에 크게 감사드립니다:
이 도구는 교육, 연구, 그리고 승인된 보안 테스트 목적으로만 사용해야 합니다. 소유한 시스템이나 명시적인 평가 허가를 받은 시스템에서만 사용하세요. 저자는 이 도구의 사용으로 인한 오용이나 손해에 대해 책임을 지지 않습니다.