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


Posted in Python onMarch 19, 2019

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python动态加载变量示例分享
Feb 17 Python
Python实现3行代码解简单的一元一次方程
Aug 18 Python
Python迭代和迭代器详解
Nov 10 Python
Python实现模拟分割大文件及多线程处理的方法
Oct 10 Python
Python使用三种方法实现PCA算法
Dec 12 Python
python实现学生信息管理系统
Apr 05 Python
Python实现自定义函数的5种常见形式分析
Jun 16 Python
python中pip的使用和修改下载源的方法
Jul 08 Python
python3.7+selenium模拟淘宝登录功能的实现
May 26 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
Nov 01 Python
MoviePy简介及Python视频剪辑自动化
Dec 18 Python
粗暴解决CUDA out of memory的问题
May 22 Python
python实现手机销售管理系统
Mar 19 #Python
Python使用修饰器进行异常日志记录操作示例
Mar 19 #Python
python学生管理系统学习笔记
Mar 19 #Python
Python操作rabbitMQ的示例代码
Mar 19 #Python
Python Matplotlib实现三维数据的散点图绘制
Mar 19 #Python
浅谈python中get pass用法
Mar 19 #Python
使用matplotlib中scatter方法画散点图
Mar 19 #Python
You might like
分享PHP header函数使用教程
2013/09/05 PHP
php页面函数设置超时限制的方法
2014/12/01 PHP
用js判断浏览器是否是IE的比较好的办法
2007/05/08 Javascript
xml 封装与解析(javascript和C#中)
2009/07/26 Javascript
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
js实现感应鼠标图片透明度变化的方法
2015/02/20 Javascript
jquery衣服颜色选取插件效果代码分享
2015/08/28 Javascript
微信企业号开发之微信考勤Cookies的使用
2015/09/11 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
2016/05/11 Javascript
利用纯JS实现像素逐渐显示的方法示例
2017/08/14 Javascript
解决Jquery下拉框数据动态获取的问题
2018/01/25 jQuery
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
nodeJs项目在阿里云的简单部署
2020/11/27 NodeJs
Python实现的Kmeans++算法实例
2014/04/26 Python
Python编程实现删除VC临时文件及Debug目录的方法
2017/03/22 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
2017/11/20 Python
vue.js实现输入框输入值内容实时响应变化示例
2018/07/07 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
2020/02/04 Python
Python用input输入列表的实例代码
2020/02/07 Python
Django更新models数据库结构步骤
2020/04/01 Python
PyTorch的torch.cat用法
2020/06/28 Python
Python常驻任务实现接收外界参数代码解析
2020/07/21 Python
美国现代家具和家居商店:Apt2B
2016/08/29 全球购物
欧洲品牌瓷器餐具网上商店:Porzellantreff.de
2018/04/04 全球购物
意大利文具和办公产品在线商店:Y-Office
2020/02/27 全球购物
班干部竞选演讲稿
2014/04/24 职场文书
餐饮投资计划书
2014/04/25 职场文书
2014年后勤管理工作总结
2014/12/01 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
负责培养人意见
2015/06/05 职场文书
门球健将观后感
2015/06/16 职场文书
奠基仪式致辞
2015/07/30 职场文书
四年级语文教学反思
2016/03/03 职场文书