web-dev-qa-db-ja.com

Wiresharkのプロセス/ PIDでフィルター

TCP / SSLWireshark を使用して特定のプロセスIDに基づいてストリームをフィルタリング/フォローする方法はありますか?

108
Ryan Fernandes

どうしてかわかりません。 PIDはワイヤに到達しません(一般的に言えば)、さらにWiresharkでは、ワイヤ上にあるものを見ることができます-潜在的にallワイヤ上で通信しているマシン。とにかく、プロセスIDは異なるマシン間で一意ではありません。

53
Vinay Sajip

別の方法を探していて、使用している環境がWindowsの場合、Microsoftの Network Monitor 3.3が適切な選択です。プロセス名の列があります。コンテキストメニューを使用して簡単にフィルターに追加し、フィルターを適用します。通常どおり、GUIは非常に直感的です...

87
Sreejith Menon

たとえば、wiresharkのポート番号を netstat のポート番号に一致させると、そのポートでリッスンしているプロセスのPIDがわかります。

14
tw39124

Microsoft Message Analyzer v1.4を使用します

フィールドチューザーからProcessIdに移動します。

Etw
-> EtwProviderMsg
--> EventRecord
---> Header
----> ProcessId

右クリックして列として追加

11
Enki

Windowsには、メーリングリストで説明されているように、これを行う実験的なビルドがあります。ローカルプロセス名によるフィルター

3
patraulea

これは、特定のプロセスが接続しようとする場所を監視するためにできる重要なことであり、Linuxでこれを行う便利な方法はないようです。ただし、いくつかの回避策が考えられるため、言及する価値があると感じています。

nonet と呼ばれるプログラムがあり、インターネットにアクセスせずにプログラムを実行できます(システムにほとんどのプログラムランチャーがセットアップされています)。 setguidを使用してグループnonetでプロセスを実行し、 iptables ルールを設定して、このグループからのすべての接続を拒否します。

更新:今では私はさらにシンプルなシステムを使用しており、fermで読み取り可能なiptables構成を簡単に作成でき、プログラムsgを使用して特定のグループでプログラムを実行できます。 Iptablesでは、トラフィックを再ルーティングすることもできるため、ポート上の別のインターフェイスまたはローカルプロキシにルーティングすることもできます。トラフィックをチェックアウトしています。

グループでプログラムを実行し、実行期間中にiptablesを使用して他のすべてのトラフィックをカットするように調整することはそれほど複雑ではなく、このプロセスからのみトラフィックをキャプチャできます。

書いてみたら、ここにリンクを投稿します。

別の注意事項として、仮想マシンでいつでもプロセスを実行し、正しいインターフェースを探って、それが行う接続を分離することができますが、それは非常に劣ったソリューションです...

3
user1115652

まだ起動しなければならないアプリケーションをフォローしたい場合、それは確かに可能です:

  1. ドッカーのインストール( https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/ を参照)
  2. ターミナルを開いて小さなコンテナを実行します:docker run -t -i ubuntu /bin/bash(「ubuntu」をお気に入りのディストリビューションに変更します。これは実際のシステムと同じである必要はありません)
  3. 実際のシステムにインストールするのと同じ方法を使用して、コンテナにアプリケーションをインストールします。
  4. 実際のシステムでwiresharkを起動し、キャプチャ>オプションに進みます。表示されるウィンドウに、すべてのインターフェイスが表示されます。 anywlan0eth0を選択する代わりに、...代わりに新しい仮想インターフェイスdocker0を選択します。
  5. キャプチャを開始
  6. コンテナでアプリケーションを開始します

コンテナ内でソフトウェアを実行することに疑問があるかもしれません。そこで、おそらくあなたが尋ねたい質問に対する答えを以下に示します。

  • 私のアプリケーションはコンテナ内で動作しますか?ほぼ間違いなくありますが、動作させるためにドッカーについて少し学ぶ必要があるかもしれません
  • 私のアプリケーションは遅くなりませんか?無視できます。プログラムが1週間重い計算を実行するものである場合、1週間と3秒かかる可能性があります
  • もし私のソフトウェアまたは何か他のものがコンテナで壊れたら?それはコンテナのいいところです。内部で実行されているものはすべて、現在のコンテナを破壊するだけで、システムの残りの部分を傷つけることはできません。
1
Garo

場合によっては、プロセスIDでフィルタリングできません。たとえば、私の場合、1つのプロセスからのトラフィックをスニッフィングする必要がありました。しかし、configのターゲットマシンのIPアドレスにフィルタip.dst==someipと出来上がりを追加しました。いずれの場合も機能しませんが、一部の人にとっては便利です。

0
Alex Zhukovskiy

netstat を使用してポート番号を取得します。

netstat -b

次に、Wiresharkフィルターを使用します。

tcp.port == portnumber
0
Sahil Lakhwani