問題タブ [scapy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2432 参照

python - 8 ビット未満の PacketFields を持つ scapy パケットの構築

scapy を使用して新しいプロトコルを追加しようとしていますが、長さが 1 バイト未満の他の BitEnumField "パケット" を格納するパケットを作成する際に問題が発生しています。(パケットをフルバイトフィールドにバンドルせずに)機能させるための回避策があるかどうか疑問に思っていました。次に例を示します。

これで、4 ビット長だけでStatus().show2()失敗する理由がわかりました。pktしかし、これも死にます(各パケットが独立して形成されるためだと思います):

TotalStatus().show2()self.post_build()catpktタプルと残りのペイロード(空の文字列)で終わる長いトレースバックを提供します。すなわち:>>> TypeError: can only concatenate tuple (not "str") to tuple

ビットフィールドを完全なバイトに束ねないようにする方法はありますか?

0 投票する
1 に答える
4511 参照

python - Scapy: 複雑なフィールドのグループ化による新しいプロトコルの追加

を使用して新しいパケット形式を指定しようとしていますscapy。パケットにはアイテムのリストがあり、アイテムは「グループ化されたフィールド」で構成されています。「グループ化されたフィールド」とは、異なるタイプのフィールドのサブシーケンスを意味します。私がscapyで知っている「グループ化されたフィールド」を作成する唯一の方法は、Packetクラスを使用し、FieldLenField/PacketListFieldを使用してシーケンスの長さとリストメンバーのタイプを参照することです。それは行く方法ですか?次のようになります。

このアプローチの問題は、パケットが再構成されたときにグループ化の構造が保持されないことです。アセンブリでは、count フィールドが 2 であっても、 の 2 番目のインスタンスはRepeatedSequenceraw ボディとして扱われます。RepeatingSequences再アセンブリ時に構造が保持されるように、このように追加するにはどうすればよいでしょうか? Packetリストのストレージ タイプとして頼らずにフィールドをグループ化する方法はありますか?

0 投票する
3 に答える
17567 参照

python - tcpdump からペイロードを削除しますか?

イーサネット、IP、およびレイヤー 4 (私の場合は TCP) ヘッダーのみを含む pcap ファイルを生成する自動化された方法 (tcpdump またはヘルパー アプリを介して) はありますか?結果のpcap?ヘッダーのサイズはさまざまな場合が多いため、ペイロード データをまったくキャッチしないキャプチャ サイズを選択することは不可能であることがわかりました。

0 投票する
2 に答える
3471 参照

python - pcapファイルからイーサネットレベルのデータを抽出する方法は?

私はいくつかのpcapファイルを持っていますが、以前はtsharkを組み合わせたpythonを使用してソースIPアドレス、タイムスタンプなどを抽出していました。

ただし、これらのpcapファイルをWiresharkで開きます。VLAN情報も含まれています。VIDは私が今抽出したいものです。

ターミナルで使用tshark -r xx.pcapしていますが、TCPレベルの情報しか表示できず、このVLANIDを取得できません。Pythonでそれを行う方法を知っている人はいますか?ライブラリまたはツールを使用しますか?

0 投票する
2 に答える
2365 参照

python - Python で Scapy 関数の出力をキャプチャする

scapy 関数 (traceroute) の出力を Python スクリプトの文字列にキャプチャしようとしています。この関数を stdout にパイプする必要があることは理解しています (subproces.call() で行うように) が、scapy を使用してこれを行う方法がわからない場合、誰か支援を提供できますか? Python は初めてです。

以下の関連コード。

0 投票する
2 に答える
2875 参照

python - Scapyを使用したPPPoEタグの解析

Scapyを使用してPPPoEディスカバリパケットを正しく分析しようとしています。ScapyがPADIパケットの例を表示する方法は次のとおりです。

そのRawペイロードを解析したいと思います。このペイロードは単なるリストPPPoEタグです。各タグは、2バイトのコードフィールド、2バイトの長さのフィールド、および値(もちろん、前のフィールドで指定された長さ)で構成されます。

これは、これらすべてを表現するための私の試みです。

それが正しい最善の方法であるかどうかはよくわかりません。改善に関するアドバイスはありますか?

0 投票する
4 に答える
42865 参照

python - scapy で src/dst を変更して pcap からパケットを送信する

以前に記録したトラフィック (pcap 形式でキャプチャ) を scapy で送信しようとしています。現在、元の Ether レイヤーのストライピングに行き詰まっています。トラフィックは別のホストでキャプチャされたので、基本的に IP 層とイーサ層の src と dst の両方を変更する必要があります。IP 層を置き換えてチェックサムを再計算することはできましたが、Ether 層が問題を引き起こします。

IP および Ether レイヤー (src および dst) に変更を適用して、キャプチャ ファイルからパケットを再送信した経験がある人はいますか? また、キャプチャは Gb のかなり大きなカップルですが、そのような量のトラフィックで scapy パフォーマンスはどうですか?

0 投票する
1 に答える
997 参照

scapy - Scapyの使用中にエラーが発生しました

Python2.5とScapy2.2.0を使用しています。次のコードを実行すると:

次のエラーが発生します。

これを修正する方法はありますか?

0 投票する
3 に答える
20641 参照

python - Scapyを使用した不要なRSTTCPパケット

TCPがどのように機能するかを理解するために、私は自分のTCP SYN / SYN-ACK / ACKを偽造しようとしました(チュートリアルに基づく:http ://www.thice.nl/creating-ack-get-packets-with-scapy/ )。

問題は、コンピューターがサーバーからSYN-ACKを受信するたびに、接続プロセスを停止するRSTパケットを生成することです。

OSXLionとUbuntu10.10Maverick Meerkatで試してみましたが、どちらも接続をリセットしました。私はこれを見つけました:http://lkml.indiana.edu/hypermail/linux/net/0404.2/0021.html、それが理由かどうかはわかりません。

誰かが理由を教えてもらえますか?そして、この問題を回避する方法は?

ありがとうございました。

0 投票する
1 に答える
2967 参照

python - Python/Scapy で EAP 通信を開始する方法

ワイヤレス 802.1X サプリカントのように動作する Python/Scapy でアプリケーションをプログラミングしています。アプリケーションが EAP プロトコル経由で RADIUS サーバーに接続できるようにしたいと考えています。ここで EAP メッセージのフローチャートを見ると、次のようになります。

http://upload.wikimedia.org/wikipedia/commons/8/8a/EAP_message_flow.png

最初のメッセージ (Request Identity) がオーセンティケータからサプリカントに送信されることがわかります。しかし、オーセンティケーターは、サプリカントが自分自身を認証しようとしていることをどのように知るのでしょうか? 認証する必要があることをオーセンティケータに知らせる、サプリカントからオーセンティケータへの前のメッセージが必要です。

このメッセージは EAPOL START パケットだと思いました。scapy で EAPOL START パケットを偽造しようとし、801.1X + PEAP をサポートするように構成されている AP に送信しましたが、AP から応答がありませんでした。Request Identity パケットが返されませんでした。

私の質問は次のとおりです: EAP 通信を開始するために AP (オーセンティケーター) に送信する必要があるパケットの例を誰かに見せてもらえますか?