PyNuclei is an unofficial python library for Nuclei Scanner.
Project description
PyNuclei
PyNuclei is an unofficial Python library for Nuclei Scanner.
Features
- Run Nuclei Scans for all or selected templates
- By default uses random User-Agents for every scan.
- User-defined rate limit (Default: 150)
Installation
pip3 install PyNuclei
Usage
from PyNuclei import Nuclei
"""
Nuclei(templatePath)
Args:
nucleiPath [str][Optional]: The path of nuclei binary file
Returns:
PyNuclei.Nuclei class object
nucleiScanner.scan()
Args:
host [str]: The hostname of the target which Nuclei will run against
templates [list][Optional]: If the templates list is not provided all nuclei templates from the "nucleiTemplates" property will be executed
generatePoc [str]: Generate Burpsuite like Request-Response or Terminal screenshot.
userAgents [str][Optional]: If not provided random User-Agents will be used.
rateLimit [int][Optional]: Defaults to 150.
maxHostError [int][Optional]: It determines to skip host for scanning after n number of connection failures
stopAfter [int][Optional]: Stop scanning after getting n number of findings, only use for template paths instead of template categories
metrics [bool][Optional]: It shows the scan progress.
verbose [bool][Optional]: Show nuclei results output and PyNuclei warning logs.
Returns:
result [dict]: Scan results from all templates.
"""
nucleiPath = "/opt/app/src/bin/nuclei"
nucleiScanner = Nuclei(nucleiPath)
scanResult = nucleiScanner.scan(
"example.com",
templates=["cves", "network", "ssl"],
generatePoc=True,
rateLimit=150,
verbose=False,
metrics=False,
maxHostError=30,
stopAfter=None
)
print(scanResult)
Templates
from PyNuclei import Nuclei
nucleiScanner = Nuclei()
"""
All active templates.
"""
print(nucleiScanner.nucleiTemplates)
[
"cnvd", "cves", "default-logins", "exposed-panels",
"exposures", "file", "misconfiguration",
"miscellaneous", "takeovers", "technologies",
"token-spray", "vulnerabilities", "network",
"dns", "iot", "ssl"
]
"""
All ignored templates.
"""
print(nucleiScanner.ignoredTemplates)
[
"headless", "fuzzing", "helpers",
]
"""
Returns details of all nuclei templates in JSON format
"""
print(nucleiScanner.returnTemplatesDetails())
NOTE: You can run ignored templates by passing them in the template parameter in nucleiScanner.scan(<host>, template=nucleiScanner.ignoredTemplates)
Image PoC
PyNuclei extends its core capabilities with a powerful feature for generating visual Proof-of-Concepts (PoCs). This functionality allows users to create image-based representations of identified vulnerabilities, significantly enhancing reporting and communication.
You can generate Terminal based PoCs, BurpSuite like request/response PoCs, visually displaying the HTTP interactions that demonstrate the vulnerability, and even code execution POCs, showing the resulting output of arbitrary code run.
Furthermore, PyNuclei automates the process of highlighting critical vulnerability details within the generated PoC images, making it instantly clear where the identified issues lie.
Request-Response PoC
Code-Execution PoC
Terminal PoC
Update Nuclei
from PyNuclei import Nuclei
"""
This will update Nuclei engine & Nuclei Templates.
"""
Nuclei.updateNuclei(verbose=True)
Connect with me
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pynuclei-1.4.4.tar.gz
.
File metadata
- Download URL: pynuclei-1.4.4.tar.gz
- Upload date:
- Size: 122.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.22
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 04597d66d29080d6dec1e2ce646e5929a73298e7d1b6ad85c9b63cbe3fa4a9b6 |
|
MD5 | c1565c63e9ed05a75c9190fae1de9191 |
|
BLAKE2b-256 | cb7978055fc5cf7d2ee5f8fa47b3f73a1e0fd3899775891d66dbee24401abaf7 |
File details
Details for the file pynuclei-1.4.4-py3-none-any.whl
.
File metadata
- Download URL: pynuclei-1.4.4-py3-none-any.whl
- Upload date:
- Size: 119.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.22
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0549ec7bf09fb6acb5865c051c823be06765258f1a1b90be71ab8c3fd7ece030 |
|
MD5 | 5e5313fe65b813ae4b33984bfa3849c0 |
|
BLAKE2b-256 | 9a343758afefe229ed236ea7dc42e2154f821853f5c6043a607807ae5eb60aaa |