簡體   English   中英

使用 Scapy 從 pcap 獲取 HTTP 響應代碼

[英]Getting HTTP response codes from a pcap with Scapy

我正在使用scapy讀取 pcap 文件,並且我有興趣查找異常,例如不尋常的 TCP 標志或 HTTP 代碼,如403429等。

我能夠使用 TCP 端口找出此流量屬於 HTTP 但如何獲取 HTTP 的狀態代碼和 HTTP 的標志和標志 Z293C9EA246FF9985DC6F62A650F78986A?

這是我到目前為止所做的:

for pkt in PcapReader(pcap):
    if (TCP in pkt and (pkt[TCP].sport == 80 or pkt[TCP].dport === 80)):
        pList.append(pkt)

如果您使用 Scapy 2.4.3+,您可以啟用 HTTP 插件並簡化您的代碼。 看:

此外,為了使用TCPSession自動處理 HTTP 數據包,我將使用sniff(prn=)而不是PcapReader 他們做同樣的事情。

from scapy.layers.http import *
from scapy.sessions import TCPSession
from scapy.sendrecv import sniff
plist = []

def func(pkt):
    # called on each packet
    if HTTP in pkt:
        if HTTPResponse in pkt:
            # status codes are only in responses
            status = pkt[HTTPResponse].Status_Code
            if int(status) in [403, 429]: # check code
                plist.append(pkt)

sniff(offline="./my_file.pcap", prn=func, store=False, session=TCPSession)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM