繁体   English   中英

用scapy指定数据包长度

[英]Specifying packet length with scapy

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

我正在用它开始。

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

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

关于这个的任何想法?

谢谢!

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

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

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

Scapy的Raw()函数填充数据包的有效负载。 如果您知道标题大小,则只需使用随机数据填写剩余字节。

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

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

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

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM