Skip to content

Commit 5387792

Browse files
committed
[25. February 2025] - Version 0.13.0
Solving #42 & #39
1 parent deb60ab commit 5387792

File tree

6 files changed

+580
-201
lines changed

6 files changed

+580
-201
lines changed

CHANGELOG.md

+14
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
# 📆 Changelog
22

3+
## [25. February 2025] - Version 0.13.0
4+
5+
- **Google Gemini, xAI Grok & DeepSeek Integration**
6+
Added support for multiple AI providers in risk assessment. Users can now choose between OpenAI ChatGPT, Google Gemini, Grok AI or DeepSeek via the new `--ai` option.
7+
8+
- **Local CVE Database Update & Cloning**
9+
Implemented update (`--local`) functionality for the CVE List V5 repository. SploitScan now clones (or pulls updates from) the full CVE List V5 repository locally.
10+
11+
- **Keyword-Based CVE Search Across Sources**
12+
Enhanced the search functionality to allow users to search for keywords via `--keywords` (e.g., "Apple") across both the local CVE database and remote sources (CISA and Nuclei Templates). All matching CVEs are automatically looked up by SploitScan to search for associated exploits.
13+
14+
- **Fast Mode for Streamlined Output**
15+
Introduced a fast mode (`--fast-mode`) that limits the output to only basic CVE information, bypassing additional lookups (such as public exploits, EPSS, and risk assessments) for quicker results.
16+
317
## [26. January 2025] - Version 0.12.0
418

519
- **CVSS Parsing Enhancements**

README.md

+145-44
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,51 @@ SploitScan is a powerful and user-friendly tool designed to streamline the proce
2323
- 🫱🏼‍🫲🏽 [Contributing](#-contributing)
2424
- 📌 [Author](#-author)
2525
- 📆 [Changelog](#-changelog)
26-
- 📚 [References](#-references)
2726

2827
## 🌟 Features
2928

30-
- **CVE Information Retrieval**: Fetches CVE details from the National Vulnerability Database.
31-
- **EPSS Integration**: Includes Exploit Prediction Scoring System (EPSS) data, offering a probability score for the likelihood of CVE exploitation, aiding in prioritization.
32-
- **Public Exploits Aggregation**: Gathers publicly available exploits, enhancing the understanding of vulnerabilities.
33-
- **CISA KEV**: Shows if the CVE has been listed in the Known Exploited Vulnerabilities (KEV) of CISA.
34-
- **AI-Powered Risk Assessment**: Leverages OpenAI to provide detailed risk assessments, potential attack scenarios, mitigation recommendations, and executive summaries.
35-
- **HackerOne Reports**: Shows if the CVE was used within HackerOne Bug Bounty programs including their total rank overall and severity distribution.
36-
- **Patching Priority System**: Evaluates and assigns a priority rating for patching based on various factors including public exploits availability.
37-
- **Multi-CVE Support and Export Options**: Supports multiple CVEs in a single run and allows exporting the results to HTML, JSON and CSV formats.
38-
- **Vulnerability Scanner Import**: Import vulnerability scans from popular vulnerability scanners and search directly for known exploits.
39-
- **Granular Method Selection**: Only specific methods (e.g., `cisa`, `epss`, `hackerone`, `ai`, etc.), giving you control over what data you want to retrieve.
40-
- **User-Friendly Interface**: Easy to use, providing clear and concise information.
41-
- **Comprehensive Security Tool**: Ideal for quick security assessments and staying informed about recent vulnerabilities.
29+
- **CVE Information Retrieval**
30+
Retrieve detailed information about vulnerabilities.
31+
32+
- **EPSS Integration**
33+
Check the likelihood of exploitation with data from the Exploit Prediction Scoring System.
34+
35+
- **Public Exploits Aggregation**
36+
Collect publicly available exploit data to help you understand the context of each vulnerability.
37+
38+
- **CISA KEV Integration**
39+
Quickly see if a vulnerability is listed in CISA’s Known Exploited Vulnerabilities catalog.
40+
41+
- **AI-Powered Risk Assessment**
42+
Get risk assessments using multiple AI providers (OpenAI ChatGPT, Google Gemini, Grok AI, or DeepSeek) that explain potential risks and offer mitigation ideas.
43+
44+
- **HackerOne Reports**
45+
Find out if a vulnerability has been involved in HackerOne bug bounty reports, including basic ranking and severity details.
46+
47+
- **Patching Priority System**
48+
Receive a simple priority rating for patching based on CVSS, EPSS, and available exploit information.
49+
50+
- **Multi-CVE Support and Export Options**
51+
Work with multiple CVEs at once and export the results to HTML, JSON, or CSV formats.
52+
53+
- **Vulnerability Scanner Import**
54+
Import scan results from popular vulnerability scanners (Nessus, Nexpose, OpenVAS, Docker) to directly search for known exploits.
55+
56+
- **Granular Method Selection**
57+
Choose which specific data retrieval methods to run (such as CISA, EPSS, HackerOne, AI, etc.) so you only get the information you need.
58+
59+
- **Local CVE Database Update & Cloning**
60+
Maintain a local copy of the CVE List V5 repository. This lets you update the full CVE data on your machine for offline use and search.
61+
62+
- **Keyword-Based CVE Search Across Sources**
63+
Search for CVEs by keywords (for example, “Apple”) across both your local database and remote sources like CISA and Nuclei Templates.
64+
65+
- **Fast Mode for Streamlined Output**
66+
Use fast mode to display only the basic CVE information, skipping extra lookups for quicker results.
67+
68+
- **User-Friendly Interface**
69+
Enjoy a clear and straightforward interface that presents all the information in an easy-to-read format.
70+
4271

4372
![sploitscan_v0 10 4](https://github.com/user-attachments/assets/4f0ff4fd-9fb4-453f-92a2-f12f41714edd)
4473

@@ -83,6 +112,9 @@ apt install sploitscan
83112

84113
- **VulnCheck**: Sign up for a free account at [VulnCheck](https://vulncheck.com/) to get your API key.
85114
- **OpenAI**: Create an account and get an API key at [OpenAI](https://platform.openai.com/signup/).
115+
- **Google Gemini**: Create an account and get an API key at [Google AI Studio](https://aistudio.google.com/app/apikey).
116+
- **xAI Grok**: Create an account and get an API key at [xAI](https://x.ai/api).
117+
- **DeepSeek**: Create an account and get an API key at [DeepSeek](https://platform.deepseek.com/api_keys).
86118

87119
### Configuration File
88120

@@ -104,45 +136,53 @@ A typical `config.json` might look like this:
104136

105137
```json
106138
{
107-
"vulncheck_api_key": "your_vulncheck_api_key",
108-
"openai_api_key": "your_openai_api_key"
139+
"vulncheck_api_key": "",
140+
"openai_api_key": "",
141+
"google_api_key": "",
142+
"grok_api_key": "",
143+
"deepseek_api_key": ""
109144
}
110145
```
111146

112147
## 🚀 Usage
113148

114149
```shell
115-
$ sploitscan.py -h
150+
$ python .\sploitscan.py -h
116151

117152
███████╗██████╗ ██╗ ██████╗ ██╗████████╗███████╗ ██████╗ █████╗ ███╗ ██╗
118153
██╔════╝██╔══██╗██║ ██╔═══██╗██║╚══██╔══╝██╔════╝██╔════╝██╔══██╗████╗ ██║
119154
███████╗██████╔╝██║ ██║ ██║██║ ██║ ███████╗██║ ███████║██╔██╗ ██║
120155
╚════██║██╔═══╝ ██║ ██║ ██║██║ ██║ ╚════██║██║ ██╔══██║██║╚██╗██║
121156
███████║██║ ███████╗╚██████╔╝██║ ██║ ███████║╚██████╗██║ ██║██║ ╚████║
122157
╚══════╝╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═══╝
123-
v0.12.0 / Alexander Hagenah / @xaitax / [email protected]
158+
v0.13.0 / Alexander Hagenah / @xaitax / [email protected]
124159

125-
usage: sploitscan.py [-h] [-e {json,JSON,csv,CSV,html,HTML}] [-t {nessus,nexpose,openvas,docker}] [-m METHODS] [-i IMPORT_FILE] [-c CONFIG] [-d] [cve_ids ...]
160+
usage: sploitscan.py [-h] [-e {json,csv,html}] [-t {nessus,nexpose,openvas,docker}] [--ai {openai,google,grok,deepseek}] [-k KEYWORDS [KEYWORDS ...]] [-local] [-f] [-m METHODS] [-i IMPORT_FILE] [-c CONFIG] [-d] [cve_ids ...]
126161

127-
SploitScan: Retrieve and display vulnerability data as well as public exploits for given CVE ID(s).
162+
SploitScan: Retrieve and display vulnerability and exploit data for specified CVE ID(s).
128163

129164
positional arguments:
130-
cve_ids Enter one or more CVE IDs to fetch data. Separate multiple CVE IDs with spaces. Format for each ID: CVE-YYYY-NNNNN. This argument is optional if an import file is provided
131-
using the -i option.
165+
cve_ids Enter one or more CVE IDs (e.g., CVE-YYYY-NNNNN). This is optional if an import file is provided via -i.
132166

133167
options:
134168
-h, --help show this help message and exit
135-
-e {json,JSON,csv,CSV,html,HTML}, --export {json,JSON,csv,CSV,html,HTML}
136-
Optional: Export the results to a JSON, CSV, or HTML file. Specify the format: 'json', 'csv', or 'html'.
169+
-e {json,csv,html}, --export {json,csv,html}
170+
Export the results in the specified format ('json', 'csv', or 'html').
137171
-t {nessus,nexpose,openvas,docker}, --type {nessus,nexpose,openvas,docker}
138-
Specify the type of the import file: 'nessus', 'nexpose', 'openvas' or 'docker'.
172+
Specify the type of the import file ('nessus', 'nexpose', 'openvas', or 'docker').
173+
--ai {openai,google,grok,deepseek}
174+
Select the AI provider for risk assessment (e.g., 'openai', 'google', 'grok', or 'deepseek').
175+
-k KEYWORDS [KEYWORDS ...], --keywords KEYWORDS [KEYWORDS ...]
176+
Search for CVEs related to specific keywords (e.g., product name).
177+
-local, --local-database
178+
Download the cvelistV5 repository into the local directory. Use the local database over online research if available.
179+
-f, --fast-mode Enable fast mode: only display basic CVE information without fetching additional exploits or data.
139180
-m METHODS, --methods METHODS
140-
Specify which methods to run, separated by commas. Options: 'cisa', 'epss', 'hackerone', 'ai', 'prio', 'references', etc.
181+
Specify which methods to run, separated by commas (e.g., 'cisa,epss,hackerone,ai,prio,references').
141182
-i IMPORT_FILE, --import-file IMPORT_FILE
142-
Path to an import file. If used, CVE IDs can be omitted from the command line arguments. Expected file type is a plain text file with one CVE per line. Vulnerability scanner
143-
files can be imported also with the --type argument to specify the correct type
183+
Path to an import file. When provided, positional CVE IDs can be omitted. The file should be a plain text list with one CVE per line.
144184
-c CONFIG, --config CONFIG
145-
Path to a custom config file.
185+
Path to a custom configuration file.
146186
-d, --debug Enable debug output.
147187
```
148188
@@ -158,6 +198,77 @@ sploitscan CVE-2024-1709
158198
sploitscan CVE-2024-1709 CVE-2024-21413
159199
```
160200
201+
### Local CVE Database Update
202+
203+
You can now update (or initially clone) the full CVE List V5 repository locally by using the `--local` option. Note that this repository is several GB in size, so the download may take a while. For example:
204+
205+
```bash
206+
sploitscan -local
207+
208+
███████╗██████╗ ██╗ ██████╗ ██╗████████╗███████╗ ██████╗ █████╗ ███╗ ██╗
209+
██╔════╝██╔══██╗██║ ██╔═══██╗██║╚══██╔══╝██╔════╝██╔════╝██╔══██╗████╗ ██║
210+
███████╗██████╔╝██║ ██║ ██║██║ ██║ ███████╗██║ ███████║██╔██╗ ██║
211+
╚════██║██╔═══╝ ██║ ██║ ██║██║ ██║ ╚════██║██║ ██╔══██║██║╚██╗██║
212+
███████║██║ ███████╗╚██████╔╝██║ ██║ ███████║╚██████╗██║ ██║██║ ╚████║
213+
╚══════╝╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═══╝
214+
v0.13.0 / Alexander Hagenah / @xaitax / [email protected]
215+
216+
📥 Cloning CVE List V5 into 'C:\Users\ah/.sploitscan\cvelistV5'.
217+
⚠️ Warning: The repository is several GB in size and the download may take a while.
218+
🔄 Progress: 100.00% - 940.62 MiB | 4.97 MiB/s
219+
✅ CVE List V5 cloned successfully.
220+
```
221+
222+
### Keyword-Based Search Across Sources
223+
224+
Search for CVEs by keywords (e.g., "Apple") across the local database, CISA, and Nuclei Templates.
225+
226+
> [!TIP]
227+
> This can replace more or less replace [searchsploit](https://www.exploit-db.com/searchsploit) as [ExploitDB](https://www.exploit-db.com/) isn't regularly updated anymore.
228+
229+
```bash
230+
sploitscan -k "Outlook Express"
231+
232+
███████╗██████╗ ██╗ ██████╗ ██╗████████╗███████╗ ██████╗ █████╗ ███╗ ██╗
233+
██╔════╝██╔══██╗██║ ██╔═══██╗██║╚══██╔══╝██╔════╝██╔════╝██╔══██╗████╗ ██║
234+
███████╗██████╔╝██║ ██║ ██║██║ ██║ ███████╗██║ ███████║██╔██╗ ██║
235+
╚════██║██╔═══╝ ██║ ██║ ██║██║ ██║ ╚════██║██║ ██╔══██║██║╚██╗██║
236+
███████║██║ ███████╗╚██████╔╝██║ ██║ ███████║╚██████╗██║ ██║██║ ╚████║
237+
╚══════╝╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═══╝
238+
v0.13.0 / Alexander Hagenah / @xaitax / [email protected]
239+
240+
┌───[ 🕵️ Searching local database for keywords: outlook express ]
241+
Processing CVE files: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 282372/282372 [04:38<00:00, 1013.92it/s]
242+
243+
╔═══════════════════════════════════════════╗
244+
║ Found 48 CVE(s) matching: Outlook Express ║
245+
╚═══════════════════════════════════════════╝
246+
247+
CVE-1999-0967, CVE-1999-1016, CVE-1999-1033, CVE-2000-0036, CVE-2000-0105, CVE-2000-0415, CVE-2000-0524, CVE-2000-0567, CVE-2000-0621, CVE-2000-0653, CVE-2001-0145, CVE-2001-0149, CVE-2001-0945, CVE-2001-0999, CVE-2001-1088, CVE-2001-1325, CVE-2001-1547, CVE-2002-0152, CVE-2002-0285, CVE-2002-0637, CVE-2002-0862, CVE-2002-1121, CVE-2002-1179, CVE-2002-2164, CVE-2002-2202, CVE-2003-0301, CVE-2003-1105, CVE-2003-1378, CVE-2004-0215, CVE-2004-0380, CVE-2004-0526, CVE-2004-2137, CVE-2004-2694, CVE-2005-1213, CVE-2005-2226, CVE-2005-4840, CVE-2006-0014, CVE-2006-2111, CVE-2006-2386, CVE-2006-2766, CVE-2007-2225, CVE-2007-2227, CVE-2007-3897, CVE-2007-4040, CVE-2008-1448, CVE-2008-5424, CVE-2010-0816, CVE-2024-1187
248+
249+
╔═══════════════════════╗
250+
║ CVE ID: CVE-2001-1547 ║
251+
╚═══════════════════════╝
252+
253+
┌───[ 🔍 Vulnerability information ]
254+
|
255+
├ Published: 2005-07-14
256+
├ Base Score: N/A (N/A)
257+
├ Vector: N/A
258+
└ Description: Outlook Express 6.0, with "Do not allow attachments to be saved or opened that could potentially be
259+
a virus" enabled, does not block email attachments from forwarded messages, which
260+
could allow remote attackers to execute arbitrary code.
261+
[...]
262+
```
263+
264+
### Fast Mode
265+
266+
Enable fast mode to only display basic CVE information (skipping additional lookups).
267+
268+
```bash
269+
sploitscan CVE-2024-1709 --fast-mode
270+
```
271+
161272
### Import from Vulnerability Scanner
162273
163274
Specify the type: 'nessus', 'nexpose', 'openvas', or 'docker' and provide the file path.
@@ -209,6 +320,8 @@ docker run -v $(pwd):/app --rm sploitscan CVE-2024-1709 -e JSON
209320
210321
## 🤖 AI-Powered Risk Assessment
211322
323+
Select an AI provider for risk assessment (OpenAI ChatGPT, Google Gemini, Grok AI and DeepSeek).
324+
212325
SploitScan integrates with OpenAI to provide a comprehensive AI-powered risk assessment for each CVE. This feature includes:
213326
214327
- Detailed Risk Assessment: Understand the nature of the vulnerability and its business impact.
@@ -220,7 +333,7 @@ SploitScan integrates with OpenAI to provide a comprehensive AI-powered risk ass
220333
221334
```text
222335

223-
$ sploitscan.py CVE-2024-21413
336+
$ sploitscan.py --ai openai CVE-2024-21413
224337

225338
[...]
226339

@@ -291,6 +404,8 @@ Contributions are welcome! Whether it's fixing bugs, adding new features, or imp
291404
292405
Special thanks to:
293406
407+
- [UjjwalBudha](https://github.com/UjjwalBudha) for ideas & code
408+
- [hexwreaker](https://github.com/hexwreaker) for ideas & code
294409
- [Nilsonfsilva](https://github.com/Nilsonfsilva) for support on Debian packaging.
295410
- [bcoles](https://github.com/bcoles) for bugfixes.
296411
- [Javier Álvarez](https://github.com/jalvarezz13) for bugfixes.
@@ -309,18 +424,4 @@ Special thanks to:
309424
310425
## 📆 Changelog
311426
312-
- For a detailed list of updates, fixes, and new features, check the [Changelog](CHANGELOG.md).
313-
314-
## 📚 References
315-
316-
- [CISA Known Exploited Vulnerabilities Catalog](https://www.cisa.gov/known-exploited-vulnerabilities-catalog)
317-
- [CVE Program](https://github.com/CVEProject/cvelistV5)
318-
- [ExploitDB](https://www.exploit-db.com/)
319-
- [FIRST EPSS](https://www.first.org/epss/api)
320-
- [HackerOne](https://hackerone.com/)
321-
- [nomi-sec PoC-in-GitHub API](https://poc-in-github.motikan2010.net/)
322-
- [OpenAI](https://openai.com/)
323-
- [Packet Storm](https://packetstormsecurity.com/)
324-
- [ProjectDiscovery Nuclei](https://github.com/projectdiscovery/nuclei-templates)
325-
- [VulnCheck](https://vulncheck.com/)
326-
427+
For a detailed list of updates, fixes, and new features, check the [Changelog](CHANGELOG.md).

pyproject.toml

+9-6
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,18 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "sploitscan"
7-
version = "0.12.0"
8-
description = "SploitScan is a sophisticated cybersecurity utility designed to provide detailed information on vulnerabilities and associated exploits."
7+
version = "0.13.0"
8+
description = "SploitScan is a cybersecurity utility designed to provide detailed information on vulnerabilities and associated exploits."
99
authors = [ { name = "Alexander Hagenah", email = "[email protected]" } ]
1010
license = { file = "LICENSE" }
1111
dynamic = [ "readme" ]
1212
dependencies = [
13-
"requests~=2.32.2",
14-
"jinja2~=3.1.4",
15-
"openai~=1.60.1"
13+
"requests==2.32.3",
14+
"jinja2==3.1.5",
15+
"openai==1.64.0",
16+
"google-genai==1.3.0",
17+
"GitPython==3.1.44",
18+
"tqdm==4.67.1"
1619
]
1720
requires-python = ">=3.8"
1821

@@ -23,7 +26,7 @@ sploitscan = "sploitscan.sploitscan:cli"
2326
homepage = "https://github.com/xaitax/SploitScan"
2427
repository = "https://github.com/xaitax/SploitScan"
2528
documentation = "https://github.com/xaitax/SploitScan#readme"
26-
changelog = "https://github.com/xaitax/SploitScan"
29+
changelog = "https://github.com/xaitax/SploitScan"
2730

2831
[tool.setuptools]
2932
dynamic.readme = { file = [ "README.md" ], content-type = "text/markdown" }

requirements.txt

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
requests==2.32.3
22
jinja2==3.1.5
3-
openai==1.60.1
3+
openai==1.64.0
4+
google-genai==1.3.0
5+
GitPython==3.1.44
6+
tqdm==4.67.1

0 commit comments

Comments
 (0)