利用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常用的内置序列结构(列表、元组、字典)学习笔记
Jul 08 Python
Python标准库之itertools库的使用方法
Sep 07 Python
python OpenCV学习笔记之绘制直方图的方法
Feb 08 Python
python 判断网络连通的实现方法
Apr 22 Python
Pycharm如何打断点的方法步骤
Jun 13 Python
Python爬取视频(其实是一篇福利)过程解析
Aug 01 Python
Python面向对象编程基础实例分析
Jan 17 Python
Python自动化测试笔试面试题精选
Mar 12 Python
python图片验证码识别最新模块muggle_ocr的示例代码
Jul 03 Python
Kmeans均值聚类算法原理以及Python如何实现
Sep 26 Python
python工具快速为音视频自动生成字幕(使用说明)
Jan 27 Python
Python Selenium异常处理的实例分析
Feb 28 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生成UTF8文件的方法
2010/05/15 PHP
解决phpcms更换javascript的幻灯片代码调用图片问题
2014/12/26 PHP
Laravel框架模型的创建及模型对数据操作示例
2019/05/07 PHP
Laravel框架集合用法实例浅析
2020/05/14 PHP
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
js判断一个字符串是否包含一个子串的方法
2015/01/26 Javascript
javascript表格的渲染组件
2015/07/03 Javascript
JS ES6中setTimeout函数的执行上下文示例
2017/04/27 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
使用jQuery实现动态添加小广告
2017/07/11 jQuery
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
vue+express 构建后台管理系统的示例代码
2018/07/19 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
小程序云开发实现数据库异步操作同步化
2019/05/18 Javascript
[01:03:00]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第一局
2016/02/25 DOTA
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
python中xrange用法分析
2015/04/15 Python
使用python实现语音文件的特征提取方法
2019/01/09 Python
python实现杨氏矩阵查找
2019/03/02 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
Python操作Sonqube API获取检测结果并打印过程解析
2019/11/27 Python
Python安装whl文件过程图解
2020/02/18 Python
详解Python中的编码问题(encoding与decode、str与bytes)
2020/09/30 Python
美国知名玩具品牌:Melissa & Doug
2016/08/16 全球购物
美国二手奢侈品寄售网站:TheRealReal
2016/10/29 全球购物
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
荷兰家电购物网站:Expert.nl
2020/01/18 全球购物
销售行政专员职责
2014/01/03 职场文书
十八届三中全会感言
2014/03/10 职场文书
第二课堂活动总结
2014/05/07 职场文书
数学系毕业生求职信
2014/05/29 职场文书
食品安全宣传标语
2014/06/07 职场文书
高等学院职业生涯规划书范文
2014/09/16 职场文书
刑事附带民事代理词
2015/05/25 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
导游词之南京莫愁湖公园
2019/11/13 职场文书