はじめに
MAC (Media Access Control) アドレスフィルタリングは、ルーターまたはアクセスポイント (AP) が、特定の事前承認済み MAC アドレスを持つデバイスからのトラフィックのみを受け入れるように設定されるネットワークセキュリティ対策です。カジュアルな侵入者を抑止することはできますが、このセキュリティレイヤーは MAC スプーフィングと呼ばれる手法によって回避される可能性があります。
この実験 (lab) では、MAC アドレスフィルタリングをバイパスするエンドツーエンドのプロセスを学びます。まずターゲットネットワークを特定し、既に承認されているクライアントの MAC アドレスを見つけ、次に自身のワイヤレスアダプターの MAC アドレスを変更してそのクライアントになりすまします。最後に、これにより Fluxion のようなツールが、そうでなければブロックされるはずの攻撃を成功裏に開始できるようになる様子を確認します。この実験 (lab) は、ネットワークの脆弱性を理解するための教育目的で行われます。
MAC フィルタリングを使用している可能性のあるネットワークの特定
このステップでは、必要なツールをインストールし、近くの無線ネットワークをスキャンします。無線アセスメントの最初の部分は偵察です。利用可能なネットワークを確認し、ターゲットを選択する必要があります。
まず、パッケージリストを更新し、スキャンに必要なツールが含まれる aircrack-ng スイートをインストールします。
sudo apt-get update
sudo apt-get install -y aircrack-ng
次に、ワイヤレスアダプターを「モニターモード」にする必要があります。このモードにより、アダプターは自分宛てのトラフィックだけでなく、空中のすべての Wi-Fi トラフィックをキャプチャできるようになります。このシミュレートされた環境では、ワイヤレスアダプターの名前は wlan0 です。
次のコマンドを実行してモニターモードを開始します。
sudo airmon-ng start wlan0
モニターモードが有効になったことを示す出力が表示されるはずです。コマンドは新しい仮想インターフェイスも作成します。通常、名前は wlan0mon です。
PHY Interface Driver Chipset
phy0 wlan0 iwlwifi Intel Corporation Wireless
(monitor mode enabled on wlan0mon)
次に、新しいモニターインターフェイス (wlan0mon) を使用して airodump-ng を実行し、範囲内のすべての無線ネットワークをスキャンします。
sudo airodump-ng wlan0mon
スキャンを 1 分間実行します。検出されたアクセスポイントのリストが表示されます。この実験 (lab) では、ターゲットネットワークの ESSID (ネットワーク名) が「Target-Net」であると仮定します。ネットワークが表示されたら、Ctrl+C を押してスキャンを停止します。
CH 6 ][ Elapsed: 10 s ][ 2023-10-27 10:30
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:11:22:33:44:55 -30 10 0 0 6 54e WPA2 CCMP PSK Target-Net
F8:E4:3B:9A:1B:C0 -65 8 0 0 1 54e WPA2 CCMP PSK Other-Net
この出力から、「Target-Net」の BSSID (00:11:22:33:44:55) と CH (チャンネル 6) をメモします。これは次のステップで必要になります。
接続されているクライアントの MAC アドレスを見つけるために 'airodump-ng' を使用する
このステップでは、ターゲットネットワークにスキャンを集中させ、既に接続されているクライアントを特定します。MAC フィルタリングをバイパスするには、「許可リスト」に既に存在するデバイスになりすます必要があります。接続されているクライアントの MAC アドレスを見つけることが、その鍵となります。
前のステップで特定した BSSID と channel を使用して、再度 airodump-ng を実行します。今回は、スキャンをフィルタリングしてターゲットネットワークに関する情報のみを表示するオプションを追加します。これにより、出力が整理され、クライアントを簡単に見つけることができます。
ターゲットネットワークの BSSID を 00:11:22:33:44:55 に、チャンネルを 6 に置き換えてください。
sudo airodump-ng --bssid 00:11:22:33:44:55 -c 6 wlan0mon
出力は 2 つの部分に分かれます。上部はアクセスポイント (AP) に関する情報を表示し、下部は接続されているクライアント (ステーション) を表示します。
CH 6 ][ Elapsed: 25 s ][ 2023-10-27 10:32
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:11:22:33:44:55 -32 100 30 20 1 6 54e WPA2 CCMP PSK Target-Net
BSSID STATION PWR Rate Lost Frames Probe
00:11:22:33:44:55 AA:BB:CC:DD:EE:FF -40 1- 0 0 15
下部の STATION のセクションを確認します。これが「Target-Net」AP に接続されているクライアントの MAC アドレスです。この例では、クライアントの MAC アドレスは AA:BB:CC:DD:EE:FF です。
この STATION の MAC アドレスをコピーします。次のステップで、自身の MAC アドレスを偽装するために使用します。アドレスを取得したら、Ctrl+C を押してスキャンを停止できます。
'macchanger' を使用してアダプターの MAC アドレスをクライアントの MAC アドレスに偽装する
このステップでは、ワイヤレスアダプターの MAC アドレスを、正規のクライアントから取得したアドレスに変更します。このプロセスは MAC アドレスの偽装(MAC spoofing)と呼ばれます。
まず、MAC アドレスの表示と操作を簡単に行えるユーティリティである macchanger をインストールする必要があります。
sudo apt-get install -y macchanger
MAC アドレスを変更する前に、モニターモードインターフェイスを停止し、物理的なワイヤレスインターフェイスをダウンさせる必要があります。
sudo airmon-ng stop wlan0mon
sudo ifconfig wlan0 down
次に、macchanger を使用して新しい MAC アドレスを設定します。前のステップでメモしたクライアントの MAC アドレス (AA:BB:CC:DD:EE:FF) の後に -m オプションを付けて実行します。
sudo macchanger -m AA:BB:CC:DD:EE:FF wlan0
出力には、元の(Permanent)MAC アドレスと、新しく偽装された MAC アドレスが確認として表示されます。
Current MAC: 00:0c:29:12:34:56 (unknown)
Permanent MAC: 00:0c:29:12:34:56 (unknown)
New MAC: AA:BB:CC:DD:EE:FF (unknown)
最後に、変更を有効にするためにワイヤレスインターフェイスを再度アップさせます。
sudo ifconfig wlan0 up
ifconfig wlan0 を実行し、ether フィールドを確認することで、MAC アドレスが変更されたことを確認できます。これで、あなたのアダプターは正規のクライアントになりすましています。
偽装された MAC アドレスで Fluxion 攻撃を開始する
このステップでは、Fluxion という攻撃ツールを起動します。目標は、偽装された MAC アドレスを使用することで、ツールがターゲット AP に正常に接続できることを実証することです。もしネットワークが MAC フィルタリングを使用しており、ランダムで不正な MAC アドレスを使用していた場合、このステップは失敗します。
まず、Fluxion を公式 GitHub リポジトリからダウンロードする必要があります。
git clone https://www.github.com/FluxionNetwork/fluxion.git
新しく作成された fluxion ディレクトリに移動します。
cd fluxion
次に、sudo 権限で Fluxion スクリプトを起動します。
sudo ./fluxion.sh
Fluxion は対話型のスクリプトです。いくつかの選択を求められます。これらのプロンプトに従ってください。
- 言語選択:
Enterを押して英語を選択します(または対応する数字を入力します)。 - ワイヤレスアダプター選択: Fluxion は
wlan0アダプターを検出します。その番号を入力してEnterを押し、選択します。 - チャンネル選択: ネットワークをスキャンするオプションを選択します(例:「All channels scanner」)。
- ターゲット選択: スキャン後、ネットワークのリストが表示されます。「Target-Net」を見つけてその番号を入力し、
Enterを押します。 - 攻撃選択: 攻撃を選択します。このデモンストレーションでは、「Captive Portal」攻撃を選択します。
- ハンドシェイクチェック: Fluxion は有効なハンドシェイクファイルをチェックします。スキップするか、デオーセンティケーション攻撃を実行してキャプチャするオプションを選択します。
このステップの重要な部分は、Fluxion がこれらの初期段階を通過できることを観察することです。あなたの MAC アドレスが AP の「許可リスト」に載っているため、Fluxion が AP と通信し接続しようとする試みは成功します。
関連付けステージを攻撃が通過したことを確認する
この最終ステップでは、Fluxion からの出力を観察して、MAC アドレスの偽装が成功したことを確認します。完全な攻撃を完了する必要はありません。目標は、初期のセキュリティチェックをバイパスできたことを確認するだけです。
Fluxion で Captive Portal 攻撃を選択した後、ツールはプロセスを開始します。ターミナルには、以下のメッセージが表示されるはずです。
-Fake AP(アクセスポイント)を作成しています。-クライアントを実際の AP から認証解除しようとしています。-クライアントが偽の AP に接続するのを待っています。
ここで重要なのは、「関連付けに失敗しました」というエラーが表示されないことです。MAC アドレスを偽装せずにこの攻撃を実行しようとした場合、ターゲット AP はあなたの不正な MAC アドレスからの接続試行を拒否するため、Fluxion は最初の方で失敗する可能性が高いです。攻撃が偽の AP を設定し、クライアントを認証解除する段階に進むという事実は、MAC フィルタリングを正常にバイパスできたことの証明です。
これらのメッセージを確認し、攻撃が進行していることを確認したら、ターミナルで Ctrl+C を押してスクリプトを安全に停止できます。
最後に、完了後は必ずアダプターの元の MAC アドレスを復元することをお勧めします。
まず、インターフェイスをダウンさせます。
sudo ifconfig wlan0 down
macchanger を -p(permanent)オプションで使用して、元のハードウェア MAC アドレスを復元します。
sudo macchanger -p wlan0
最後に、インターフェイスを再度アップさせます。
sudo ifconfig wlan0 up
これで、MAC フィルタリングをバイパスする方法を正常に実証し、元の設定を復元してクリーンアップしました。
まとめ
この実験では、Wi-Fi ネットワークにおける MAC アドレスフィルタリングをバイパスする技術を学習し、実行しました。
まず、aircrack-ngスイートを使用してネットワークをスキャンし、ターゲットを特定しました。次に、airodump-ngでそのターゲットに焦点を当て、既に認証されているクライアントの MAC アドレスを見つけました。macchangerを使用して、ワイヤレスアダプターの MAC アドレスを偽装し、そのクライアントになりすましました。最後に、Fluxion ツールを起動し、攻撃が初期の関連付けステージを通過できることを確認し、MAC フィルタリングというセキュリティ対策が効果的にバイパスされたことを証明しました。
この実践的な経験は、ネットワークセキュリティにおける一般的な脆弱性を示しており、MAC アドレスのような簡単に偽装できる識別子に依存するのではなく、強力なパスワードを備えた WPA2/WPA3 のような、より強力なセキュリティ対策を使用することの重要性を強調しています。
