离线流量分析

介绍

通过本地已经生成的pcap/cap文件,读取并分析数据

正文

PCAP_Parser.py

login_invalid.pcap 查找关键词 invalid ,如果有符合的数据包,把所有数据包详细打印出来。

import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)#清除报错
from scapy.all import *
import re

def pcap_parser(filename,keyword):
    pkts = rdpcap(filename)
    return_pkts_list = [] #返回匹配数据包的清单!
    for pkt in pkts.res:
        try:#为什么用try呢,decode有可能失败
            pkt_load = pkt.getlayer('Raw').fileds['load'].decode().strip()#提取负载内容
            re_keyword = '.*' + keyword + '.*' #形成关于关键字的正则表达式
            #如果负载内容匹配,并且源端口为23,把数据包添加到 return_pkts_list
            if re.match(re_keyword, pkt_load) and pkt.getlayer('TCP').fields['sport'] == 23:#如果该包符合正则表达式,并且TCP端口为23
                return_pkts_list.append(pkt) # 把符合内容的追加到  return_pkts_list
        except:
            pass

    return return_pkts_list #返回匹配数据包的清单

if __name__ == "__main__":
    pkts = pcap_parser("login_invalid.pcap","invalid")
    i = 1
    for pkt in pkts:
        print('=========第' + str(i) + "个包('=========")
        pkt.show()
        i += 1

login_invalid.pcap 这个文件怎么生成的,可以戳 在线流量分析

参考

参考推荐:https://www.jianshu.com/p/8eab70118fad

https://www.youtube.com/watch?v=_wb-e1edRhM

猜你喜欢

转载自www.cnblogs.com/maskerk/p/10015660.html