我正在尝试发送特定的数据包大小(100 字节),scapy
但似乎无法得到它。
我用这个开始。
sr(IP(dst="192.168.1.1")/TCP(dport=443))
查看文档/帮助我不知道是否可以PacketLenField
用来指定数据包的长度。我可以用 NMAP 和 NSE 来做,但想在 NMAP 之外做。
关于这个有什么想法吗?
谢谢!
我正在尝试发送特定的数据包大小(100 字节),scapy
但似乎无法得到它。
我用这个开始。
sr(IP(dst="192.168.1.1")/TCP(dport=443))
查看文档/帮助我不知道是否可以PacketLenField
用来指定数据包的长度。我可以用 NMAP 和 NSE 来做,但想在 NMAP 之外做。
关于这个有什么想法吗?
谢谢!
您可以在制作数据包时添加所需的字节数作为字符串,例如:
payload = 'ZZZZZZZZZZZZZZZZZZZZZ'
pkt = Ether() / IP() / TCP() / payload
将工作。您只需要根据需要调整有效载荷的长度。
您可以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)
Scapy 的Raw()
函数填充数据包的有效负载。如果你知道你的头部大小,你只需要用随机数据填充剩余的字节。
您可以使用它RandString()
来生成随机填充。以下命令发送长度为 100 的数据包(并侦听响应):
sr(IP(dst="192.168.1.1")/TCP(dport=443)/Raw(RandString(size=72))