- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
This问题解释了如何使用 scapy 读取数据包的 TLS 部分。
但是,我的程序无法读取它。它返回的只是一堆十六进制字符
>>> from scapy.all import *
>>> load_layer('tls')
>>> cap = rdpcap('tls.pcap')
>>> p1=cap[0]
>>> p1
<Ether dst=14:cc:20:51:33:ea src=f4:f2:6d:93:51:f1 type=0x800 |<IP version=4 ihl=5 tos=0x0 len=146 id=62970 flags=DF frag=0 ttl=64 proto=tcp chksum=0x50a0 src=192.168.1.143 dst=54.254.250.149 |<TCP sport=49335 dport=50443 seq=549695462 ack=200962336 dataofs=5 reserved=0 flags=PA window=4380 chksum=0xb0ac urgptr=0 |<Raw load="\x17\x03\x01\x00 \xf2\x10\xfd\x95N'\xf2\xaf\x99tp\x93\xbc\xe9\x81w\x91\x1b\xe0\xc9M:\x9a!]\xb0!\xae\xd2\x86\xb0>\x17\x03\x01\x00@d>\x0b\xee\xf0\xab\xded\x02E)\x0e0\xbb\xe6\x82uU\xb22\x87\xd6\xe4n[\x1d\x18\xe8\xd6\x1c\x00N_C\xe6\xdd\xbe\x89@6p\xd9\xaf\x19\xb3s\x07H\xdeF\x88\xdar\x0f\x8a\n!4\xeb\xd3F\xefgH" |>>>>
我想获取tls记录版本、tls记录长度和tls记录内容类型。
有人可以告诉我我做错了什么以及如何正确阅读 tls 内容吗?
我正在使用 Python3.6,因此无法使用稳定的 scapy-ssl_tls
,目前仅限于 Python 2。
最佳答案
你很亲近。您只需要使用 TLS(pkt.load)
。
对于此示例,使用此 tls capture来自 Wireshark 的 Bugzilla。
我们可以看到数据包 4 是 TLS Client Hello:
tshark -r DNS-over-TLS.pcapng -Y "frame.number==4"
4 0.122267 133.93.28.45 → li280-151.members.linode.com TLSv1 384 Client
Hello 00:00:5e:00:01:18 ← 48:d7:05:df:86:0b
确保您已安装加密库,因为它是加载 TLS 捕获所必需的。
>>> import cryptography
>>> # No errors
通过此次捕获重现您目前所拥有的内容:
>>> from scapy.all import *
>>> load_layer('tls')
>>> cap = rdpcap('DNS-over-TLS.pcapng')
>>> tls_client_hello=cap[3] # Wireshark numbers packets starting at 1, scapy at 0
>>> tls_client_hello
<Ether dst=14:cc:20:51:33:ea src=f4:f2:6d:93:51:f1 type=0x800 |<IP version=4
ihl=5 tos=0x0 len=146 id=62970 flags=DF frag=0 ttl=64 proto=tcp chksum=0x50a0
src=192.168.1.143 dst=54.254.250.149 |<TCP sport=49335 dport=50443 seq=549695462
ack=200962336 dataofs=5 reserved=0 flags=PA window=4380 chksum=0xb0ac urgptr=0 |
<Raw load="\x17\x03\x01\x00
\xf2\x10\xfd\x95N'\xf2\xaf\x99tp\x93\xbc\xe9\x81w\x91\x1b\xe0\xc9M:\x9a!]\xb0!\xa
e\xd2\x86\xb0>\x17\x03\x01\x00@d>\x0b\xee\xf0\xab\xded\x02E)\x0e0\xbb\xe6\x82uU\x
b22\x87\xd6\xe4n[\x1d\x18\xe8\xd6\x1c\x00N_C\xe6\xdd\xbe\x89@6p\xd9\xaf\x19\xb3s\
x07H\xdeF\x88\xdar\x0f\x8a\n!4\xeb\xd3F\xefgH" |>>>>
请注意,我们要查看的部分称为原始负载
。要访问数据包的这一部分,您可以使用 tls_client_hello.load
。请记住,TLS 将采用包含数据的字节对象,而不是整个数据包。
>>> TLS(tls_client_hello.load)
<TLS type=handshake version=TLS 1.0 len=313 iv=b'' msg=[<TLSClientHello
msgtype=client_hello msglen=309 version=TLS 1.2 gmt_unix_time=Tue, 18 May 2077
23:20:52 +0000 (3388605652)
random_bytes=d6d533aca04dca42db8b123b0a143dcd580079147122e4de095c15cf sidlen=0
sid='' cipherslen=182 ciphers=[TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
< TLS output truncated ... >
我强烈建议查看 Scapy TLS Notebooks很好地记录了 scapy+TLS 的使用情况。
关于python-3.x - 即使在 scapy 中调用 load_layer ('tls' 之后也无法读取 tls 部分),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58272264/
我使用 Scapy 创建一个初始 OpenVPN 数据包并将其发送到 OpenVPN 服务器(作为客户端)。数据包的 OpenVPN 部分我只是从旧的捕获连接中重用,但它在这里无关紧要。 事情是,我添
我在使用 Scapy 进行 TCP 握手时遇到问题。我的 Scapy 代码正在发送 SYN 数据包。目标正在使用 SYN/ACK 数据包进行响应。我可以在 tcpdump 中看到 SYN/ACK 数据
我正在查看一个需要制作 S1 应用程序协议(protocol) (S1AP) 数据包的项目。它用于 4G LTE 网络的 eNodeB 和 MME 之间。 S1AP 基于 IP 并由 Steam 控制
我尝试导入 scapy.all,但出现“wpcap.dll”不存在的错误。为什么会这样?我确定我正确下载了所有内容。我将所有内容保存到一个名为 scapy 的文件夹中。我从模块 ctypes 得到了一
如果我生成一个没有任何上层有效载荷的以太网帧并使用 sendp() 在第二层发送它,那么我会收到 "Mac address to reach destination not found. Using
I'm new to scapy and I'm trying to implement a protocol.Within this protocol a type, lets call it
我在 Windows 7 和 Fedora 机器上都安装了 scapy。但是,contrib 包没有安装(或者至少,它没有出现在我的 site-packages/scapy 包下。我怎样才能安装它?
我只是想在scapy中创建一个以eg开头的数据包 数据包 = RadioTap()/Dot11()/Dot11ACK() packet.show() 给了我这个错误。我无法发送任何没有 RadioTa
如何使用 scapy 创建一组具有递增有效负载的数据包?例如,第一个数据包的有效负载(数据)必须为 1,第二个必须为 2,依此类推。 我试过这个: >>> pkt=(Ether(dst='00:01:
我想知道如何验证从Scapy的sr1()函数接收到的数据包包含TCP层,以便对TCP标志进行一些处理。 最佳答案 您有两个选择,in运算符是一个。 >>> TCP in pkt True >>> if
我正在尝试使用Scapy学习一些数据包生成。看起来很酷。根据一些文档,我正在这样做: l3=IP(dst="192.168.0.1", src="192.168.0.2", tos=(46 ", li
我需要发送格式错误的以太网帧以进行测试。我已禁用 Rx 和 Tx 校验和的卸载: root@T60:~# ethtool --show-offload eth0 Features for eth0:
如何使用 scapy 更改数据包数据? 我尝试使用sniff(),然后send()编辑的数据包,但它不起作用,因为原始数据包已经到达目的地。 最佳答案 “但是它不会工作,因为原始数据包已经到达目的地。
我在 Ubuntu 16.04 中运行 sacpy 2.4。我发现基本数据包(Eth/IP/UDP 或 Eth/IP/TCP)wireshark 经常标记失败的帧检查序列。 经过调查,我发现“损坏的数
Scapy 文档给出了以下 ARP 缓存中毒的例子: send(Ether(dst=clientMAC)/ARP(op="who-has", psrc=gateway, pdst=client)) 问
背景: 我正在使用 scapy 测试一个网络设备,该设备可以通过交换源/目标 MAC、IP 地址和第 4 层端口号来选择性地环回数据包。可以为 layer_2_only 选择交换, layers_2_
如果我使用 sr1 为 www.google.com 发送 DNSQR,我会收到几个 DNSRR(s) 作为回复,例如(使用 ans[DNSRR].show() 完成): ###[ DNS Resou
我想将我的数据包发送到一个 UDP dst 端口号并通过 eth0 接口(interface)发送(如果 scapy 直接处理我的 layer2,那么 eth0 不需要作为参数给出) 最佳答案 使用
我如何计算我使用的捕获的数据包数量 packets = sniff(filter='udp and host fe80::xx:xx:xx:xx',count=0) 功能?这可能吗? 我实际上一直在尝
我正在使用 F5 Networks Big-IP 产品,该产品附加了一个自定义以太网 II 尾帧以进行调试。我正在尝试使用 Scapy 为这个预告片绑定(bind)一个新图层,但我无法这样做。 我可以
我是一名优秀的程序员,十分优秀!