← retour aux outils back to tools

# 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/SploitScan

## Overview

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