草庐IT

python - 如何用scapy重新计算IP校验和?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Howtocalculateapacketchecksumwithoutsendingit?我已经在捕获的数据包中伪装了源IP和MAC地址,但现在我需要重新计算校验和,以便它在收到后检查(当然是在注入(inject)网络之后)。我真的不想自己实现校验和,我在想scapy可以为我做这件事。我读到show2()函数应该重新计算校验和,但我似乎无法让它工作。那么,我如何使用scapy重新计算(并替换)捕获的+欺骗数据包的校验和?谢谢!

python - Scapy BPF 过滤器不工作

我正在使用Scapy并希望根据目标mac地址进行过滤。但是,我得到显示的数据包,其中目标MAC地址不是过滤器中指定的地址。这是一个代码片段:fromscapy.allimport*sniff(iface="eth1",filter="etherdsthost91:e0:f0:01:00:00",count=3,prn=lambdax:x.show())我正在运行Scapy2.2.0关于这里的问题有什么想法吗? 最佳答案 Scapy需要许多不同系统的大量依赖项。您很可能没有BPF过滤器工作所需的依赖项。http://www.secde

python - 在 scapy/python 中获取数据包大小

在Scapy(或者甚至只是Python,为此)中,我如何获得给定数据包的大小(以字节为单位)?我很想使用函数len但我不确定它在数据包的情况下究竟返回什么。>>>len(IP(dst="www.google.com"))20>>>len(IP(dst="www.google.com")/TCP(dport=80))40 最佳答案 >>>len(IP(dst="www.google.com"))20最小的IP头有20个字节。>>>len(IP(dst="www.google.com")/TCP(dport=80))40最小的TCPhe

Python scapy 导入错误

如果我在python源文件中包含以下行fromscapy.allimport*我收到这个错误fromscapy.allimport*ImportError:Nomodulenamedall在Console和IDLE中是这样,但在eclipse中不是这样。我很困惑为什么会这样。有人可以帮助我吗? 最佳答案 如果你的系统没有安装scapy,那么你可以使用这个命令来安装scapy:sudoapt-getinstallpython-scapy 关于Pythonscapy导入错误,我们在Stack

python - 使用 Scapy 解析 PPPoE 标签

我正在尝试使用Scapy正确剖析PPPoE发现数据包。以下是Scapy显示示例PADI数据包的方式:>>>p=Ether("\xff\xff\xff\xff\xff\xff\x08\x00'\xf3>>p.show()###[Ethernet]###dst=ff:ff:ff:ff:ff:ffsrc=08:00:27:f3:3c:35type=0x8863###[PPPoverEthernetDiscovery]###version=1Ltype=1Lcode=PADIsessionid=0x0len=12###[Raw]###load='\x01\x01\x00\x00\x01\x03

python - 中间人用 scapy 攻击

我正在尝试在测试网络上使用scapy进行中间人攻击。我的设置是这样的:现在你明白了,这是代码:fromscapy.allimport*importmultiprocessingimporttimeclassMITM:packets=[]def__init__(self,victim=("192.168.116.143","00:0c:29:d1:aa:71"),node2=("192.168.116.1","00:50:56:c0:00:08")):self.victim=victimself.node2=node2multiprocessing.Process(target=self

python - Scapy 如何获取 ping 时间?

我正在尝试编写一个scapy脚本,它可以计算ping时间的平均值,因此我需要获取发送ICMP回显/回复数据包和收到回复数据包之间耗时。现在,我有这个:#!/usr/bin/envpythonfromscapy.allimport*fromtimeimport*defQoS_ping(host,count=3):packet=Ether()/IP(dst=host)/ICMP()t=0.0forxinrange(count):t1=time()ans=srp(packet,iface="eth0",verbose=0)t2=time()t+=t2-t1return(t/count)*10

python - 如何 pickle scapy 数据包?

我需要pickle一个scapy数据包。大多数时候这是可行的,但有时pickler会提示函数对象。根据经验:ARP数据包pickle很好。一些UDP数据包有问题。 最佳答案 我的解决方案(受到scapy邮件列表的启发)如下:classPicklablePacket:"""Acontainerforscapypacketsthatcanbepickled(incontrasttoscapypacketsthemselves)."""def__init__(self,pkt):self.contents=bytes(pkt)self.t

python - 使用 Scapy 获取 TCP 标志

我正在解析一个PCAP文件,我需要提取TCP标志(SYN、ACK、PSH、URG等)。我正在使用packet['TCP'].flags值一次获取所有标志。pkts=PcapReader(infile)forpinpkts:F=bin(p['TCP'].flags)printF,bin(F),p.summary()#manualflagsextractionfromF有没有办法在不从packet['TCP'].flags值中手动提取它的情况下获取单个TCP标志? 最佳答案 通常,处理FLAGS的常用方法是使用位图和位运算符。如果您的P

python - 导入模块时抑制 scapy 警告消息

我正在编写一个小脚本,它使用scapy收集一些信息,然后返回一些xml代码,我将把这些代码传递给metasploit的xmlrpc接口(interface)。我希望我的脚本只返回xml,没有额外的警告等。我可以通过在我的sr1命令中添加选项verbose=0来抑制大多数scapy输出。在每次输出之前我仍然得到的是:WARNING:NoroutefoundforIPv6destination::(nodefaultroute?)通过像这样调用我的脚本,我可以轻松地重定向该输出:./myscript2>/dev/null但我想将其合并到脚本中。为此,我找到了一个提示,可以有一个NullDe