Nessus bugfixes (#68)
* Handle cases where no scans are present * Prevent infinite login loop with incorrect creds * Print actual config file path * Don't overwrite Nessus Synopsis with Description
This commit is contained in:
@ -69,6 +69,8 @@ class NessusAPI(object):
|
|||||||
while (timeout <= 10) and (not success):
|
while (timeout <= 10) and (not success):
|
||||||
data = methods[method](url, data=data, headers=self.headers, verify=False)
|
data = methods[method](url, data=data, headers=self.headers, verify=False)
|
||||||
if data.status_code == 401:
|
if data.status_code == 401:
|
||||||
|
if url == self.base + self.SESSION:
|
||||||
|
break
|
||||||
try:
|
try:
|
||||||
self.login()
|
self.login()
|
||||||
timeout += 1
|
timeout += 1
|
||||||
@ -102,7 +104,7 @@ class NessusAPI(object):
|
|||||||
|
|
||||||
def get_scan_ids(self):
|
def get_scan_ids(self):
|
||||||
scans = self.get_scans()
|
scans = self.get_scans()
|
||||||
scan_ids = [scan_id['id'] for scan_id in scans['scans']]
|
scan_ids = [scan_id['id'] for scan_id in scans['scans']] if scans['scans'] else []
|
||||||
return scan_ids
|
return scan_ids
|
||||||
|
|
||||||
def count_scan(self, scans, folder_id):
|
def count_scan(self, scans, folder_id):
|
||||||
|
@ -217,7 +217,7 @@ class vulnWhispererNessus(vulnWhispererBase):
|
|||||||
self.vprint(e)
|
self.vprint(e)
|
||||||
raise Exception(
|
raise Exception(
|
||||||
'{fail} Could not connect to nessus -- Please verify your settings in {config} are correct and try again.\nReason: {e}'.format(
|
'{fail} Could not connect to nessus -- Please verify your settings in {config} are correct and try again.\nReason: {e}'.format(
|
||||||
config=self.config,
|
config=self.config.config_in,
|
||||||
fail=bcolors.FAIL, e=e))
|
fail=bcolors.FAIL, e=e))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
||||||
@ -275,7 +275,7 @@ class vulnWhispererNessus(vulnWhispererBase):
|
|||||||
if self.nessus_connect:
|
if self.nessus_connect:
|
||||||
scan_data = self.nessus.get_scans()
|
scan_data = self.nessus.get_scans()
|
||||||
folders = scan_data['folders']
|
folders = scan_data['folders']
|
||||||
scans = scan_data['scans']
|
scans = scan_data['scans'] if scan_data['scans'] else []
|
||||||
all_scans = self.scan_count(scans)
|
all_scans = self.scan_count(scans)
|
||||||
if self.uuids:
|
if self.uuids:
|
||||||
scan_list = [scan for scan in all_scans if scan['uuid']
|
scan_list = [scan for scan in all_scans if scan['uuid']
|
||||||
@ -375,11 +375,7 @@ class vulnWhispererNessus(vulnWhispererBase):
|
|||||||
for col in columns_to_cleanse:
|
for col in columns_to_cleanse:
|
||||||
clean_csv[col] = clean_csv[col].astype(str).apply(self.cleanser)
|
clean_csv[col] = clean_csv[col].astype(str).apply(self.cleanser)
|
||||||
|
|
||||||
clean_csv['Synopsis'] = \
|
clean_csv.to_csv(relative_path_name, index=False)
|
||||||
clean_csv['Description'
|
|
||||||
].astype(str).apply(self.cleanser)
|
|
||||||
clean_csv.to_csv(relative_path_name,
|
|
||||||
index=False)
|
|
||||||
record_meta = (
|
record_meta = (
|
||||||
scan_name,
|
scan_name,
|
||||||
scan_id,
|
scan_id,
|
||||||
|
Reference in New Issue
Block a user