sploitscan
Outil d'agrégation de CVE et d'exploits. Recherche des CVE à travers NVD, EPSS, CISA KEV et des bases d'exploits pour évaluer le risque et trouver du code d'exploitation disponible. CVE search and exploit aggregation tool. Looks up CVEs across NVD, EPSS, CISA KEV, and exploit databases to assess risk and find available exploit code.
↗ https://github.com/xaitax/SploitScanOverview
SploitScan aggregates CVE intelligence from multiple sources — NVD (CVSS scores), EPSS (exploit probability), CISA KEV (known exploited), ExploitDB, GitHub PoCs, and Nuclei templates. Given a CVE or software version, it quickly shows severity, exploitation likelihood, and available exploit code.
Installation
git clone https://github.com/xaitax/SploitScan
cd SploitScan
pip3 install -r requirements.txt
Basic Usage
Look up a specific CVE
python3 sploitscan.py CVE-2021-44228
Multiple CVEs
python3 sploitscan.py CVE-2021-44228 CVE-2022-0847
Import CVEs from file
python3 sploitscan.py -f cves.txt
Output as JSON
python3 sploitscan.py CVE-2021-44228 -e json
Output Information
For each CVE:
CVE ID — identifier
CVSS Score — severity (0-10)
CVSS Vector — attack complexity, privileges needed, etc.
EPSS Score — probability of exploitation in next 30 days
CISA KEV — whether it's in CISA's Known Exploited Vulnerabilities list
ExploitDB — links to exploit-db entries
GitHub PoCs — links to public proof-of-concept repositories
Nuclei Template — whether a nuclei detection template exists
Patch Status — if/when a patch is available
Example Output
CVE-2021-44228 (Log4Shell)
==========================
CVSS Score: 10.0 (CRITICAL)
EPSS Score: 97.56% (Very High)
CISA KEV: Yes (Added 2021-12-10)
Exploits:
ExploitDB: https://www.exploit-db.com/exploits/51183
GitHub PoC: https://github.com/...
Nuclei Template: Yes (cves/2021/CVE-2021-44228.yaml)
Summary: Unauthenticated RCE via Log4j JNDI lookup.
Risk Prioritization
# EPSS score > 50% = high probability of exploitation
# CISA KEV = actively exploited in the wild
# CVSS 9.0+ = critical severity
# Triage CVE list by risk
python3 sploitscan.py -f cves.txt -e json | \
python3 -c "
import json, sys
data = json.load(sys.stdin)
for cve in sorted(data, key=lambda x: x.get('epss', 0), reverse=True):
print(cve['cve_id'], 'EPSS:', cve.get('epss', 0))
"
Integration Workflows
Post-nmap: research found service versions Example: found Apache 2.4.49 → look up known CVEs
python3 sploitscan.py CVE-2021-41773 CVE-2021-42013
# Post-scanning: research all CVEs from a report
grep "CVE-" nessus_report.txt | grep -oP "CVE-\d{4}-\d+" | sort -u > cves.txt
python3 sploitscan.py -f cves.txt
Daily threat intel check
python3 sploitscan.py $(curl -s https://www.cisa.gov/known-exploited-vulnerabilities-catalog | grep -oP "CVE-\d{4}-\d+" | head -10 | tr '\n' ' ')
Tips
- EPSS score is more actionable than CVSS — a 10.0 CVSS with 0.1% EPSS is less urgent than 7.0 with 95% EPSS
- CISA KEV = actively exploited NOW — patch immediately when in KEV
- A Nuclei template existing means detection is easy — likely being actively scanned for
- Combine with your asset inventory to quickly find what’s vulnerable in your environment
Help / Man page
sploitscan.py [options] [CVE-ID ...]
CVE-ID CVE(s) to look up
-f FILE File with CVE IDs (one per line)
-e FORMAT Export format: json, csv, html
-v Verbose output
Vue d’ensemble
SploitScan agrège des renseignements sur les CVE depuis plusieurs sources : NVD (scores CVSS), EPSS (probabilité d’exploitation), CISA KEV (exploitation connue), ExploitDB, PoC GitHub et templates Nuclei. Pour un CVE ou une version logicielle donnée, il affiche rapidement la sévérité, la probabilité d’exploitation et le code d’exploitation disponible.
Installation
git clone https://github.com/xaitax/SploitScan
cd SploitScan
pip3 install -r requirements.txt
Utilisation de base
# Rechercher un CVE spécifique
python3 sploitscan.py CVE-2021-44228
# Plusieurs CVE
python3 sploitscan.py CVE-2021-44228 CVE-2022-0847
# Importer des CVE depuis un fichier
python3 sploitscan.py -f cves.txt
# Sortie en JSON
python3 sploitscan.py CVE-2021-44228 -e json
Informations en sortie
Pour chaque CVE :
CVE ID : identifiant
CVSS Score : sévérité (0-10)
CVSS Vector : complexité d'attaque, privilèges requis, etc.
EPSS Score : probabilité d'exploitation dans les 30 prochains jours
CISA KEV : présence dans la liste CISA Known Exploited Vulnerabilities
ExploitDB : liens vers les entrées exploit-db
GitHub PoCs : liens vers des dépôts de preuves de concept publics
Nuclei Template : présence d'un template de détection nuclei
Patch Status : si/quand un correctif est disponible
Exemple de sortie
CVE-2021-44228 (Log4Shell)
==========================
CVSS Score: 10.0 (CRITICAL)
EPSS Score: 97.56% (Very High)
CISA KEV: Yes (Added 2021-12-10)
Exploits:
ExploitDB: https://www.exploit-db.com/exploits/51183
GitHub PoC: https://github.com/...
Nuclei Template: Yes (cves/2021/CVE-2021-44228.yaml)
Summary: Unauthenticated RCE via Log4j JNDI lookup.
Priorisation du risque
# Score EPSS > 50% = forte probabilité d'exploitation
# CISA KEV = activement exploité dans la nature
# CVSS 9.0+ = sévérité critique
# Trier une liste de CVE par risque
python3 sploitscan.py -f cves.txt -e json | \
python3 -c "
import json, sys
data = json.load(sys.stdin)
for cve in sorted(data, key=lambda x: x.get('epss', 0), reverse=True):
print(cve['cve_id'], 'EPSS:', cve.get('epss', 0))
"
Workflows d’intégration
Post-nmap : rechercher les versions de service trouvées. Exemple : trouvé Apache 2.4.49 → rechercher les CVE connus
python3 sploitscan.py CVE-2021-41773 CVE-2021-42013
# Post-scanning : rechercher tous les CVE d'un rapport
grep "CVE-" nessus_report.txt | grep -oP "CVE-\d{4}-\d+" | sort -u > cves.txt
python3 sploitscan.py -f cves.txt
Vérification quotidienne de threat intel
python3 sploitscan.py $(curl -s https://www.cisa.gov/known-exploited-vulnerabilities-catalog | grep -oP "CVE-\d{4}-\d+" | head -10 | tr '\n' ' ')
Conseils
- Le score EPSS est plus actionnable que le CVSS : un CVSS de 10.0 avec un EPSS de 0.1% est moins urgent qu’un 7.0 avec 95% d’EPSS
- CISA KEV signifie activement exploité MAINTENANT : patcher immédiatement lorsqu’un CVE est dans le KEV
- L’existence d’un template Nuclei signifie que la détection est facile : probablement activement scanné
- Combiner avec son inventaire d’actifs pour trouver rapidement ce qui est vulnérable dans son environnement
Aide / Page de manuel
sploitscan.py [options] [CVE-ID ...]
CVE-ID CVE(s) to look up
-f FILE File with CVE IDs (one per line)
-e FORMAT Export format: json, csv, html
-v Verbose output