はじめに
WEP (Wired Equivalent Privacy) は、古く、安全性の低い Wi-Fi セキュリティプロトコルです。その主な弱点は、暗号化プロセスで使用される初期化ベクトル (IV) の実装にあります。これらの IV を大量にキャプチャすることで、攻撃者はそれを分析して WEP キーを発見することができます。
この実験では、WEP 攻撃の最初で最も重要なフェーズ、つまりこれらの貴重な IV を含むネットワークパケットをキャプチャする方法を学びます。Aircrack-ng スイートの強力なツールである airodump-ng を使用して、ターゲットの WEP ネットワークを監視し、必要なデータを収集します。この実験は、WEP の脆弱性が実際にどのように悪用されるかを理解するための基礎となります。
WEP 暗号化ネットワークをターゲットにした airodump-ng の開始
このステップでは、ワイヤレスインターフェイスを「モニターモード」に設定することからプロセスを開始します。このモードにより、ネットワークカードは自分宛てのトラフィックだけでなく、空中に存在するすべての Wi-Fi トラフィックを傍受できるようになります。次に、airodump-ng を使用して、特定のターゲットネットワークからのパケットキャプチャを開始します。
まず、wlan0 インターフェイスでモニターモードを有効にしましょう。この目的には airmon-ng コマンドが使用されます。通常 wlan0mon という名前の新しい仮想インターフェイスが作成される場合があります。
ターミナルで以下のコマンドを実行してください。
sudo airmon-ng start wlan0
出力により、モニターモードが有効になったことが確認されます。これで、特定のネットワークをターゲットにするために airodump-ng を使用できます。この実験では、ターゲットネットワークの BSSID が 00:11:22:33:44:55 で、チャンネル 6 で動作していると仮定します。
以下のコマンドを実行してください。これによりキャプチャプロセスが開始され、ターミナルにはターゲットネットワークに関する情報が表示されます。
注意:このコマンドは現在のターミナルウィンドウを占有します。次のステップに進むには、ターミナルタブバーの「+」アイコンをクリックして新しいターミナルを開く必要があります。このコマンドは実行したままにしてください。
sudo airodump-ng --bssid 00:11:22:33:44:55 --channel 6 wlan0mon
--bssid 00:11:22:33:44:55: このオプションは、指定された MAC アドレスを持つアクセスポイントからのパケットのみをキャプチャするようにairodump-ngに指示します。--channel 6: これは、ターゲットネットワークが使用しているチャンネルを指定します。wlan0mon: これは、モニターモードでのインターフェイス名です。
airodump-ng の出力の観察
このステップでは、airodump-ng によって表示される情報を分析します。前のステップのコマンドが最初のターミナルでまだ実行されている状態で、その出力を確認しましょう。
airodump-ng の画面は、主に 2 つの部分に分かれています。上部は検出されたアクセスポイントのリスト、下部はそれらに接続されているクライアントのリストです。
上部のセクションの例は以下のようになります。
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:11:22:33:44:55 -30 10 0 0 6 54 WEP WEP MyWEPNetwork
私たちのタスクにとって最も重要な列を分解しましょう。
BSSID: アクセスポイントの MAC アドレスです。PWR: 信号強度レベルです。数値が大きいほど(0 に近いほど)、信号が強いことを意味します。Beacons: アクセスポイントが自身の存在を知らせるために送信する管理フレームです。#Data: WEP 攻撃において最も重要な列です。初期化ベクトル (IV) を含むキャプチャされたデータパケットの数をカウントします。CH: ネットワークが動作しているチャンネルです。ESSID: Wi-Fi ネットワークの人間が読める名前です。
実際の環境でアクティブなユーザーがいる場合、#Data のカウントは着実に増加するはずです。各増加は、キーのクラッキングに一歩近づく、別のキャプチャされた IV を表します。この実験では、ライブトラフィックがないため、数値は増加しない場合があります。
WEP クラッキングにおける IV の重要性の理解
このステップでは、WEP 暗号化を破るためにデータパケットを収集することがなぜそれほど重要なのかを理解するために時間をかけます。これはコマンドを実行しない概念的なステップです。
WEP 暗号化は、共有秘密鍵と、初期化ベクトル (IV) と呼ばれる 24 ビットの値とを組み合わせて、各データパケットを暗号化します。IV はパケットの一部として平文で送信されますが、これは基本的な設計上の欠陥です。
これが問題となる理由は次のとおりです。
- 小さい IV サイズ: 24 ビットの IV は、約 1670 万個の可能な IV しかありません。トラフィックの多いネットワークでは、これらの IV はすぐに再利用されます。
- IV の再利用: 同じ鍵で同じ IV が再利用されると、暗号化されたデータに分析可能なパターンが作成されます。
- 弱い IV: これらの IV の一定の割合は「弱い」と見なされます。弱い IV をキャプチャすると、秘密鍵自体に関する少量の情報が漏洩する可能性があります。
WEP 攻撃の基本的な原則は、大量のパケットを収集し、各パケットから IV を抽出し、IV のコレクション(特に弱い IV)を分析して、統計的に元の WEP キーを推測することです。airodump-ng で観察した #Data 列は、これらの重要な IV をどれだけ収集したかの直接的なカウンターです。十分な数の IV がない場合、aircrack-ng のようなクラッキングツールは処理するデータがなく、失敗します。
十分なデータパケットが蓄積されるのを待つ
このステップでは、通常、airodump-ng の #Data カウントが十分に高い数値に達するまで待ちます。これは、実際の WEP 攻撃において最も時間のかかる部分です。
「十分な」IV とはどれくらいでしょうか?
- 64 ビット WEP キー(しばしば 40 ビットと呼ばれる)の場合、通常 5,000 から 10,000 の IV が必要です。
- 128 ビット WEP キー(しばしば 104 ビットと呼ばれる)の場合、要件ははるかに高く、通常 20,000 から 100,000 の IV、あるいはそれ以上です。
収集する IV が多いほど、クラッキングが成功する確率は高くなります。実際のシナリオでは、この数値が増加するのを待つ間、airodump-ng プロセスを実行し続けます。作業を迅速化するために、攻撃者は「ARP リプレイ攻撃」を実行して大量のトラフィックを積極的に生成する可能性がありますが、それはこの実験の範囲外です。
この実験の目的のために、十分な時間が経過し、十分な数のデータパケットが収集されたと仮定します。これで、キャプチャされたデータを保存する最終ステップに進むことができます。
IV を含むキャプチャをファイルに保存する
この最終ステップでは、キャプチャプロセスを停止し、収集されたすべてのデータをファイルに保存します。このファイルは、その後 aircrack-ng のような他のツールで使用され、実際のキークラッキングを実行します。
まず、airodump-ng が実行されているターミナルに戻り、Ctrl+C を押して停止します。
次に、コマンドを再度実行しますが、今回は出力を保存するために --write (または -w) オプションを追加します。これにより、airodump-ng はキャプチャされたすべてのパケットをファイルに書き込むようになります。
ターミナルで次のコマンドを実行します。キャプチャファイルの名前は wep_capture とします。
sudo airodump-ng --bssid 00:11:22:33:44:55 --channel 6 --write wep_capture wlan0mon
このコマンドを数秒間実行してから、Ctrl+C を押して停止します。
次に、ls コマンドを使用して、~/project ディレクトリに作成されたファイルを確認します。
ls -l
wep_capture で始まるいくつかのファイルが表示されるはずです。これには wep_capture-01.cap が含まれます。
-rw-r--r-- 1 root root 1234 Jan 01 12:00 wep_capture-01.cap
-rw-r--r-- 1 root root 5678 Jan 01 12:00 wep_capture-01.csv
...
最も重要なファイルは wep_capture-01.cap です。この .cap ファイルには、収集したすべての IV を含む生のパケットデータが含まれています。これは WEP クラッキングプロセスの主要な入力となります。
まとめ
この実験では、WEP 攻撃の最初で最も基本的な段階を無事に完了しました。WEP キーをクラックするために必要なデータをキャプチャするために、Aircrack-ng スイートのツールを使用する方法を学びました。
具体的には、以下のことを学びました。
airmon-ngを使用してワイヤレスインターフェイスでモニターモードを有効にする方法。airodump-ngを使用して、BSSID とチャンネルで特定の WEP 暗号化ネットワークをターゲットにする方法。airodump-ngの出力、特にキャプチャされた初期化ベクトル(IV)の数をカウントする#Data列の重要性を理解する。- WEP プロトコルの脆弱性を悪用するために、なぜ大量の IV が必要とされるのかを認識する。
- キャプチャされたパケットデータを
.capファイルに保存する方法。このファイルは現在、分析の準備ができています。
作成した wep_capture-01.cap ファイルは、このプロセスから得られる主要な成果物です。後続の実験では、このファイルを aircrack-ng に入力して、最終ステップである WEP キーのクラッキングを実行します。
