web-dev-qa-db-ja.com

tcpdumpを使用した無線LANネットワークのスニッフィング

ワイヤレス作業の基本を正しく理解していれば、ワイヤレスLANを介して他のコンピューターのトラフィックを盗聴できるはずです。そこで、2台目のコンピューターを無線LANに接続し、httpを次のようなコマンドで使用して、ネットワークを通じてtcpdumpトラフィックを盗聴できるかどうかを確認しようとしました。

Sudo tcpdump -v -i wlan0 dst 10.0.0.7

10.0.0.7は、LAN上で探知したいコンピューターのIPです。しかし、残念ながら、出力として何も得られません(ICMPエコー要求を除いて、ping 10.0.0.7、つまりtcpdumpは問題なく動作します:))。

何が欠けていますか?

4
Sam Bruns

ワイヤレスネットワーク上のすべてのトラフィックを盗聴するには、ネットワークインターフェイスをモニターモードに設定する必要があります。したがって、tcpdumpを起動する前に、次の手順を実行します。

Sudo ifconfig wlan0 down
Sudo iwconfig wlan0 mode Monitor
Sudo ifconfig wlan0 up

これにより、インターフェースがオフになり、モニターモードが有効になり、再びオンになります。すべてのネットワークインターフェイスカードがモニタモードをサポートしているわけではないことに注意してください。

NICを通常に戻すには、mode Managedを使用して同じコマンドを発行します。

余談ですが、ルーターが使用する暗号化スキームが原因で、スニファーのトラフィックは、期待どおりに見えない可能性があります。ただし、自分のネットワークをスニッフィングしていることを考えると、ほとんどの場合、トラフィックを復号化できます。 ここ は、Wiresharkの代わりにtcpdumpを使用する方法の簡単な概要です。これは、グラフィカルユーザーインターフェイスも備えています。キャプチャのためにtcpdumpを保持する場合は、-wオプションを使用してトラフィックを.pcapファイルにダンプし、後でそのファイルをWireshark(または他のパケットアナライザー)で開くこともできます。 。

ネットワークでWPAまたはWPA2暗号化を使用している場合は、ルーターと監視する各デバイスとの間のそれぞれのハンドシェイクをキャプチャする必要があることに注意してください。リンクしたWireshark wikiの記事では、その方法について説明しています。

WPAおよびWPA2は、マシンがWi-Fiネットワークに参加するときに発生するEAPOLハンドシェイクから派生したキーを使用して、トラフィックを暗号化します。復号化しようとしているセッションに4つのハンドシェイクパケットがすべて存在しない限り、Wiresharkはトラフィックを復号化できません。ディスプレイフィルターeapolを使用して、キャプチャ内のEAPOLパケットを見つけることができます。

マシンのハンドシェイクをキャプチャするには、キャプチャの進行中にマシンを強制的に(再)ネットワークに参加させる必要があります。

9
zinfandel

まず、これがオープンネットワークであるか、WPA protectedであるかを指定しませんでした。これは違いを生みます。WPA問題が発生しています。

あなたは真ん中の男ではありません。 10.0.0.7からのパケットは、そのコンピューターから直接ゲートウェイ(つまり10.0.0.1)に送られ、インターネットを経由してバイパスされます。スプーフィングをarpし、ゲートウェイとそのユーザー(10.0.0.7)の間に自分自身を挿入する必要があります。それを行うための多くのツールがあります。通常、最初にカーネルでIP転送を設定してから、arpspoof <victim ip> <gateway ip>のようなコマンドを実行します

2
redwards510