特定のパケットサイズ(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))