Python Scapy使用

本文详细介绍了如何使用Python库Scapy进行pcap文件的读取与写入,探讨了pcap包结构,并展示了如何操作和查看网络数据包的不同层信息。
摘要由CSDN通过智能技术生成

1. 读取、写入pcap文件

#读取pacap
a = rdpcap('*.pcap')

#写入
for p in a:
    try:
        wrpcap('*.pcap',p,append = True)#append代表追加模式
    except IndexError:
        pass

2. pcap包结构

print a[0].display()#a[0]代表pcap包中的第一条数据

>>> a=IP() 
>>&g
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 Scapy 解析 HTTPS 流量需要先获取到 HTTPS 通信过程中的加密秘钥。获取方式一般有两种: 1. 使用 Wireshark 等抓包工具,从 SSL/TLS 握手过程中获取到加密秘钥。 2. 使用 SSLKEYLOGFILE 这个环境变量,将加密秘钥保存到一个文件中。这个环境变量告诉 SSL 库将加密秘钥写入指定的文件中,可以在 Scapy使用这个文件进行解密。 获取到加密秘钥之后,就可以使用 Scapy 解析 HTTPS 流量了。具体操作步骤如下: 1. 读取 pcap 文件,使用 rdpcap 函数: ``` packets = rdpcap('https.pcap') ``` 2. 配置解密参数,使用 SSL/TLS 握手过程中获取到的加密秘钥: ``` from scapy.layers.ssl_tls import * ssl_session_key = '<session key>' # 加密秘钥 ssl_master_key = '<master key>' # 主密钥 ssl_parameters = TLSParameters() ssl_parameters.set_cipher_suites(['TLS_RSA_WITH_AES_256_CBC_SHA256']) ssl_parameters.set_master_secret(bytes.fromhex(ssl_master_key)) ssl_parameters.set_session_ticket(bytes.fromhex(ssl_session_key)) ``` 3. 解析 HTTPS 报文: ``` for packet in packets: try: if packet.haslayer(TLS): tls_packet = packet[TLS] if tls_packet.handshake_type == 1: # 客户端发起握手 tls_record = TLSRecord(tls_packet.payload) tls_record.decode_payload_as(TLSHandshake) tls_handshake = tls_record.payload client_hello = tls_handshake.payload ssl_parameters.set_client_random(client_hello.random_bytes) elif tls_packet.handshake_type == 2: # 服务器响应握手 tls_record = TLSRecord(tls_packet.payload) tls_record.decode_payload_as(TLSHandshake) tls_handshake = tls_record.payload server_hello = tls_handshake.payload ssl_parameters.set_server_random(server_hello.random_bytes) elif tls_packet.content_type == 23: # 应用数据 tls_record = TLSRecord(tls_packet.payload) tls_record.decode_payload_as(TLSApplicationData) tls_application_data = tls_record.payload print(tls_application_data.data) except: pass ``` 需要注意的是,Scapy 在解析 HTTPS 报文时,默认不会解密加密的数据。需要手动配置解密参数,才能正确解析加密数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值