1. 程式人生 > >離線流量分析

離線流量分析

介紹

通過本地已經生成的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