利用Python半自動化生成Nessus報告的方法
0x01 前言
Nessus是一個功能強大而又易于使用的遠程安全掃描器,Nessus對個人用戶是免費的,只需要在官方網(wǎng)站上填郵箱,立馬就能收到注冊號了,對應商業(yè)用戶是收費的。當然,個人用戶是有16個IP限制,通過企業(yè)郵箱可以體驗免費7天的Nessus專業(yè)版,IP無限制。
Nessus激活碼獲取地址:https://www.tenable.com/products/nessus/activation-code

0x02 Nessus使用
登錄后通過New Scan創(chuàng)建掃描任務,掃描完成后,我們即可導出掃描報告。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
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Django REST Framework 分頁(Pagination)詳解
這篇文章主要介紹了Django REST Framework 分頁(Pagination)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11
Python 實現(xiàn)把列表中的偶數(shù)變成他的平方
這篇文章主要介紹了Python 實現(xiàn)把列表中的偶數(shù)變成他的平方,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Pandas.DataFrame刪除指定行和列(drop)的實現(xiàn)
本文主要介紹了Pandas.DataFrame刪除指定行和列(drop)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02
django admin管理工具自定義時間區(qū)間篩選器DateRangeFilter介紹
這篇文章主要介紹了django admin管理工具自定義時間區(qū)間篩選器DateRangeFilter介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
Python3爬蟲爬取百姓網(wǎng)列表并保存為json功能示例【基于request、lxml和json模塊】
這篇文章主要介紹了Python3爬蟲爬取百姓網(wǎng)列表并保存為json功能,涉及Python基于request、lxml和json模塊的Request請求與響應數(shù)據(jù)處理相關操作技巧,需要的朋友可以參考下2018-12-12
python數(shù)據(jù)結構鏈表之單向鏈表(實例講解)
下面小編就為大家?guī)硪黄猵ython數(shù)據(jù)結構鏈表之單向鏈表(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07

