web-dev-qa-db-ja.com

Wireshark localhostトラフィックキャプチャ

Localhostで実行するCで簡単なサーバーアプリを作成しました。 Wiresharkを使用してlocalhostトラフィックをキャプチャする方法は?

111

Windowsを使用している場合 不可能です -以下をお読みください。代わりにマシンのローカルアドレスを使用すると、データをキャプチャできます。 CaptureSetup/Loopbackを参照してください。

要約:Linux、Mac OS Xを含むさまざまなBSD、およびDigital/Tru64 UNIXのループバックインターフェイスでキャプチャでき、IrixおよびAIXでも実行できる場合がありますが、間違いなくSolaris、HP-UXではできません...

ページでは、これはWiresharkのみを使用するWindowsでは不可能であると記載されていますが、実際には 異なる回答 で説明されている回避策を使用して記録できます。


編集:約3年後、この答えは完全に正しくなくなりました。リンクされたページには、ループバックインターフェイスでキャプチャするための指示が含まれています

65
cnicutar

何らかの理由で、以前の回答はどれも私のケースでは機能しませんでしたので、トリックを行ったものを投稿します。 RawCap と呼ばれる小さな宝石があり、Windowsでローカルホストトラフィックをキャプチャできます。利点:

  • わずか17 kB!
  • 外部ライブラリは不要
  • 使い方は非常に簡単です(起動して、ループバックインターフェイスと宛先ファイルを選択するだけです)

トラフィックがキャプチャされたら、それを開いてWiresharkで通常どおり検査できます。私が見つけた唯一の欠点は、フィルターを設定できないことです。つまり、重い可能性があるすべてのローカルホストトラフィックをキャプチャする必要があります。また、Windows XP SPに関する1つの bug があります。3。

その他のアドバイス:

47
Miljen Mikic

Windowsプラットフォームでは、Wiresharkを使用してlocalhostトラフィックをキャプチャすることもできます。あなたがする必要があるのは、 Microsoft loopback adapter をインストールし、それを嗅ぎ付けることです。

47
ciphor

私は実際にこれを試したことはありませんが、ウェブからのこの答えは有望に聞こえます:

Wiresharkは、ウィンドウXPスタックの性質により、ウィンドウTCPでローカルパケットを実際にキャプチャできません。パケットが同じマシン上で送受信される場合、wiresharkが監視するネットワーク境界を越えるようには見えません。

ただし、これを回避する方法があります。WindowsXPマシンに(一時的な)静的ルートを設定することにより、ネットワークゲートウェイ(ルーター)を介してローカルトラフィックをルーティングできます。

XP IPアドレスが192.168.0.2で、ゲートウェイ(ルーター)アドレスが192.168.0.1である場合、Windows XPコマンドラインから次のコマンドを実行して、すべてのローカルトラフィックを強制的に送信し、ネットワークの境界を越えて戻るため、wiresharkはデータを追跡できます(wiresharkは、このシナリオでは、PCを離れるときと戻るときにパケットを2回報告することに注意してください)。

route add 192.168.0.2 mask 255.255.255.255 192.168.0.1 metric 1

http://forums.whirlpool.net.au/archive/1037087 、今すぐアクセス。

26
feuGene

Npcapを試してください: https://github.com/nmap/npcap 、WinPcapに基づいており、Windowsでのループバックトラフィックキャプチャをサポートしています。 NpcapはNmap( http://nmap.org/ )のサブプロジェクトですので、Nmapの開発リスト( http:// seclists。 org/nmap-dev / )。

10
Yang Luo

Wiresharkでループバックトラフィックをライブで表示するには、 RawCap の出力を即座に読み取らせます。 cmaynard はこの独創的なことを説明しています Wiresharkフォーラムでのアプローチ 。ここで引用します。

[...] Wiresharkでライブトラフィックを表示する場合は、1つのコマンドラインからRawCapを実行し、別のコマンドラインからWiresharkを実行することで、引き続き実行できます。 cygwinのテールが利用できると仮定すると、これは次のようなものを使用して実現できます。

cmd1: RawCap.exe -f 127.0.0.1 dumpfile.pcap

cmd2: tail -c +0 -f dumpfile.pcap | Wireshark.exe -k -i -

Cygwinのしっぽが必要で、Windowsのすぐに使えるツールでこれを行う方法を見つけることができませんでした。彼のアプローチは私にとって非常にうまく機能し、キャプチャされたループバックトラフィックでWiresharkのすべてのフィルター機能をライブで使用できます。

7
Richard Kiefer

Windowsの場合、

Local LoopbackWiresharkのパケットをキャプチャすることはできませんが、使用できますRawCapと呼ばれる非常に小さいが便利なプログラム;

RawCap

RawCapcommand Promptで実行し、ループバック擬似インターフェース(127.0.0.1)その後、パケットキャプチャファイルの名前を書き込むだけです(。pcap

簡単なデモは次のとおりです。

C:\Users\Levent\Desktop\rawcap>rawcap
Interfaces:
 0.     169.254.125.51  Local Area Connection* 12       Wireless80211
 1.     192.168.2.254   Wi-Fi   Wireless80211
 2.     169.254.214.165 Ethernet        Ethernet
 3.     192.168.56.1    VirtualBox Host-Only Network    Ethernet
 4.     127.0.0.1       Loopback Pseudo-Interface 1     Loopback
Select interface to sniff [default '0']: 4
Output path or filename [default 'dumpfile.pcap']: test.pcap
Sniffing IP : 127.0.0.1
File        : test.pcap
Packets     : 48^C
4

Solaris、HP-UX、またはWindowsでループバックをキャプチャすることはできませんが、RawCapなどのツールを使用すると、この制限を簡単に回避できます。

RawCapは、127.0.0.1(localhost/loopback)を含む任意のIPで生パケットをキャプチャできます。 Rawcapはpcapファイルも生成できます。 Wiresharkpcapファイルを開いて分析できます。

RawCapとWiresharkを使用してlocalhostを監視する方法の詳細については、 here を参照してください。

3
cmd

はい、Npcap Loopback Adapterを使用してlocalhostトラフィックを監視できます

2
melwinalm