離線流量分析
阿新 • • 發佈:2018-11-25
介紹
通過本地已經生成的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 這個檔案怎麼生成的,可以戳 線上流量分析