問題タブ [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.
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
ビットフィールドを完全なバイトに束ねないようにする方法はありますか?
python - Scapy: 複雑なフィールドのグループ化による新しいプロトコルの追加
を使用して新しいパケット形式を指定しようとしていますscapy
。パケットにはアイテムのリストがあり、アイテムは「グループ化されたフィールド」で構成されています。「グループ化されたフィールド」とは、異なるタイプのフィールドのサブシーケンスを意味します。私がscapyで知っている「グループ化されたフィールド」を作成する唯一の方法は、Packet
クラスを使用し、FieldLenField
/PacketListField
を使用してシーケンスの長さとリストメンバーのタイプを参照することです。それは行く方法ですか?次のようになります。
このアプローチの問題は、パケットが再構成されたときにグループ化の構造が保持されないことです。アセンブリでは、count フィールドが 2 であっても、 の 2 番目のインスタンスはRepeatedSequence
raw ボディとして扱われます。RepeatingSequences
再アセンブリ時に構造が保持されるように、このように追加するにはどうすればよいでしょうか? Packet
リストのストレージ タイプとして頼らずにフィールドをグループ化する方法はありますか?
python - tcpdump からペイロードを削除しますか?
イーサネット、IP、およびレイヤー 4 (私の場合は TCP) ヘッダーのみを含む pcap ファイルを生成する自動化された方法 (tcpdump またはヘルパー アプリを介して) はありますか?結果のpcap?ヘッダーのサイズはさまざまな場合が多いため、ペイロード データをまったくキャッチしないキャプチャ サイズを選択することは不可能であることがわかりました。
python - pcapファイルからイーサネットレベルのデータを抽出する方法は?
私はいくつかのpcapファイルを持っていますが、以前はtsharkを組み合わせたpythonを使用してソースIPアドレス、タイムスタンプなどを抽出していました。
ただし、これらのpcapファイルをWiresharkで開きます。VLAN情報も含まれています。VIDは私が今抽出したいものです。
ターミナルで使用tshark -r xx.pcap
していますが、TCPレベルの情報しか表示できず、このVLANIDを取得できません。Pythonでそれを行う方法を知っている人はいますか?ライブラリまたはツールを使用しますか?
python - Python で Scapy 関数の出力をキャプチャする
scapy 関数 (traceroute) の出力を Python スクリプトの文字列にキャプチャしようとしています。この関数を stdout にパイプする必要があることは理解しています (subproces.call() で行うように) が、scapy を使用してこれを行う方法がわからない場合、誰か支援を提供できますか? Python は初めてです。
以下の関連コード。
python - Scapyを使用したPPPoEタグの解析
Scapyを使用してPPPoEディスカバリパケットを正しく分析しようとしています。ScapyがPADIパケットの例を表示する方法は次のとおりです。
そのRawペイロードを解析したいと思います。このペイロードは単なるリストPPPoEタグです。各タグは、2バイトのコードフィールド、2バイトの長さのフィールド、および値(もちろん、前のフィールドで指定された長さ)で構成されます。
これは、これらすべてを表現するための私の試みです。
それが正しい最善の方法であるかどうかはよくわかりません。改善に関するアドバイスはありますか?
python - scapy で src/dst を変更して pcap からパケットを送信する
以前に記録したトラフィック (pcap 形式でキャプチャ) を scapy で送信しようとしています。現在、元の Ether レイヤーのストライピングに行き詰まっています。トラフィックは別のホストでキャプチャされたので、基本的に IP 層とイーサ層の src と dst の両方を変更する必要があります。IP 層を置き換えてチェックサムを再計算することはできましたが、Ether 層が問題を引き起こします。
IP および Ether レイヤー (src および dst) に変更を適用して、キャプチャ ファイルからパケットを再送信した経験がある人はいますか? また、キャプチャは Gb のかなり大きなカップルですが、そのような量のトラフィックで scapy パフォーマンスはどうですか?
scapy - Scapyの使用中にエラーが発生しました
Python2.5とScapy2.2.0を使用しています。次のコードを実行すると:
次のエラーが発生します。
これを修正する方法はありますか?
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、それが理由かどうかはわかりません。
誰かが理由を教えてもらえますか?そして、この問題を回避する方法は?
ありがとうございました。
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 (オーセンティケーター) に送信する必要があるパケットの例を誰かに見せてもらえますか?