4

我正在尝试发送特定的数据包大小(100 字节),scapy但似乎无法得到它。

我用这个开始。

sr(IP(dst="192.168.1.1")/TCP(dport=443))

查看文档/帮助我不知道是否可以PacketLenField用来指定数据包的长度。我可以用 NMAP 和 NSE 来做,但想在 NMAP 之外做。

关于这个有什么想法吗?

谢谢!

4

3 回答 3

4

您可以在制作数据包时添加所需的字节数作为字符串,例如:

payload = 'ZZZZZZZZZZZZZZZZZZZZZ'
pkt = Ether() / IP() / TCP() / payload

将工作。您只需要根据需要调整有效载荷的长度。

于 2013-02-03T07:02:28.340 回答
1

您可以inet.Padding()scapy库中使用:

packet = IP(dst="192.168.1.1")/TCP(dport=443)

if len(packet)<100:
    #"\x00" is a single zero byte
    myString = "\x00"*(100 - len(packet))
    packet = packet/inet.Padding(myString)
于 2014-04-13T16:06:04.263 回答
1

Scapy 的Raw()函数填充数据包的有效负载。如果你知道你的头部大小,你只需要用随机数据填充剩余的字节。

您可以使用它RandString()来生成随机填充。以下命令发送长度为 100 的数据包(并侦听响应):

sr(IP(dst="192.168.1.1")/TCP(dport=443)/Raw(RandString(size=72))

于 2016-07-22T13:03:39.747 回答