前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用Python半自动化生成Nessus报告

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

作者头像
Bypass
发布2019-07-08 17:16:16
1.6K0
发布2019-07-08 17:16:16
举报
文章被收录于专栏:BypassBypass

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文件。

代码语言:javascript
复制
#! /usr/bin/env python
# _*_  coding:utf-8 _*_
#Author:Aaron
from lxml import etree
import csv
import sys

host=''
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

Bypass

About Me

一个网络安全爱好者,对技术有着偏执狂一样的追求。致力于分享原创高质量干货,包括但不限于:渗透测试、WAF绕过、代码审计、安全运维。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Bypass 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档