利用Python半自動化生成Nessus報告


0x01 前言

  Nessus是一個功能強大而又易於使用的遠程安全掃描器,Nessus對個人用戶是免費的,只需要在官方網站上填郵箱,立馬就能收到注冊號了,對應商業用戶是收費的。當然,個人用戶是有16個IP限制,通過企業郵箱可以體驗免費7天的Nessus專業版,IP無限制。

  Nessus激活碼獲取地址:https://www.tenable.com/products/nessus/activation-code

0x02  Nessus使用

  登錄后通過New Scan創建掃描任務,掃描完成后,我們即可導出掃描報告。Nessus提供4種報告類型導出:

 

我們選擇HTML類型,Report選擇Custom,Croup By 選擇Host,導出HTML報告。

但這些報告還需要進一步整理成我們想要的格式,並且去掉不必要的消息,得到最終我們希望能夠得到信息。

那首先我們確認一下,想要得到的信息是哪些呢?

1、服務器IP

2、漏洞危害級別

3、漏洞名稱

這三個最基本的信息,對我來說就差不都足夠了,我就知道哪些服務器存在高危漏洞,並提供解決漏洞修復建議。

0x03  Python腳本

 通過解析html文件,獲取相關漏洞信息,並輸出到csv文件。

#! /usr/bin/env python
# _*_  coding:utf-8 _*_
#Author:Aaron

from lxml import etree
import csv
import sys

host=''
title=''
result_list=[]	
def htm_parse(l):		
	if '#d43f3a' in etree.tostring(l):
		info=u"嚴重 - "+l.text
	elif '#ee9336' in etree.tostring(l):
		info=u"高危 - "+l.text
	elif '#fdc431' in etree.tostring(l):
		info=u"中危 - "+l.text
	elif '#3fae49' in etree.tostring(l):
		info=u"低危 - "+l.text			
	elif '#0071b9' in etree.tostring(l):
		info=u'信息泄露 - '+l.text
	else:
		info='Parsing error,Check that the versions are consistent.'
	return info
def main(filename):
	html = etree.parse(filename,etree.HTMLParser())
	ls =html.xpath('/html/body/div[1]/div[3]/div')
	for i in ls:
		if "font-size: 22px; font-weight: bold; padding: 10px 0;" in etree.tostring(i):
			host=i.text
		elif "this.style.cursor" in etree.tostring(i):
			result=host+" - "+htm_parse(i)
			print result
			result_list.append(result)
	return result_list	
if __name__ == '__main__':
	filename=sys.argv[1]
	list_host =  main(filename)
	with open('result.csv','wb') as f:
		f.write(u'\ufeff'.encode('utf8'))
		w = csv.writer(f)
		w.writerow(['服務器IP','漏洞級別','漏洞編號','漏洞名稱'])
		for i in list_host:
			data=i.split('-',3)
			w.writerow([item.encode('utf8') for item in data])

 腳本運行效果如下:

在同目錄下生成result.csv,內容如下:

最后,通過excel進行相關信息的篩選、刪除和整理,最后匯總成報告。

0x04  小結

  本文提供了一個demo,用於半自動化生成Nessus報告,有需要的話,可入庫擴展,增加自動翻譯,提供修復建議等。Nessus中文漏洞庫可參見這個項目,NessusReportInChinese:半自動化將 Nessus 英文報告(csv格式)生成中文 excel ,中文漏洞庫已有700多條常見漏洞。

github地址:https://github.com/FunnyKun/NessusReportInChinese

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM