wiresharkでリモートマシンのトラフィックを盗聴するにはどうすればよいですか?


38

ローカルPCのトラフィックをスニッフィングできますが、wiresharkでリモートマシンのトラフィックをスニッフィングする方法を知りたいですか?

キャプチャオプションの場合、リモートインターフェイスを選択し、リモートIP show me error.code(10061)を入力します。私は何をすべきか?


5
ネットワークインターフェースが認識しているトラフィックのみをスニッフィングできます。ネットワークが切り替えられた場合、リモートマシンへのパケットは送信されません。ところで:あなたの受け入れ率を改善してみてください。
マッテオ

回答:


54

LinuxおよびOSXでは、sshでtcpdumpを実行し、wiresharkでパイプをリッスンさせることでこれを実現できます。

  1. 名前付きパイプを作成します。

    $ mkfifo /tmp/remote

  2. コマンドラインからwiresharkを起動します

    $ wireshark -k -i /tmp/remote

  3. リモートマシンでsshでtcpdumpを実行し、パケットを名前付きパイプにリダイレクトします。

    $ ssh root@firewall "tcpdump -s 0 -U -n -w - -i eth0 not port 22" > /tmp/remote

ソース:http : //blog.nielshorn.net/2010/02/using-wireshark-with-remote-capturing/


このようにルーター自体でルーターを通過するパケットをキャッチすることは可能ですか、それとも不可能ですか?
-inf3rno

これは素晴らしい。私の2c:[ssh root]を許可することは通常お勧めしませんが、/ etc / ssh / sshd_configの[Match User]行にrootを追加することで一時的に切り替えることができます。
ムードブーム

これは私のために働いていません、ssh root@{MY_VPS_IP} -p 27922 "tcpdump -s 0 -U -n -w - -i eth0 not port 27922" > /tmp/remote理由を教えてください。
フェニックス

@infmoルーターがtcpdumpを直接実行できる場合、可能です。私はtcpdumpをインストールするスペースがありません。ローエンドのルーターでは珍しくありません。
wheredidは、

21

このonelinerをルートとして使用します。とても便利です!

ssh root@sniff_server_ip -p port tcpdump -U -s0 'not port 22' -i eth0 -w - | wireshark -k -i -

-deの前の最後|はその出力のリダイレクトであり、wiresharkによって標準入力に使用されます。-kwireshark のオプションは、「すぐにスニッフィングを開始する」ことを意味します


私が今まで見た中で最高の最初の答え。
sjas

10

1つのアプローチは、スイッチでミラーポートまたはスパンポートと呼ばれるものを使用することです。スイッチのインテリジェンスが不十分な場合は、スイッチ/ホストからキャプチャへの接続の間に小さなハブを配置することもできます。リスニングホストからそのポート/ハブに物理リンクを接続すると、デバイスを通過するすべてのトラフィックを確認できます。または、パケットキャプチャソフトウェアを、境界ファイアウォール/ルーターなどのネットワーク内のより戦略的な場所にインストールする必要があります。


この方法で解決できる多かれ少なかれ興味深い問題があります。答えられますか?serverfault.com/questions/855245/catch-tcp-packets-with-router
inf3rno

4

ファイル記述子を使用して、パケットに接続および受信し、sshwiresharkにローカルでパイプすることができます。

wireshark -i <(ssh root@firewall tcpdump -s 0 -U -n -w - -i eth0 not port 22)

Wiresharkが開き/dev/fd/63、リモートシステムからのデータを含むファイル記述子である「インターフェース」が表示されます。



1

RHELでは、tcpdumprootが必要であり、sudoアクセスしかできないため、konradの答えはうまくいきませんでした。動作したのは、読み取り可能な追加のリモートfifoを作成することでした。

remote:~$ mkfifo pcap
remote:~$ sudo tcpdump -s 0 -U -n -w - -i eth0 not port 22 > pcap

別の接続でデータを送信します。

local:~$ mkfifo pcap
local:~$ ssh user@host "cat pcap" > pcap

最後にWiresharkを起動します

local:~$ wireshark -k -i pcap

0

自分に届くトラフィックのみを傍受できます。そのため、ジョーAがジョーBに行くことは決してあなたのPCの近くに来ないので、あなたはそれを見ることができません。

唯一の方法は、トラフィックを取得するか、トラフィックを取得することです。トラフィックに到達するには、接続の途中にあるルーターまたは適切なスイッチまたはハブへの接続が必要です。トラフィックを取得するには、スイッチの一部をARPポイズニングして、スイッチがそれらを認識する必要があります。


0

以前の回答に加えて、netcatを使用したバージョンncも同様に役立つ場合があります。

リモートホスト:

mkfifo /tmp/mypcap.fifo

tcpdump -i em0 -s 0 -U -w - > /tmp/mypcap.fifo

nc -l 10000 < /tmp/mypcap.fifo

ローカルホスト:

wireshark -ki <(nc 192.168.1.1 10000)

この方法についての注意:すべてのインターフェイスに対して安全でないポートを開くため、ファイアウォールのルールで着信接続を必ずフィルタリングしてください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.