Coremail日志分析脚本

Coremail Log Analyze script

同学在应急的时候遇到coremail日志取证问题,量比较大,需要针对邮件或IP搜索。这里做了个简易的筛选方便大家在应急的分析使用。 针对这类日志进行关键自筛选并输出。

方案

这里全遍历文件,读取文件筛选匹配关键字整行另存新文件保存

使用方法

Usage: python3 CLA.py <logfolders> <key> <output_filename>

logfolders 日志文件夹(测试环境下现场取的folder/folders/log结构文件夹) key 搜索关键字,关键字或用逗号(,)隔开的关键字组 output_filename 保存文件位置及文件名

源码

# python3
# -*- encoding: utf-8 -*-
# Pwnda.zhang<XTPEEPS.CN>


import os,re,sys

def main(dir,key,output_filename):
    for home,dirs,files in os.walk(dir):
        # print("-----dir list------")
        for dir in dirs:
            print(dir)
        # print("------dir list end------")
        # print("------file list------")
        for filename in files:
            print(filename)
            fullname=os.path.join(home,filename)
            analyze(key,fullname,output_filename)
            # print(fullname)
        # print("------file list end------")

def analyze(key,filename,output_filename):
    file=open(filename,'r')
    with open(output_filename,"a+") as f:
        f.write("\n"+filename+"\n")
        for line in file:
            if re.search(",",key):
                keys=key.replace(",","|")
                keyline=re.findall(keys,line)
            else:
                keyline=re.findall(".*{}.*".format(key),line)
            if keyline :
                print(line)
                f.write(line)
            else:
                continue
    f.close()
    file.close()

if __name__=="__main__":
    # if sys.argv[1]!="" and sys.argv[2]!="" and sys.argv[3]!="":
    try:
        main(sys.argv[1],sys.argv[2],sys.argv[3])
    except:
        print("Usage: python3 CLA.py <logfolders> <key> <output filename>")