GVM 20.08 漏扫报告使用python脚本转化

GVM 20.08 漏扫报告使用python脚本转化

  • 使用字典完成host_post和服务名称的映射关系
    新建一个hostport.py文件,添加内容如下:
hostportdict={
	'192.168.1.2_3306/tcp':  'mysql',
	'192.168.1.2_637980/tcp': 'redis',
	'192.168.1.2_9092/tcp': 'kafka'
	}
  • 主脚本内容
    新建change.py文件,内容如下:
#coding=utf-8
import xml.dom.minidom
import openpyxl
import time
import hostport
WB=openpyxl.Workbook()
ws=WB.active
ws.title="漏洞扫描报告"
row=['等级','服务','漏洞信息','解决方法','参考']
ws.append(row)
filename='report-'+time.strftime('%Y-%m-%d',time.localtime(time.time()))+'.xlsx'
dom=xml.dom.minidom.parse('report.xml')

root=dom.documentElement

firstresults=root.getElementsByTagName('results')
results=firstresults[0].getElementsByTagName('result')
print(len(results))
for j in range(len(results)):
	host=results[j].childNodes[5].childNodes[0].data
	port=results[j].childNodes[6].childNodes[0].data
	serverkey=host+'_'+port
	try:
		servername=hostport.hostportdict[serverkey]
	except:
		servername=serverkey
	
	info=results[j].childNodes[7].childNodes[4].childNodes[0].data
	solution=results[j].childNodes[7].childNodes[5].childNodes[0].data
	threat=results[j].childNodes[9].childNodes[0].data
	refsinfo=''
	if len(results[j].childNodes[7].getElementsByTagName('refs'))!=0:
		refslen=len(results[j].childNodes[7].childNodes[6].getElementsByTagName('ref'))
		for i in range(refslen):
			tmp=results[j].childNodes[7].childNodes[6].getElementsByTagName('ref')[i].getAttribute("type")+":"+results[j].childNodes[7].childNodes[6].getElementsByTagName('ref')[i].getAttribute("id")
			refsinfo=refsinfo+tmp+'\n'
	row=[threat,servername,info,solution,refsinfo]
	ws.append(row)
WB.save(filename)
  • 执行
 python3 change.py

最后生成文件如图 :
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值