[英]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.