利用pyhton对绿盟漏扫结果进行提取

起因是公司对客户进行了一次漏扫出来1000多个存活IP,由于扫描器是绿盟的没有总表,然后公司有要求将部门和IP对应然后理出每个IP中存在的中高危的漏洞及解决办法(这个解决办法只存在于)筛选下来发现200来个IP,要在这一千多个excl表中一张张的翻有点受不了于是决定写一个脚本来实现对需要数据的提取。

首先理出来需要的厂商名及对应IP以公司名为排序依据如下命名为name.xls

绿盟的主机扫描结果为主机IP.xls

需要的数据在该表的第二张分表里

所以大致思路为

  1. 获取第一张存储厂商IP表(name.xls)的内容
  2. 建立厂商为依据的分表
  3. 将获取到的IP拼接形成需要的文件名并获取数据写入对应分表
  4. 保存文件

具体代码如下

# coding=utf-8
# -*- coding:utf-8 -*-
import xlrd
import xlwt

workbook = xlwt.Workbook(encoding='utf-8')#打开写入空间设置编码模式
worsheet = workbook.add_sheet('count')
pw = xlrd.open_workbook("G:/4444/name.xls")#打开厂商IP表
sheet = pw.sheet_by_index(0)
tab = pw.sheets()[0]
anrow = tab.nrows  # 获取总行数
a = 1
for j in range(anrow):
    ip = tab.cell(j, 1).value
    if j==0 :
        part=tab.cell(j, 0).value
        worsheet = workbook.add_sheet(part)#创建一张以部门为名称的分表
        worsheet.write(0, 0, '厂商/部门')#设置表头
        worsheet.write(0, 1, 'IP')
        worsheet.write(0, 2, '漏洞名')
        worsheet.write(0, 3, '漏洞等级')
        worsheet.write(0, 4, '整改措施 ')
        worsheet.write(0, 5, '是否整改')
        worsheet.write(0, 6, '未整改原因')
    else: #建立分表
        if part !=tab.cell(j, 0).value:
            part=tab.cell(j, 0).value
            worsheet = workbook.add_sheet(part)
            worsheet.write(0, 0, '厂商/部门')
            worsheet.write(0, 1, 'IP')
            worsheet.write(0, 2, '漏洞名')
            worsheet.write(0, 3, '漏洞等级')
            worsheet.write(0, 4, '整改措施 ')
            worsheet.write(0, 5, '是否整改')
            worsheet.write(0, 6, '未整改原因')
            a=1 #重置到分表第二行
    filename = "G:/4444/" + ip + '.xls' #文件绝对路径
    excel = xlrd.open_workbook(filename)  # 打开excel文件
    sheet = excel.sheet_by_index(0)  # 获取工作薄
    table = excel.sheets()[1]
    anrows = table.nrows  # 获取主机漏洞行数
    for i in range(anrows):
        cell = table.cell(i, 5).value# 漏洞等级
        if cell == u"[中]" or cell == u"[高]":
            name = table.cell(i, 3).value#漏洞名称
            soulve = table.cell(i, 18).value#解决办法
            worsheet.write(a, 0, part)
            worsheet.write(a, 1, ip)
            worsheet.write(a, 2, name)
            worsheet.write(a, 3, cell)
            worsheet.write(a, 4, soulve)
            a = a + 1

workbook.save('result.xls')  # 保存文件

结果如图每个厂商都建立了一张分表保存他们的主机IP及对应的漏洞名

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值