Nessus漏洞报告筛选

工作项目需要提取出大量nessus的csv报告中的紧急和高危漏洞,手工太麻烦。分享一个实现脚本。代码如下:

#-*-coding=utf-8-*-

import pandas as pd
import sys,os
from pathlib import Path


def getcsv(file_dir = "csv"):
    '''批量获取所有csv文件'''
    L = []
    for root, dirs, files in os.walk(file_dir):
        for file in files:
            if os.path.splitext(file)[1] == '.csv':
                L.append(os.path.join(root , file))
        return L

def work(file, out_path = "./out"):
    '''按照Risk筛选并保存'''
    data =pd.read_csv(file,header=0,index_col=0, encoding= "GBK")
    df = data.loc[data['Risk'].isin(["High","Critical"])]
    df.to_csv(out_path+"/"+Path(file).name)


def main():
    if(len(sys.argv)<2):
        print("[*] Useage: python3 vuln_filter.py csv_dir")
        exit()


    file_dir = sys.argv[1]
    L = getcsv(file_dir)
    out_path = './out'
    if not os.path.exists(out_path):
        os.mkdir(out_path)

    for l in L:
        work(l)

if __name__ == '__main__':
    main()

使用方法:Python3 vuln_filter.py 源nessus导出CSV报告的目录

PS:这里在导出时建议将CSV报告名称统一规范。

你可能感兴趣的:(Nessus漏洞报告筛选)