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 に答える