Skip to content

A python implemetation for managing Nessus Professional. It provides support for launching, configuring, monotoring and reporting for scans.

License

Notifications You must be signed in to change notification settings

Matbe34/py-nessus-pro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

 PyPi

PyNessusPro

PyNessusPro is a Python module that provides a high-level interface for interacting with a Nessus vulnerability scanner. The module uses the Nessus REST API to perform various operations, such as creating and managing scans, retrieving scan metadata and reports, and searching for scans by name or date. It provides Nessus Professional with an interface to expand the read-omly API and be able to launch scans and modify them.

Installation

To install PyNessusPro, simply run:

pip install py-nessus-pro

Usage

To use PyNessusPro, you first need to create an instance of the PyNessusPro class, which represents a connection to a Nessus server. You can create an instance by providing the URL of the Nessus server, as well as your username and password:

from py_nessus_pro import PyNessusPro

nessus_server = "https://nessus-server-url:8834"
username = "admin"
password = "password"

nessus = PyNessus(nessus_server, username, password)

Once you have created an instance of the PyNessusPro class, you can use its methods to perform various operations. For example, you can create a new scan by calling the new_scan method:

scan_name = "My Scan"
scan_target = "127.0.0.1"
scan_folder = "Automatic Scan Test"

scan_index = nessus.new_scan(name=scan_name, target=scan_target, folder=scan_folder)

Once a scan is created it is assigned an ID for nessus but also an internal ID for PyNessus.
The return value for nessus.new_scan() is the internal ID that is the one that needs to be used for other methods.
This ID can be retrieved on creation or by searching the scan as shown in search examples.

scan_id = sessus.search_scans(name=scan_name, after=scan_date)[0]["id"]

You can then retrieve the status of the scan by calling the get_scan_status method:

scan_status = nessus.get_scan_status(scan_id)

You can also retrieve the reports of the scan once finished by calling the get_scan_reports method:

scan_reports = nessus.get_scan_reports(scan_id)

You can search for scans by name or date by calling the search_scans method:

scan_name = "My Scan"
scan_date = "2022-01-01_00:00:00"

scan_indices = nessus.search_scans(name=scan_name, after=scan_date)

You can then retrieve the status and reports of the matching scans by calling the get_status_by_name and get_reports_by_name methods:

scan_status = nessus.get_status_by_name(scan_name)
scan_reports = nessus.get_reports_by_name(scan_name)

For more information on the available methods and their parameters, please refer to the docstrings in the py_nessus.py file.

License

PyNessusPro is licensed under the GNU GENERAL PUBLIC LICENSE Version 2. See the LICENSE file for more information.

About

A python implemetation for managing Nessus Professional. It provides support for launching, configuring, monotoring and reporting for scans.

Topics

Resources

License

Stars

Watchers

Forks

Languages