0

これは私が解決しようとしている問題です。

同じマシンのネットワーク カードで送信 http 要求パケットを読み取るアプリケーションを作成したいと考えています。これにより、そこからGET URLを抽出できます。この情報に基づいて、パケットを停止したり、リダイレクトしたり、通過させたりしたいと考えています。

ただし、アプリケーションをプロミスキャス モード (wireshark のように) で実行しながら、アウトバウンド パケットを食い尽くす (停止する) ことができるようにしたいと考えています。

私はこれについて少し調べました..

libpcap / pcap.h を使用すると、ネットワーク カードでパケットを読み取ることができますが、これらのパケットを停止したり、新しいパケットをネットワークに挿入したりする方法をまだ見つけられていません。

Python の twisted や scapy などの特定のものを使用すると、ローカル ポートでリッスンするサーバーをセットアップできます。次に、プロキシ構成を使用して、それに接続するようにブラウザーを構成できます。その後、このアプリはそのようなことを行うことができます..しかし、無差別であるという私の主な目的はここで打ち負かされます..

これをどのように達成できるかについての助けをいただければ幸いです..

4

4 に答える 4

3

アプリケーション層でこれに取り組み、透過プロキシ (例: squid ) と iptables ベースのアウトバウンド ポート 80 トラフィックのインターセプトを使用することをお勧めします。

これを提案する理由は、リクエストがパケット間で分割されるという問題を回避するためです。

ただし、それでもパケット傍受を進めたい場合は、netlinkの netfilters を使用してユーザー空間で行うことができます。libnlの周りには Python ラッパーがあると思います。

基本的に、傍受したいトラフィックの「QUEUE」を指すiptablesルールを作成し、ネットリンクライブラリを使用してキューを処理し、パケットを受け入れ、拒否、および/または変更するプログラムを作成します。

于 2012-08-22T12:05:32.323 に答える
0

このモジュールは、2つの別々のNICを使用し、このスレッドでそれらの間にソケット/パイプ(好きなもの)を使用して、Windowsに実装しました。

于 2012-10-17T13:29:38.637 に答える
0

ここでいくつかのことを混乱させています:

  • 「無差別」とは、通常、衝突ドメイン内のすべてのパケットをカーネルネットワークスタックまで配信し、配信を分類するハードウェアイーサネットネットワークカードのモードを指します(特定のMACへのユニキャスト、サブスクライブされたマルチキャスト、およびブロードキャストカードの通常の動作モード)。これは受信パス上にあります。

  • マシンから送信されるすべてのデータは、マシン上のネットワークカード(の1つ)を通過するため、ここでは「無差別」はまったく適用されません。

  • TCPベースのプロトコル(HTTP)のフィルタリングに取り組んでいますが、パケットの観点から話しています。これは間違っています。TCP接続は、(ソケットのリーダーとライターに関する限り)任意にIPデータグラムに分割できるストリームです。HTTPリクエストヘッダーからのそのURLは、複数のリンク層フレームに分割される可能性があります。それらをつなぎ合わせて、とにかくストリームを解析する必要があります。そうすれば、SSLが使用されている場合でも、その可能性はありません。

HTTPフィルタリングに興味がある場合は、HTTP RFCを読み、 squidnginxなどの既存のオープンソースコードを読んでください。

ネットワークスタックを詳しく調べて理解を深める場合は、W。リチャードスティーブンスの本を読み、オープンソースオペレーティングシステムの既存のコードを調べ、BPFnetlinkを確認してください。

これが少しそれをクリアすることを願っています。

于 2012-08-22T15:08:58.553 に答える
0

pcap を使用すると、パケットを停止することはできません。Windows を使用している場合は、ドライバー レベルに戻る必要があります...ただし、マシンが送信するパケットのみを停止できます。

解決策は、宛先マシンへのパイプとして機能することです。2 つのネットワーク インターフェイスが必要です (おそらくアドレスなしで)。送信元ネットワーク カードで興味のないパケットを取得すると、宛先ネットワーク カードに送信するだけです。パケットが興味深い場合は送信しないため、フィルターとして機能します。マルチメディアのパフォーマンス テスト (ジッター、ノイズなどをビデオ ストリーミングに追加) のために実行しました。

于 2012-08-22T14:33:00.370 に答える