問題タブ [packet-injection]

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

tcp - tcp パケット インジェクション - ?

ホスト 192.168.1.13 に TCP クライアントがあり、静的 IP 176.132.74.74 からデータを読み取っています ... この接続に巧妙に細工されたパケットを挿入して、ファイアウォールがスプーフィングされたトラフィックを除外できるかどうかをテストする必要があります。ホスト 192.168.1.15 から "nemesis" 1.4beta3 を試しました: nemesis tcp -v -D 192.168.1.13 -S 176.132.74.74 -fS -fA エラーが発生しました: "ソケット記述子を割り当てられません" TCP 緊急ポインター: 0 ネメシスの使い方に誤りがありますか、それとも同じホスト (192.168.1.13) からしか使えませんか? この目的に使用できる他の同様のツールはありますか? アドバイスをいただければ幸いです。nemesis の使用に関しては、あまり見つけることができません。

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

c++ - パケット注入のための Libnet と Raw ソケット

GNU/Linux システムでのパケット インジェクションに関するいくつかの事柄について、経験豊富なネットワーク プログラマーの意見/アドバイスが必要です。私は、パケット インジェクションとスニッフィング用のオープン ソース C++ ライブラリに取り組んでいます。ライブラリはlibcrafterです。このページには、ライブラリがどのように機能するかを確認するためのいくつかの例があります。

私にはジレンマがあり、あなたの考えに感謝します。現在、ライブラリはネットワーク上でパケットを書き込む 2 つの方法を「提供」しています。まず、パケットが構築されます。

1) そして、Send() 関数で送信されます。

2) または RawSocketSend() 関数を使用する (これは、ベンチマークに使用している「実験的」関数ですが、ユーザーが利用できます):

ここで、sd はソケット記述子です。パケットにリンク層プロトコル (イーサネットなど) がある場合、sd は PACKET ソケット記述子である必要があります。そうでない場合は、RAW ソケット記述子にする必要があります。

パケットを送信する標準的で文書化された方法は、Send() メソッドを使用することです。現在、Send() メソッドはlibnetを使用してネットワーク上にパケットを書き込みます。

問題は、Send() 関数が RawSocketSend() よりもはるかに遅いことです... libcrafter がプロトコル フィールドを処理して libnet_build* を適切に使用する方法を適応させるために、私は常に多くのトリッキーで面倒なことをしなければなりません*関数 (パフォーマンスが低下します)。また、プロトコルを実装するたびに、libnet のドキュメントを確認する必要があり、開発プロセスが非常に退屈で遅くなります。そのため、パケット インジェクションに libnet を使用するのをやめ、Send() 関数内で RAW/PACKET ソケットを直接使用することを考えていました。

Libcrafter は、パケット クラフティング (チェックサム計算、バイト順、ヘッダー長など) のすべての面倒な作業を、ユーザーに対して透過的な方法で処理するように設計されています。また、RAW/PACKET ソケット (RawSocketSend 関数) を使用する最も一般的な GNU/Linux システム (Ubuntu、Fedora、Debian) では、すべて正常に動作します。

私が libnet を使用する唯一の理由は、移植性の問題です。しかし、libcrafter を GNU/Linux システム以外のシステムに移植する知識や意図はありません。

私の質問は次のとおりです。

  1. GNU/Linux のパケット注入ライブラリで RAW/PACKET ソケットを使用するのは賢明で安全ですか?
  2. libnet の使用をやめる場合、GNU/Linux ディストリビューション間の RAW/PACKET ソケットの移植性に関して考慮すべきいくつかの問題を知っていますか?
  3. RAW/PACKET ソケット インターフェイスは、カーネルの将来のバージョンで変更される可能性がありますか?

どうもありがとうございました :-)

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

network-programming - その場で HTTP URL を変更する

ユーザーの HTTP リクエストを次のように変更することは可能ですか?

それ以外の

私のシナリオでは、約 30000 人のユーザーが会社のネットワーク バックボーンに接続しており、バックボーン スイッチと Radware LoadProof の間に 1 つ以上のサーバーを (現在取り組んでいるコードで) 追加して、この作業を実現したいと考えています。

一晩中グーグルで調べた後、私には手がかりがありませんが、さらにいくつか質問があります:

  1. ネットワークを介してすべてのパケットを傍受する必要はありません。iptables などの助けを借りて、必要なパッケージを除外できます。iptablesを使用する前にそれを行いました。ただし、パケットは HTTP ストリームと同じではありません。HTTP の再構築を行う必要がありますか?
  2. HTTP 要求の URL コンテンツを変更する方法を見つけたとしても、それをネットワーク ストリームに戻す必要があります。私が知っているように、TCP パケットにはチェックサムがあり、コンテンツを変更した後は間違っているはずです。新しいチェックサムを計算し、パケットをネットワークに戻すにはどうすればよいですか?

ネットワークプログラミングやパケット処理の開発をするのは初めてです。どんな提案でも大歓迎です。

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

python - Python Scapy は TCP オプションを導入します

ユーザー タイムアウトと呼ばれる TCP オプションを使用してパケットを作成しようとしています。scapy はこれをサポートしていますか? MSS のようなオプションを追加するのは、かなり簡単に思えます。オプションの RFC は次のとおりです: https://www.rfc-editor.org/rfc/rfc5482#section-2

ポインタはありますか?

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

clang - Libnet11 は手動で IPv6 パケットを構築します

Libnet11関数を使用しようとしています:

ネットワーク層にIPv6パケットを注入します。IPv6 パケットを作成し、Wireshark でキャプチャしました。Wireshark が報告: 不正な形式のパケット(Wireshark は、IPv6 の次のヘッダー値が正しくなく、私の意見ではペイロード サイズが大きすぎると言っています)

libnet11 (libnet_write_raw_ipv6()) を使用してIPv6 パケット (ICMPv6 拡張ヘッダーを使用) を手動で構築する方法を示す、最小限のコード例で誰かが私を助けてくれることを願っています。

最小限のコードは次のようになると思います。

コード例を見つけようとしましたが、成功しませんでした。前もって感謝します。

マーティン

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

sockets - SIOCGIFINDEXを使用したインターフェイスインデックスの取得中にエラーが発生しました

こんにちは私はrawソケットを使用してパケットインジェクションを実行しようとしていますが、ioctlのSIOCGIFINDEXコマンドを使用してインターフェイスインデックスを取得する際に問題があります。OSとしてubuntu12.04を使用しています。コードを手伝ってください:

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

perl - perl変数からバイナリデータをコマンドにパイプする

セキュリティ、DNS キャッシュ ポイズニング、およびカミンスキー攻撃に関連する宿題として、Nemesisを使用してローカル DNS サーバーにパケットを送信する Perl スクリプトを作成しています (これはすべて、閉じたホストオンリーの VMWare ネットワークで行われています)。ネメシスを呼び出すプロセスの自動化まですべてを行いました。

特に Perl を使用して、ランダムな DNS トランザクション ID を選択し、以前に作成した DNS ペイロードにそれらを追加しています。現在、ペイロードは DNS の回答ではなく単なるクエリであるため、ペイロードの ID 部分を作成し、Perl で敵にプッシュする方法を完成させることができます。

私のコードは現在...

私が抱えている問題は、ネメシスがデータを文字列として読み取っていることです。これはもちろん、エコーが行っていることです。したがって、データを ASCII ではなくバイナリ データとして nemesis にパイプする必要があります。

pack()バイナリファイルを作成してから、「cat /foo/bar/file | nemesis -...」を使用してペイロードを実行できると思いますが、余分なIOが必要ないため、これは最適なソリューションではありません(仮想的に、決して届かない) 本物の応答を受信する前に、私が試行できる悪意のある DNS 応答の数の要因となる時間。

このデータをバイナリ形式でネメシスにフィードできるようにするために調べることができるいくつかの方法は何ですか?

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

c - hping はどのようにしてパケットを送信するのが高速なのですか?

パケットの送信速度について 2 つのツールを比較しましhpingpackETHcli。packETHcli のコマンド ライン オプションは次のとおりです。

そしてhpingの場合は

しかし、iptraf では、hping のパケット送信速度が packETHcli の約 10 倍高速であることを示しています。

どちらのツールも raw ソケットを使用しますが、なぜこれほど大きな違いがあるのでしょうか?

ソースコードを取得するためのリンクは次のとおりです。

hping: http://wiki.hping.org/

packETHcli: http://sourceforge.net/projects/packeth/

編集: AF_INET raw ソケットを使用 していることに気付きましたhping。ペイロードは TCP です。packETHcliPF_PACKET raw ソケットを使用します。私の例では、ペイロードは ICMP のペイロードを持つ IP パケットです。パケットの送信速度に違いはありますか?

EDIT2

hping3今回はifconfigを使って実行前後の送信パケット数の差を調べてみましたpackETHcli。そして、2 つのツールのパケット生成率が近いことがわかりました。hping3は、1 秒あたり約 100000 パケットであり、1 秒packETHcliあたり約 80000 パケットです。

vnstatまた、パケット生成率の測定にも使用します。結果は、 から取得した数値と一致していifconfigます。

だから、それはiptraf嘘のようです。そしてiptraf、IP ID番号とTCPシーケンス番号を更新せずに、TCPパケットの繰り返しの再送信を監視するために使用します。iptraf私のパケット送信レートは毎秒 0 パケットだと思います。iptraf重複したパケットをカウントしない可能性がありますか?

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

tcp - tcpreplay: -T オプション

には、公式の FAQによると、パラメータで呼び出されるtcpreplay非常に便利な機能があります。-T

パケット長 (この場合は 8892 バイト) が、発信インターフェイスの最大伝送単位 (MTU) よりも大きい。Tcpreplay はパケットをスキップする必要があります。または、 -T オプションを指定すると、 tcpreplay はパケットを MTU サイズに切り捨て、チェックサムを修正して送信します。

残念ながら、-Tmanページでは何か違うようです:

このオプションは tcpreplay の最近のバージョンでは削除されましたか?

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

encryption - tor トラフィックの復号化

ローカル ネットワークのマシーンで使用する tor クライアントを取得したので、すべてのトラフィックをキャプチャします。また、任意のサーバー/クライアント上のすべての tor トラフィックをリダイレクトしたり、ネットワークにクライアントを追加したり、このマシンからのすべてのパケットを変更または挿入したりできます。

では、この tor トラフィックを解読する方法や、要求されたリソースを表示する方法はありますか?