Skip to main content

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

Request-Response/Code-Execution PoC

Code-Execution PoC

Request-Response/Code-Execution PoC

Terminal PoC

Terminal PoC

Update Nuclei

from PyNuclei import Nuclei
"""
This will update Nuclei engine & Nuclei Templates.
"""
Nuclei.updateNuclei(verbose=True)

Connect with me

kushvaibhav

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

pynuclei-1.4.4.tar.gz (122.4 kB view details)

Uploaded Source

Built Distribution

pynuclei-1.4.4-py3-none-any.whl (119.0 kB view details)

Uploaded Python 3

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

Hashes for pynuclei-1.4.4.tar.gz
Algorithm Hash digest
SHA256 04597d66d29080d6dec1e2ce646e5929a73298e7d1b6ad85c9b63cbe3fa4a9b6
MD5 c1565c63e9ed05a75c9190fae1de9191
BLAKE2b-256 cb7978055fc5cf7d2ee5f8fa47b3f73a1e0fd3899775891d66dbee24401abaf7

See more details on using hashes here.

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

Hashes for pynuclei-1.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 0549ec7bf09fb6acb5865c051c823be06765258f1a1b90be71ab8c3fd7ece030
MD5 5e5313fe65b813ae4b33984bfa3849c0
BLAKE2b-256 9a343758afefe229ed236ea7dc42e2154f821853f5c6043a607807ae5eb60aaa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page