はじめに
ワイヤレスネットワークは、サービスセット識別子(SSID)をブロードキャストしないように設定でき、これにより「隠蔽」されます。これは多少の隠蔽性を提供しますが、堅牢なセキュリティ対策ではありません。攻撃者はネットワーク分析ツールを使用して SSID を発見できます。
この実験(Lab)では、隠蔽された SSID を発見するプロセスを学びます。airodump-ng を使用してワイヤレストラフィックを監視し、隠蔽されたネットワークを特定します。その後、aireplay-ng を使用して認証解除攻撃(deauthentication attack)を実行します。この攻撃は、接続されているクライアントを一時的に切断させ、その後再接続させることで、再関連付けプロセス中にネットワークの SSID を明らかにします。
この実験のために準備されたシミュレートされたワイヤレス環境で作業を行います。
airodump-ng を一般スキャンモードで起動する
このステップでは、802.11 フレームをキャプチャするためのツールである airodump-ng を起動します。これを使用して、近くのすべてのワイヤレスネットワークをスキャンします。実験(Lab)環境は、wlan2mon という名前の監視インターフェイスでセットアップされています。
まず、ターミナルを開きます。この実験のすべてのコマンドはターミナルで実行されます。
次に、監視インターフェイスで airodump-ng を実行します。これには sudo 権限が必要です。
sudo airodump-ng wlan2mon
コマンドを実行すると、ターミナルには近くの Wi-Fi ネットワークに関する情報が表示されます。このコマンドは実行し続けたままにしておきます。次のステップでその出力を観察します。
以下のような、リアルタイムで更新される表示が表示されるはずです。
CH 6 ][ Elapsed: 10 s ][ 2023-10-27 10:00
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
XX:XX:XX:XX:XX:XX -30 10 0 0 6 54e OPN <length: 0>
BSSID STATION PWR Rate Lost Frames Probe
このターミナルを開いたまま airodump-ng を実行しておきます。ステップ 4 のコマンドを実行するために、新しいターミナルを開く必要があります。
ESSID が '<length 0>' のネットワークを特定する
このステップでは、airodump-ng の出力を分析して隠蔽されたネットワークを見つけます。
airodump-ng が実行されているターミナルを見てください。隠蔽されたネットワークは、ブロードキャストされない ESSID(ネットワーク名)によって識別されます。airodump-ng はこれを <length: 0> と表示します。
出力の中に、以下のような行が表示されるはずです。
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
XX:XX:XX:XX:XX:XX -30 10 0 0 6 54e OPN <length: 0>
この行は、ターゲットの隠蔽されたネットワークを表しています。この行から、2 つの重要な情報をメモしてください。
- BSSID: アクセスポイントの MAC アドレスです。例では
XX:XX:XX:XX:XX:XXです。 - CH: ネットワークが動作しているチャネルです。例では
6です。
後のステップで行う認証解除攻撃(deauthentication attack)には、この BSSID が必要になります。この実験では、便宜上、シミュレートされた AP の BSSID がファイルに保存されています。必要に応じて、新しいターミナルで cat /tmp/bssid.txt を実行して表示できます。
SSID を明らかにするためにクライアントの接続を待つ
このステップでは、隠蔽された SSID を検出するためのパッシブな方法について説明します。
SSID を検出する 1 つの方法は、単純に待つことです。正規のクライアントが隠蔽されたネットワークに接続すると、SSID を含むプローブ要求(probe requests)とアソシエーション要求(association requests)を送信します。airodump-ng が実行中で、正しいチャネルでリッスンしていれば、これらのパケットをキャプチャし、SSID を表示します。
airodump-ng の出力には 2 つのセクションが表示されます。上のセクションにはアクセスポイント(AP)がリストされ、下のセクションには接続されているクライアント(ステーション)がリストされます。
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
XX:XX:XX:XX:XX:XX -30 10 0 0 6 54e OPN <length: 0>
BSSID STATION PWR Rate Lost Frames Probe
XX:XX:XX:XX:XX:XX YY:YY:YY:YY:YY:YY -40 0- 1 0 1
上記の例では、MAC アドレス YY:YY:YY:YY:YY:YY のクライアントが、私たちの隠蔽された AP (XX:XX:XX:XX:XX:XX) に接続されています。
しかし、クライアントが接続するのを待つのは非常に時間がかかる場合があります。次のステップでは、問題を強制的に解決し、SSID をより迅速に明らかにするためにアクティブな方法を使用します。
認証解除攻撃を実行して SSID を強制的に明らかにする
このステップでは、aireplay-ng を使用した認証解除攻撃(deauthentication attack)により、SSID を積極的に明らかにする方法を説明します。この攻撃は、接続されているクライアントに特別なパケットを送信し、ネットワークから切断させます。適切に動作するクライアントは、すぐに再接続を試み、この再接続ハンドシェイク中に SSID を明らかにします。
まず、新しいターミナルを開く必要があります。airodump-ng を実行しているターミナルは閉じないでください。
新しいターミナルで、aireplay-ng コマンドを構築します。コマンドの形式は次のとおりです。
sudo aireplay-ng --deauth <number_of_packets> -a <AP_BSSID> <interface>
--deauth 5: 5 つの認証解除パケットを送信します。-a <AP_BSSID>: これは、ステップ 2 で特定した隠蔽されたネットワークの BSSID です。wlan2mon: これは私たちのモニタリングインターフェイスです。
簡単にするために、準備したファイルから BSSID を取得できます。攻撃を実行するには、次のコマンドを実行します。
sudo aireplay-ng --deauth 5 -a $(cat /tmp/bssid.txt) wlan2mon
認証解除パケットが送信されていることを示す出力が表示されます。
10:05:10 Waiting for beacon frame (BSSID: XX:XX:XX:XX:XX:XX) on channel 6
10:05:10 Sending 64 directed DeAuths. STMAC: [YY:YY:YY:YY:YY:YY] [ 0|63 ACKs]
...
次に、最初のターミナルに戻り、airodump-ng の出力を確認して、次のステップで結果を観察してください。
airodump-ng ディスプレイで明らかになった SSID を確認する
この最終ステップでは、認証解除攻撃の結果を観察します。
airodump-ng が実行されていた最初のターミナルに戻ってください。認証解除攻撃の後、クライアントはアクセスポイントに再接続しました。このプロセス中に、airodump-ng は SSID をキャプチャしました。
以前は ESSID が <length: 0> と表示されていた行が、実際のネットワーク名である LabExHidden を表示するはずです。
攻撃前:
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
XX:XX:XX:XX:XX:XX -30 10 0 0 6 54e OPN <length: 0>
攻撃後:
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
XX:XX:XX:XX:XX:XX -32 25 1 0 6 54e OPN LabExHidden
これで、隠蔽されたネットワークの SSID を正常に発見できました!
これで、両方のターミナルを exit と入力するか、まず実行中のプロセスを停止するために Ctrl+C を使用して閉じることができます。
まとめ
この実験では、隠蔽された Wi-Fi ネットワークを発見するための実践的なテクニックを学びました。SSID を隠蔽することが、容易に明らかになるため、効果的なセキュリティ対策ではないことを確認しました。
aircrack-ng スイートの主要なツールを使用する練習をしました。
airodump-ng: 無線ネットワークをスキャンし、<length: 0>ESSID を持つ隠蔽されたネットワークを特定するために使用します。aireplay-ng: 認証解除攻撃を実行し、接続されているクライアントに再接続時に SSID を明らかにするように強制するために使用します。
この受動的な監視とそれに続く能動的な攻撃というプロセスは、無線セキュリティ監査における基本的な概念です。
