Python Scapy-数据包列表中的TCP会话

Python Scapy-数据包列表中的TCP会话,python,networking,scapy,packet-sniffers,Python,Networking,Scapy,Packet Sniffers,我尝试使用TCPSession函数,比如:sniffoffline=./my_file.pcap,prn=func,store=False,session=TCPSession,但不创建pcap文件 我收到一个原始数据包列表,这样我就可以构建一个Scapy数据包列表,但由于HTTP数据包,我需要TCPSession功能:没有TCPSession,头和主体在不同的数据包中,因此HTTP Layers类无法识别主体部分 因此,我有一个查找HTTP请求的代码: [...]<HTTPRequest

我尝试使用TCPSession函数,比如:sniffoffline=./my_file.pcap,prn=func,store=False,session=TCPSession,但不创建pcap文件

我收到一个原始数据包列表,这样我就可以构建一个Scapy数据包列表,但由于HTTP数据包,我需要TCPSession功能:没有TCPSession,头和主体在不同的数据包中,因此HTTP Layers类无法识别主体部分

因此,我有一个查找HTTP请求的代码:

[...]<HTTPRequest  Method='POST' Path='/NP3POCF.jsp' Http_Version='HTTP/1.1' Accept='*/*' Accept_Encoding='gzip, deflate' Connection='keep-alive' Content_Length='56' Content_Type='application/x-www-form-urlencoded' Host='172.16.191.129' User_Agent='python-requests/2.7.0 CPython/3.7.5 Linux/5.3.0-kali2-amd64' |>]
进口泡菜 从斯卡皮来的,都是进口货* 从scapy.layers导入http 加载层http def expandx: 产量x 而x.payload: x=x.1有效载荷 产量x 文件_pickle=open'prueba.pkl','rb' pkt\u list=pickle.loadfile\u pickle 对于pkt_列表中的原始pkt_: p=以太PKT_原始 如果p.haslayerIP: srcIP=p[IP].src 如果p.haslayerhtp: 如果p.haslayerHTTPRequest: printlistexpandp,end=\n--------------------------------------\n 执行此代码将查找HTTP请求,但不包含POST请求的正文部分:

[...]<HTTPRequest  Method='POST' Path='/NP3POCF.jsp' Http_Version='HTTP/1.1' Accept='*/*' Accept_Encoding='gzip, deflate' Connection='keep-alive' Content_Length='56' Content_Type='application/x-www-form-urlencoded' Host='172.16.191.129' User_Agent='python-requests/2.7.0 CPython/3.7.5 Linux/5.3.0-kali2-amd64' |>]
使用带有TCPSession的嗅探器(如Scapy sniff函数),数据包有一个原始层,其中包含请求主体

应用TCPSession有什么帮助吗?谢谢。

您可以通过X调用sniff offline=X,其中包含数据包列表、数据包、文件名或文件列表。
请确保您使用的是github开发版本,请参阅,因为我不确定该版本是否已发布。

目前,scapy不会接受带有offline arg的实际PacketList,因此需要将其包装在list函数中:offline=listmy_packet_list,尽管这可能很快会得到修复。