利用Python半自动化生成Nessus报告的方法

作者:Bypass 时间:2021-03-10 23:04:01 

0x01 前言

Nessus是一个功能强大而又易于使用的远程安全扫描器,Nessus对个人用户是免费的,只需要在官方网站上填邮箱,立马就能收到注册号了,对应商业用户是收费的。当然,个人用户是有16个IP限制,通过企业邮箱可以体验免费7天的Nessus专业版,IP无限制。

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

利用Python半自动化生成Nessus报告的方法

0x02 Nessus使用

登录后通过New Scan创建扫描任务,扫描完成后,我们即可导出扫描报告。Nessus提供4种报告类型导出:

利用Python半自动化生成Nessus报告的方法

我们选择HTML类型,Report选择Custom,Croup By 选择Host,导出HTML报告。

利用Python半自动化生成Nessus报告的方法

但这些报告还需要进一步整理成我们想要的格式,并且去掉不必要的消息,得到最终我们希望能够得到信息。

那首先我们确认一下,想要得到的信息是哪些呢?

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])

脚本运行效果如下:

利用Python半自动化生成Nessus报告的方法

在同目录下生成result.csv,内容如下:

利用Python半自动化生成Nessus报告的方法

最后,通过excel进行相关信息的筛选、删除和整理,最后汇总成报告。

0x04 小结

本文提供了一个demo,用于半自动化生成Nessus报告,有需要的话,可入库扩展,增加自动翻译,提供修复建议等。Nessus中文漏洞库可参见这个项目,NessusReportInChinese:半自动化将 Nessus 英文报告(csv格式)生成中文 excel ,中文漏洞库已有700多条常见漏洞。

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

来源:https://www.cnblogs.com/xiaozi/p/10490199.html

标签:Python,半自动化,生成,Nessus
0
投稿

猜你喜欢

  • PHP实现生成Excel文件并导出的示例详解

    2023-05-28 13:11:18
  • Python selenium文件上传方法汇总

    2022-12-01 04:47:29
  • Win10系统提示“Python 0x80070643安装时发生严重错误”怎么办?

    2023-06-13 06:50:25
  • vue实现带过渡效果的下拉菜单功能

    2024-05-09 15:18:47
  • 简单介绍Python的Tornado框架中的协程异步实现原理

    2021-06-21 10:00:23
  • mysql数据库查询优化 mysql效率第1/3页

    2024-01-28 05:16:17
  • 详解django中视图函数的FBV和CBV

    2022-05-26 01:11:10
  • python sys模块使用方法介绍

    2021-02-03 09:19:16
  • GoFrame代码优化gconv类型转换避免重复定义map

    2024-04-27 15:32:04
  • Python 弹窗设计小人发射爱心

    2021-07-16 14:41:01
  • python对站点数据做EOF且做插值绘制填色图

    2023-03-05 03:30:56
  • Python中输入和输出(打印)数据实例方法

    2021-03-25 22:32:11
  • 浅析Python中的for 循环

    2023-12-16 10:05:20
  • Python 将pdf转成图片的方法

    2021-11-14 09:16:33
  • python标准库 datetime的astimezone设置时区遇到的坑及解决

    2022-05-01 23:54:56
  • Python爬取365好书中小说代码实例

    2023-05-31 21:25:55
  • 根据DataFrame某一列的值来选择具体的某一行方法

    2021-01-08 20:33:42
  • Mysql8断电崩溃解决

    2024-01-25 19:12:02
  • Python中range、np.arange和np.linspace的区别

    2023-10-17 14:45:14
  • php使用composer常见问题及解决办法

    2023-07-10 13:54:53
  • asp之家 网络编程 m.aspxhome.com