草庐IT

scapy_pkt

全部标签

python-2.7 - scapy 中的 <Raw> 标签,如何解码内容?

我使用Scapy嗅探TCP数据包,试图从响应中获取HTML代码。>>>A=sniff(filter='tcp')(然后我刷新了一个网页)>>>A>>>A.show()0000Ether/IP/TCP192.168.0.2:60210>74.125.28.95:wwwS(显然不止这些,这只是一个例子)>>>A[28]>\xe7\x07\x8f];\xdf\x13\x0eT\xd7\xcc\xbe\xf2\xf57\x80\x02\x00\x03\xac\xcc}\xcd\x02\xb4\x9e\x05h\x9d\xdb\x07\x18\xa0\x00\x9c\xfd\xd0\xc7\x8

python - 如何在 Scapy 中正确修改数据包数据?

我一直在使用Scapy,并且一直在制作数据包。我遇到的一个问题是试图在数据包中指定某些数据/选项。例如,我想制作一个带有选项60的DHCP数据包,但我不知道为此使用的有效输入数据是什么。我知道数据包应该有一个DHCP.options列表,我可以将这样的选项添加到列表中,但我如何知道我实际可以使用的数据类型和范围?我也知道我可以在解释器中键入DHCPOptions来查看它是一个“供应商类ID”,但我如何才能将它正确地添加到数据包中呢?另一个例子:对于TCP时间戳选项,我发现我必须输入('Timestamp',(int,int)),换句话说,字符串时间戳和该元组中的两个整数元组,在我不知道

python - 使用 scapy 查找 tcp 流

我正在使用scapys嗅探功能来捕获tcp和udp数据包。我想知道tcp流以及流存在多长时间。在wireshark中,我们有wireshark内部的sessionID。我想知道多长时间使用scapy嗅探的数据包存在流。是tcp或udp数据包中的任何字段或计算流存在多长时间的任何方式。我正在谷歌中寻找解决方案,但没有找到答案。我们在wireshark中也有一个图表来查看流向箭头。我们可以使用python实现相同的效果吗? 最佳答案 每个数据包都有一个与之关联的时间戳,您可以按如下方式轻松检索:>>>pkt=Ether()/IP()/U

Python Scapy 引入一个TCP选项

我正在尝试构建一个带有称为用户超时的TCP选项的数据包。scapy支持这个吗?添加诸如MSS之类的选项似乎非常简单。这是该选项的RFC:https://www.rfc-editor.org/rfc/rfc5482#section-2有什么建议吗? 最佳答案 文档似乎没有解释任何通过数字设置任意选项的方法。深入研究代码,看起来TCPOptionsField.i2m让您只需传递一个int而不是str即可。因此,尝试在与MSS相同的地方使用28。看起来您需要将选项字段的其余部分组成一个字符串——长度,然后是UTO+粒度的高位字节,然后是低

python - 如何使用 scapy 取消设置 TCP 数据包中的 EOL 选项

我一直在Python中使用scapy,但更具体地说,我一直在创建数据包并尝试在TCP层中设置选项。我知道我可以创建一个数据包>>>a=IP()/TCP()我也知道我可以在TCP层设置选项>>>a[TCP].options=[('MSS',1200),('NOP',None)]或者>>>a[TCP].options=('MSS',1200),('NOP',None)我遇到的问题是在我发送数据包并在wireshark中观察它之后。当我没有设置时,Wireshark总是显示在我的数据包中设置了列表结尾(EOL)选项。我不认为无论如何总是设置该选项,因为我已经看到很多没有显示该选项的TCP数据

python - Scapy - 持久的 RandIP

我正在尝试使用scapy模拟两台主机之间的TCP通信。我的问题是,我无法保存scapy为我生成的随机IP地址。这段代码src_IP=RandIP()print(src_IP)print(src_IP)print(src_IP)给我这样的输出234.200.98.20147.3.56.17135.102.142.49所以每次我访问src_IP它都有一个新值。有没有办法从scapy中保存随机IP?所以我可以在我的函数开始时生成2个IP,并将它们用作我的TCP通信的源和目标。我可以自己生成IP,但我认为必须有更优雅的解决方案。顺便说一句。没有数据包将被发送,它们将被写入PCAP文件。因此,我

python - Scapy:伪造数据包时要重新计算的字段

我正在使用Scapy伪造我捕获的某些数据包中IPheader中的TTL值。除了IP和传输层header中的校验和,还有什么我应该重新计算的吗?现在我在做:forpinmyPackets:p[IP].ttl=targetTTLdel(p[IP].chksum)del(p[IP].payload.chksum)foriinrange(len(myPackets)):myPackets[i]=myPackets[i].__class__(str(myPackets[i]))我问这个是因为Scapy的sr函数,它将数据包与其响应(在我的例子中是ICMP)相匹配,返回的数据有几个RTT>1秒,这

python - 使用 Scapy 制作数据包时,我在 Wireshark 中看不到我的有效负载

我正在编写一小段代码来为我正在进行的项目创建一个TsunamiSYN泛洪数据包。TsunamiSYN泛洪与普通SYN泛洪的不同之处在于数据包包含数据,这意味着链接带宽以及受害计算机上的资源都已耗尽。我想我已经成功地向我的数据包添加了一个数据负载,它在我运行代码时显示出来,但是当我在Wireshark上查看数据包时,我似乎看不到数据。我很可能遗漏了一些非常明显的东西,但我将不胜感激,这对我来说都是新的。#typesudo,commandthenfollowwithvictimIPaddressimportsysfromscapy.allimport*iterationCount=0f=I

python - 使用scapy时如何从数据包中读取整个ip层和tcp层?

我正在使用scapy接收ICMPDestinationunreachable(FragmentationneededICMPTYPE=3CODE=4)消息时进行TCP重传行为测试。测试流程是这样的:1.与服务器建立TCP连接2.TCP建立后向服务器发送HTTPGET请求3.当HTTPResponse返回时4.向设置了小MTU的服务器发送ICMP类型3代码4消息问题是ICMPTYPE=3CODE=4消息包含该HTTP响应数据包的IPheader和部分TCPheader(srt、dst和seq编号)。目前,我只是从HTTP响应数据包中读取每个参数(如IP标识、片段标记、ttl等)。问题是:

python - 用netfilterqueue和scapy修改HTTP头

我想使用netfilterqueue(0.6-最新版)和scapy将“主机”header更改为我的值。这是我的iptables规则:iptables-AOUTPUT-ptcp--dport80-jNFQUEUE--queue-num0我有我的代码:fromnetfilterqueueimport*fromscapy.allimport*defchange(pkt):scapy_pkt=IP(pkt.get_payload())ifscapy_pkt.haslayer(TCP)andscapy_pkt.getlayer(TCP).dport==80andscapy_pkt.haslaye