A minimal Java client for the Nessus XML RPC interface
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea
src
README.md
license.txt
nessus-java-client.iml
pom.xml

README.md

Nessus Java API Client

A Java client to the Nessus scanner's REST interface, supports both v5 and v6 The API is divided into a ScanClient and a ReportClient.

Usage

ScanClient scan = ClientFactory.createScanClient("https://nessusurl",6,true); // true == accept all hostnames from SSL cert
scan.login("username","password");
String scanID = scan.newScan("myScanName","myExistingPolicyName","127.0.0.1,someotherhost");
while (scan.isScanRunning(scanID)) {
     try {
        Thread.sleep(2000);
     } catch (InterruptedException e) {
        e.printStackTrace();
     }
}

ReportClient report = ClientFactory.createReportClient("https://nessusurl",6,true);
report.login("username","password");
Map<Integer,Issue> issues = report.getAllIssuesSortedByPluginId(scanID);

Differences between Nessus v5 and v6 APIs

Nessus V5 used a unique long string as a UUID to identify scans. Nessus V6 uses a numeric scanId value. Since this library uses a single interface for both V5 and V6, the scanId parameter in the V6 client is a String which is converted to an int.

Reference

This library supports a subset of the entire API interface to Nessus, if you'd like to add other features the full specification for v5 can be found here Nessus v6 API documentation can be read from the API itself by visiting: https://mynessuslocation:8834/nessus6-api.html

Install

mvn install -DskipTests