gpt4 book ai didi

scapy - 递增模式作为有效负载

转载 作者:行者123 更新时间:2023-12-04 18:23:24 26 4
gpt4 key购买 nike

如何使用 scapy 创建一组具有递增有效负载的数据包?例如,第一个数据包的有效负载(数据)必须为 1,第二个必须为 2,依此类推。

我试过这个:

>>> pkt=(Ether(dst='00:01:02:03:04:05', src='00:06:07:08:09:0a')/ IP(src='192.168.0.1', dst='192.168.0.2', tos=0)/ TCP(sport=(123), dport=123))/(1,20)

但是我得到一个错误。

如果我想创建 10 个数据包,源端口从 123 开始,每个数据包递增 1,并以 133 结束。我这样做:

>>> pkt=(Ether(dst='00:01:02:03:04:05', src='00:06:07:08:09:0a')/ IP(src='192.168.0.1', dst='192.168.0.2', tos=0)/ TCP(sport=(123,133), dport=123))/("x")
>>> pkts=[p for p in pkt]
>>> pkts

哪个效果好

更新:我制作了这个用于增加 IP 地址的脚本:

#!/usr/bin/env python
import sys
from scapy.all import IP,TCP
from scapy.utils import wrpcap


if len(sys.argv) >= 2:
payload = sys.argv[1]

print "generating packets..."
ip = IP(dst="192.168.0.2", tos=0)
ip_str=[]
for i in xrange(1, 256):
temp_ip_str = "192.168.0.%d"%(i)
ip_str.append(temp_ip_str)
ip.src = ip_str
tcp = TCP(sport=443, dport=80)/(payload*6)
pkt=[p for p in ip/tcp]
wrpcap("%s.cap"%payload, pkt)

对于有效负载,它应该可以类似地工作

最佳答案

如果您希望您的负载包含 ASCII 字符串“1”、“2”、...“19”、“20”,请尝试以下操作:

pkt=(Ether(dst='00:01:02:03:04:05', src='00:06:07:08:09:0a')/ 
IP(src='192.168.0.1', dst='192.168.0.2', tos=0)/
TCP(sport=(123), dport=123)/
Raw((1,20)))

如果您希望每个有效载荷包含一个字节,值为 1、2、... 20,请尝试以下操作:

pkt=(Ether(dst='00:01:02:03:04:05', src='00:06:07:08:09:0a')/
IP(src='192.168.0.1', dst='192.168.0.2', tos=0)/
TCP(sport=(123), dport=123)/
Raw(list(chr(x) for x in range(1,21))))

无论哪种情况,您都可以通过以下方式确认您得到了什么:

wireshark(pkt)

关于scapy - 递增模式作为有效负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17811734/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com