new([$nessus_url],[$user],[$pass])
creates new object Net::Nessus::XMLRPC
DESTROY
destructor, calls logout method on destruction
nurl([$nessus_url])
get/set Nessus base URL
token([$nessus_token])
get/set Nessus login token
nessus_http_request($uri,$post_data)
low-level function, makes HTTP request to Nessus URL
nessus_request($uri,$post_data)
low-level function, makes XMLRPC request to Nessus URL and returns XML
login($user,$password)
login to Nessus server via $user and $password
logout
logout from Nessus server
logged_in
returns true if we're logged in
scan_new($policy_id,$scan_name,$targets)
initiates new scan
scan_new_file($policy_id,$scan_name,$targets,$filename)
initiates new scan with hosts from file named $filename
scan_stop($scan_id)
stops the scan identified by $scan_id
scan_stop_all
stops all scans
scan_pause($scan_id)
pauses the scan identified by $scan_id
scan_pause_all
pauses all scans
scan_resume($scan_id)
resumes the scan identified by $scan_id
scan_resume_all
resumes all scans
scan_list_uids
returns array of IDs of (active) scans
scan_get_name($uuid)
returns name of the scan identified by $uuid
scan_status($uuid)
returns status of the scan identified by $uuid
scan_finished($uuid)
returns true if scan is finished/completed (identified by $uuid)
nessus_http_upload_request($uri,$post_data)
low-level function, makes HTTP upload request to URI specified
file_upload($filename)
uploads $filename to nessus server, returns filename of file uploaded or '' if failed
Note that uploaded file is per session (i.e. it will be there until logout/attack.) So, don't logout or
login again and use the filename! You need to upload it again!
upload($filename,$content)
uploads $filename to nessus server using $content as content of file, returns filename of file uploaded
or '' if failed
Note that uploaded file is per session (i.e. it will be there until logout/attack.) So, don't logout or
login again and use the filename! You need to upload it again!
policy_get_first
returns policy id for the first policy found
policy_get_firsth
returns ref to hash %value with basic info of first policy/scan returned by the server
$value{'id'}, $value{'name'}, $value{'owner'}, $value{'visibility'}, $value{'comment'}
policy_list_hash
returns ref to array of hashes %value with basic info of first policy/scan returned by the server
$value{'id'}, $value{'name'}, $value{'owner'}, $value{'visibility'}, $value{'comment'}
policy_list_uids
returns ref to array of IDs of policies available
policy_list_names
returns ref to array of names of policies available
policy_get_info($policy_id)
returns ref to hash %value with basic info of policy/scan identified by $policy_id
$value{'id'}, $value{'name'}, $value{'owner'}, $value{'visibility'}, $value{'comment'}
policy_get_id($policy_name)
returns ID of the scan/policy identified by $policy_name
policy_get_name($policy_id)
returns name of the scan/policy identified by $policy_id
policy_delete($policy_id)
delete policy identified by $policy_id
policy_copy($policy_id)
copy policy identified by $policy_id, returns $policy_id of new copied policy
policy_rename($policy_id,$policy_name)
rename policy to $policy_name identified by $policy_id
policy_edit($policy_id,$params)
edit policy identified by $policy_id
%params (must be present): policy_name => name policy_shared => 1
%params can be (examples) max_hosts => 50, max_checks=> 10, use_mac_addr => no, throttle_scan => yes,
optimize_test => yes, log_whole_attack => no, ssl_cipher_list => strong, save_knowledge_base => no,
port_range => 1-65535
policy_new($params)
create new policy with $params, %params must be present: policy_name policy_shared
the others parameters are same as policy_edit
policy_get_opts($policy_id)
returns hashref with different options for policy identified by $policy_id
policy_set_opts($policy_id,$params)
sets policy options via hashref $params identified by $policy_id
report_list_uids
returns ref to array of IDs of reports available
report_list_hash
returns ref to array of hashes with basic info of reports hash has following keys: name status
readableName timestamp
report_file_download($report_id)
returns XML report identified by $report_id (Nessus XML v2)
report_file1_download($report_id)
returns XML report identified by $report_id (Nessus XML v1)
report_delete($report_id)
delete report identified by $report_id
report_import($filename)
tells nessus server to import already uploaded file named $filename ( i.e. you already uploaded the file
via file_upload() )
report_import_file($filename)
uploads $filename to nessus server and imports it as nessus report
users_list
returns ref to array of hash %values with users info $values{'name'} $values{'admin'}
$values{'lastlogin'}
users_delete($login)
deletes user with $login
users_add($login,$password)
deletes user with $login and $password, return username created, '' if not
users_passwd($login,$password)
change user password to $password identified with $login, return username, '' if not