1

ネットワーク トラフィックを分析したいが、接続することはできない Wi-Fi をオンにして、無差別モードでパケット (IEEE 802.11 フレーム) を盗聴するだけ

私はlibpcapを試しましたが、wifiインターフェースを提供しているため、データリンクタイプを内部的に変更している可能性があります

descr=pcap_open_live("en1", MAXBYTES2CAPTURE, 1, 512, errbuf);

(私たちが知っているように、Mac OS xにはwifiインターフェースとしてen1があります)

今私がこれをするとき

printf("%s", pcap_datalink_val_to_name( pcap_datalink(descr)));

"ethernet"
wifiネットワークに接続せずにwiresharkを使用してパケットをキャプチャしようとした結果が得られ、うまくいきました!! Beacon , Acknowledgement and Authentication framesWi-Fi ネットワークに接続せず にキャプチャできました。

今:

  1. そのためのネットワークカードドライバーを作成する必要がありますか、またはlibpcapでそれを行うことができますか?もしそうなら、どのように?
  2. Wireshark はそのための何らかのドライバーを作成していますか? はいの場合は、ソースコードでそれを見つけるのを手伝ってください。
    • Apple の CFNetwork を試してみましたが、これもネットワークに接続しないとキャプチャできません。
    • カーネルレベルのコーディングは少し難しいので、いくつかのユーザースペースコードについて提案があれば非常に役に立ちます:(

xCode 4.5.1でMacOS 10.7でコーディングしています

更新:
私はすでにこれを行っています:

descr=pcap_create("e1", errbuf);
pcap_set_rfmon(descr, 0);
pcap_set_promisc(descr, 0);
pcap_activate(descr);    
descr=pcap_open_live("en1", 2048, 1, 512, errbuf);                   

はい、Wi-Fi には小さなモニター アイコンがあり、パケットをスニッフィングできますが、ネットワークに接続している場合のみ、Wi-Fi に接続していないときにビーコンや確認フレームをキャプチャするなど、同じことを行いたいと考えています。ネットワーク カードが利用可能な Wi-Fi ネットワークを検出します

4

1 に答える 1

2

Snow Leopard 以降 (Lion を実行しているため) で実行している場合は、新しいpcap_create()/ API を使用し、 と の呼び出しの間に呼び出しpcap_activate()て監視モードをオンにする必要があります。pcap_set_rfmon()pcap_create()pcap_activate()

これは、監視モードのチェックボックスをオンにした場合の Wireshark 1.6.0 以降の動作であり、-Iコマンドライン フラグを指定した場合の tcpdump 1.0.0 以降、および Wireshark 1.6.0 以降の TShark と dumpcap の動作です。

デフォルトでは、OS X を含むがこれに限定されない多くの OS の Wi-Fi インターフェイスは、802.11 ヘッダーではなくイーサネット ヘッダーを提供します。これが、pcap_datalink_val_to_name(pcap_datalink(descr))がイーサネット ヘッダーを報告する理由です。Linux および OS X では、802.11 ヘッダーを取得するためにモニター モードに入る必要があります。*BSD では、モニター モードに移行せずに 802.11 ヘッダーを取得できます。

OS X でモニターモードに入るのに独自のドライバーは必要ありません。Wireshark は独自のドライバーを提供しません。

于 2012-10-29T18:54:38.393 に答える