ユーザ用ツール

サイト用ツール


ja:cracking_wpa

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
ja:cracking_wpa [2011/01/08 07:41] macotoja:cracking_wpa [2018/03/11 19:59] (現在) – Removed link to trac mister_x
行 1: 行 1:
-====== TutorialHow to Crack WPA/WPA2 ======+====== チュートリアル: WPA/WPA2 のクラッキング方法について ======
 Version: 1.20 March 07, 2010\\ Version: 1.20 March 07, 2010\\
 By: darkAudax\\ By: darkAudax\\
-Translated by: nao+Translated by: nao on January 08, 2011 
 + 
 +===== 最初に ===== 
 + 
 +このチュートリアルは事前共有鍵を用いるWPA/WPA2ネットワークをクラッキングするためのものです。WPA/WPA2とは何かということをご存じの上で行われることを推奨します。リンク集 [[http://aircrack-ng.org|Wiki]] にはは [[links#wpa_wpa2_information|WPA/WPA2 セクション]] があります。WPAについての詳細はこちら[[http://www.hsc.fr/ressources/articles/hakin9_wifi/index.html.en|Wi-Fi Security - WEP, WPA and WPA2]]をご覧ください。こちらはPDFダウンロードへの[[http://www.hsc.fr/ressources/articles/hakin9_wifi/hakin9_wifi_EN.pdf|リンク]]です。 またこちら[[wpa_capture|WPA Packet Capture Explained tutorial]]も併せてご覧ください。 
 + 
 +WPA/WPA2には事前共有鍵以外にも様々なタイプの認証方式が備わっています。[[aircrack-ng]]は事前共有鍵にたいしてのみ有効です。従って、[[airodump-ng]]ではauthentication typeがPSKとなっているネットワークが表示されていることを確認してください。そうしないと、そもそもクラックできないネットワークに挑戦し、クラックできないことに悩むことになってしまいます。 
 + 
 +WPA/WPA2とWEPではクラッキングに関して重要な違いがあります。これは以前のWPA/WPA2事前共有鍵のクラッキングへのアプローチです。WEPとは異なり、クラッキングプロセスの速度向上のために統計的な手法が用いられるものの、WPA/AP2に対しては単純な辞書攻撃が用いられています。鍵が固定でないため、WEP暗号をクラックする時のようにIV(初期化ベクタ)を大量に収集しても一向に速度が向上しません。クライアントとアクセスポイント間のハンドシェイクのみが攻撃のきっかけとなる情報を与えてくれます。事実ではない点も含まれますが、このチュートリアルの目的から考えれば、事実と考えていただいて差し支えありません。事前共有鍵は8から63文字長で構成されているため、現実的にはクラックが不可能です。 
 + 
 +事前共有鍵をクラックできるケースとしては、鍵が辞書に含まれている言葉を用いている場合と比較的短い鍵を用いている場合です。逆に言えば、自宅の無線ネットワークをクラックされないためには、WPA/WPA2を用い、特殊な文字を含むランダムな63文字のパスワードを設定することです。 
 + 
 +辞書攻撃を用いる影響は計りしれません。それは非常にコンピュータ集約的であり、CPUに依存するため、1秒間に試せるのはせいぜい50から300キーほどだからです。\\ 
 +# 訳者注\\ 
 +# 原文では1秒間に50から300と記載されていますが、最近ではそんなに遅くは無いかと思います。\\ 
 +大きな辞書でごりごりクラッキングするには何日とはかからなくても、数時間はかかります。自分のパスワードを作成する際、まずここ [[http://lastbit.com/pswcalc.asp|brute force time calculator]] をチェックすることをおすすめします。辞書攻撃に必要な時間の少なさに驚くかと思います。 
 + 
 +**重要**つまりWPA/WPA2を破るには辞書に含まれている文字列が使われてなければなりません。辞書に含まれていなければ、aircrack-ngは鍵を特定することができません。 
 + 
 +クラッキングするにあたり、WPAかWPA2であるかは大きな違いではありません。認証方式は基本的に同じです。従って、方法は全く同じです。 
 + 
 +ここでの考え方やテクニックになれるためにはご自宅のアクセスポイントで実験してみることをおすすめします。ご自身で管理されているアクセスポイントをお持ちでない場合は、所有者に許可を取ってから行うようにしてください。 
 + 
 +前向きであるかないかに関わらず、建設的なフィードバックをお待ちしています。トラブルシューティングのアイデアやテクニックも大いに歓迎です。 
 + 
 +===== 前提条件 ===== 
 + 
 +まず、以下の条件を前提とします: 
 + * Injectionパッチの当たったドライバを用いる。[[injection_test|injection test]]で確認できます。 
 + * アクセスポイントに対してパケットを送受するのに物理的に十分近い場所にいること。アクセスポイントからパケットを受け取れるからといって、パケットを遅れるとは限りません。一般的な無線LANカードはアクセスポイントほど強い電波を発しません。そのため、あなたのクライアントからアクセスポイントや他のワイヤレスクライアントに対してパケットを送ったり受け取るためには物理的に十分近づく必要があります。[[injection_test#hidden_or_specific_ssid|この方法]]で特定のアクセスポイントと通信できているかどうかを確認できます。 
 + * aircrack-ngのv0.9.1以上を使う。他のバージョンではコマンドオプションが違うかもしれません。 
 + 
 +上記の条件を満たしていても、下記の通り動かない場合があります。以下の例中で用いられている"ath0"をあなたが利用している無線LANカードのインターフェース名に変更する必要があります。 
 +===== 無線LAN機器の設定値 ===== 
 + 
 +このチュートリアルでは以下の値を用いています: 
 + 
 +  *aircrack-ngスイートを動かしているPCのMACアドレス:00:0F:B5:88:AC:82 
 +  *WPA2を利用している無線LANクライアントのMACアドレス:00:0F:B5:FD:FB:C2 
 +  *BSSID (アクセスポイントのMACアドレス): 00:14:6C:7E:40:80 
 +  *ESSID (無線LAN名): teddy 
 +  *アクセスポイントのチャンネル:
 +  *無線LANインターフェース: ath0 
 + 
 +あなたが試そうとしているネットワークについても上記と同等の情報を集めなくてはなりません。その上で、以下の例中の値を読み替えてください。 
 +===== クラッキングの方法 ===== 
 + 
 +==== 概要 ==== 
 + 
 +目標はWPA/WPA2ハンドシェイクを取得し、次に、[[aircrack-ng]]を用いて事前共有鍵をクラックすることです。 
 + 
 +アクティブ方式とパッシブ方式、どちらの方式でも可能です。アクティブとは既に繋がっている無線LANクライアントの認証を一旦無効化することによりハンドシェイクの取得を早めることを意味しています。パッシブとは無線LANクライアントが新たにWPA/WPA2ネットワークに参加し認証されるのをただ待つことを意味しています。パッシブ方式の利点はInjectionができなくともよく、Windows版のaircrack-ngでも可能ということです。 
 + 
 +基本的なステップ: 
 + 
 +  - 特定のチャネルに設定し、モニターモードで無線LANインターフェースを起動する。 
 +  - ハンドシェイクを取得するために、BSSIDフィルタを用いてアクセスポイントのチャネルに合わせてairodump-ngを起動する。 
 +  - 認証済みの無線LANクライアントの認証を一旦無効化するためにaireplay-ngを用いる。 
 +  - ハンドシェイクを用いて事前共有鍵をクラックするためにaircrack-ngを走らせる。 
 + 
 +==== Step 1 - モニターモードで無線LANインターフェースを起動する ==== 
 + 
 +このステップの目標はあなたの無線LANカードをいわゆるモニターモードで起動することです。モニターモードは周辺環境の全ての無線LANパケットを拾うモードです。通常、無線LANカードはそのカードと無線通信を行っているパケットのみ拾うことができます。全てのパケットを拾うことで、WPA/WPA2の4Wayハンドシェイクも拾うことが可能となります。同様に、後のステップで述べるとおり、認証済み無線LANクライアントの認証を一旦無効化することも可能となります。 
 + 
 +モニターモードを有効にするための厳密な手順はあなたの使っている無線LANカードのドライバによって変わります。ドライバを特定するために次のコマンドを実行してください。 
 + 
 +   airmon-ng 
 + 
 +Ralink, Atheros, Broadcomチップを搭載した無線LANカードでは、次のようにレスポンスがあります。 
 + 
 +   Interface       Chipset         Driver 
 +    
 +   rausb0          Ralink RT73     rt73 
 +   wlan0           Broadcom        b43 - [phy0] 
 +   wifi0           Atheros         madwifi-ng 
 +   ath0            Atheros         madwifi-ng VAP (parent: wifi0) 
 + 
 +ドライバ名の後の[phy0]タグの表示は、mac80211向けの表示です。つまり、ここでBroadcomカードはmac80211ドライバを利用しています。 **注意 mac80211ドライバはaircrack-ng v1.0-rc1以降でサポートされています。v0.9.1.では動きません。** 
 +Aterosカードは両方ともドライバとして"madwifi-ng"を表示しています。Atherosカードはmadwifi-ng-specificステップに従って設定します。 
 +最後に、Ralinkのドライバ欄にはどちらも表示されていません。従って、ieee80211ドライバを用いています。こちらの設定には一般的な設定手順をご覧ください。 
 + 
 + 
 +=== Step 1a - madwifi-ng の設定 === 
 + 
 +まず、ath0を止めます。 
 + 
 +   airmon-ng stop ath0    
 + 
 +システムからのレスポンス 
 + 
 +   Interface       Chipset         Driver 
 +    
 +   wifi0           Atheros         madwifi-ng 
 +   ath0            Atheros         madwifi-ng VAP (parent: wifi0) (VAP destroyed) 
 + 
 +"iwconfig"と入力し、他にathXインターフェースが無いことを確認します。無い場合はこんな風に表示されます。 
 + 
 +   lo        no wireless extensions. 
 +    
 +   eth0      no wireless extensions. 
 +    
 +   wifi0     no wireless extensions. 
 + 
 +athXインターフェースがある場合は、それを止めます。それから"iwconfig"を実行し他にインタフェースが残っていないことを確認します。 
 +  
 +さて、次のコマンドを入力し、チャンネル9でモニターモードで無線LANカードを起動します。 
 + 
 +   airmon-ng start wifi0 9 
 + 
 + 
 +注意:ここでは"ath0"の代わりに"wifi0"を用いました。これはmadwifi-ngドライバが使用中のためです。 
 + 
 +システムからのレスポンスは 
 + 
 +   Interface       Chipset         Driver 
 +    
 +   wifi0           Atheros         madwifi-ng 
 +   ath0            Atheros         madwifi-ng VAP (parent: wifi0) (monitor mode enabled) 
 + 
 +上記のように"ath0"がモニターモードとしてレポートされていることに気づきます。 
 + 
 +インターフェースが正しく設定されていることを確認するために、"iwconfig"と入力します。 
 + 
 +システムからのレスポンスは 
 + 
 +   lo        no wireless extensions. 
 +    
 +   wifi0     no wireless extensions. 
 +    
 +   eth0      no wireless extensions. 
 +    
 +   ath0      IEEE 802.11g  ESSID:""  Nickname:"" 
 +          Mode:Monitor  Frequency:2.452 GHz  Access Point: 00:0F:B5:88:AC:82    
 +          Bit Rate:0 kb/s   Tx-Power:18 dBm   Sensitivity=0/  
 +          Retry:off   RTS thr:off   Fragment thr:off 
 +          Encryption key:off 
 +          Power Management:off 
 +          Link Quality=0/94  Signal level=-95 dBm  Noise level=-95 dBm 
 +          Rx invalid nwid: Rx invalid crypt: Rx invalid frag:0 
 +          Tx excessive retries: Invalid misc:  Missed beacon:0 
 + 
 +上記のレスポンスでは、ath0はチャンネル9、2.452GHz、モニターモードで起動されていることがわかります。またアクセスポイントはあなたの無線カードのMacアドレスを表示しています。madwifi-ngドライバのみAP欄にカードのMACアドレスが表示されます。他のドライバでは表示されません。次に進み適切に動かすためには、ここに表示されている全ての情報について確認することが重要です。 
 + 
 +周波数をチャンネルに合わせるためには、こちらをチェック: 
 +http://www.cisco.com/en/US/docs/wireless/technology/channel/deployment/guide/Channel.html#wp134132 .   
 +各チャンネルごとの周波数がわかります。 
 + 
 +=== Step 1b - mac80211 ドライバの設定 === 
 + 
 +madwifi-ngとはことなり、mac80211ドライバの設定にはwlan0インターフェースの削除は必要ありません。その代わり、チャンネル9でモニターモードを起動するためには次のコマンドが必要となります。 
 + 
 +   airmon-ng start wlan0 9 
 + 
 +システムからのレスポンスは 
 + 
 +   Interface       Chipset         Driver 
 +    
 +   wlan0           Broadcom        b43 - [phy0] 
 +                                   (monitor mode enabled on mon0) 
 + 
 +airmon-ngは//mon0//でモニターモードが起動していることに注意してください。そのため、このあとのチュートリアルではインターフェース名をmon0としてください。Wlan0はまだ通常(マネージド)モードで普通に使われ、攻撃しようとしているアクセスポイントと同じチャンネルで接続されています。そして、チャンネルホッピングは使われていない状態です。 
 + 
 +設定を確かめるためには、"iwconfig"を実行してください。次のようなレスポンスがあります。 
 + 
 +   lo        no wireless extensions. 
 + 
 +   eth0      no wireless extensions. 
 +    
 +   wmaster0  no wireless extensions. 
 +    
 +   wlan0     IEEE 802.11bg  ESSID:"" 
 +             Mode:Managed  Frequency:2.452 GHz  Access Point: Not-Associated 
 +             Tx-Power=0 dBm 
 +             Retry min limit:  RTS thr:off   Fragment thr=2352 B 
 +             Encryption key:off 
 +             Power Management:off 
 +             Link Quality: Signal level: Noise level:0 
 +             Rx invalid nwid: Rx invalid crypt: Rx invalid frag:0 
 +             Tx excessive retries: Invalid misc:  Missed beacon:0 
 +    
 +   mon0      IEEE 802.11bg  Mode:Monitor  Frequency:2.452 GHz  Tx-Power=0 dBm 
 +             Retry min limit:  RTS thr:off   Fragment thr=2352 B 
 +             Encryption key:off 
 +             Power Management:off 
 +             Link Quality: Signal level: Noise level:0 
 +             Rx invalid nwid: Rx invalid crypt: Rx invalid frag:0 
 +             Tx excessive retries: Invalid misc:  Missed beacon:0 
 + 
 + 
 +ここで、mon0はチャンネル9(2.452GHz)でモニターモードとして表示されています。madwifi-ngとは異なり、モニターインターフェースにはアクセスポイント欄がありません。また、wlan0は依然として表示され、マネージドモードですがこれが通常の状態です。両方のインターフェースは共通の無線を共有するため、常に同じチャンネルとして合わされることになります。一方のチャンネルを変更すれば他方のチャンネルも変わることになります。 
 + 
 + 
 +=== Step 1c - 他のドライバの設定 === 
 + 
 +他(ieee80211ベース)のドライバでは、モニターモードを有効にするには、次のコマンドを実行するだけです。(rausb0をあなたの環境のインターフェース名に変更してください。) 
 + 
 +   airmon-ng start rausb0 9 
 + 
 +システムのレスポンスは 
 + 
 +   Interface       Chipset         Driver 
 +    
 +   rausb0          Ralink          rt73 (monitor mode enabled) 
 + 
 +この時点でインターフェースは使用する準備ができています。 
 + 
 + 
 +==== Step 2 - ハンドシェイクを取得するために airodump-ng を起動する ==== 
 + 
 +このステップの目標はairodump-ngを実行し、ターゲットとなるアクセスポイントの4wayハンドシェイクを取得することです。 
 + 
 +入力 
 + 
 +   airodump-ng -c 9 --bssid 00:14:6C:7E:40:80 -w psk ath0 
 + 
 +ここで、 
 + 
 +  *-c 9 は無線LANネットワークのチャンネルです。 
 +  *-''''-bssid 00:14:6C:7E:40:80 はアクセスポイントのMACアドレスです。これにより余分なトラフィックを防げます。 
 +  *-w psk はIVを含むファイルを保存する際のファイル名です。 
 +  *ath0 はインターフェース名です。 
 + 
 +重要:"-''''-ivs"オプションは用いないでください。全てのパケットを取得しなければなりません。 
 + 
 +ここで無線LANクラインアントがアクセスポイントに接続されている場合、このように表示されます 
 + 
 +    CH  9 ][ Elapsed: 4 s ][ 2007-03-24 16:58 ][ WPA handshake: 00:14:6C:7E:40:80 
 +                                                                                                                  
 +    BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB  ENC  CIPHER AUTH ESSID 
 +                                                                                                                  
 +    00:14:6C:7E:40:80   39 100       51      116   14    54  WPA2 CCMP   PSK  teddy                            
 +                                                                                                                  
 +    BSSID              STATION            PWR  Lost  Packets  Probes                                              
 +                                                                                                                  
 +    00:14:6C:7E:40:80  00:0F:B5:FD:FB:C2   35          116   
 + 
 +上記で、右上にある"WPA handshake: 00:14:6C:7E:40:80"に注意してください。これはairodump-ngが4Wayハンドシェイクを正しく取得できたことを表しています。 
 + 
 +これは無線LANクライアントと接続出来ていない状態です。 
 + 
 +    CH  9 ][ Elapsed: 4 s ][ 2007-03-24 17:51  
 +                                                                                                                  
 +    BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB  ENC  CIPHER AUTH ESSID 
 +                                                                                                                  
 +    00:14:6C:7E:40:80   39 100       51        0    0    54  WPA2 CCMP   PSK  teddy                            
 +                                                                                                                  
 +    BSSID              STATION            PWR  Lost  Packets  Probes                                              
 + 
 + 
 + 
 + 
 +==== Step 3 - 無線LANクライアントの認証を無効化するためにaireplay-ngを用いる ==== 
 + 
 +このステップはオプションです。我慢強ければ、アクセスポイントへクライアントが接続しに来るまで待ち、airodump-ngでハンドシェイクを収集すればよいことです。この手順を自ら高速化する際にこのステップを実施すればよいでしょう。ここでの制約は、無線LANクライアントがアクセスポイントと接続済みでなければならないということです。もし一台もアクセスポイントと接続していなければ、ハンドシェイクを取得するためにクライアントがアクセスポイントに接続するまで我慢強く待たなければなりません。言うまでもありませんが、ハンドシェイクの取得に失敗すれば、またこのステップを実行することになります。 
 + 
 +このステップでは無線LANクライアントに対して、既にアクセスポイントとの接続が切れていることを装うパケットを送ります。無線LANクライアントはアクセスポイントとの再認証を行い始めます。再認証が今必要としている4Wayハンドシェイクを発生させるきっかけとなります。これこそがWPA/WPA2の事前共有鍵を破るために必要なものです。 
 + 
 +前のステップのairodump-ngの結果に基づき、どのクライアントが現在接続されているかを判断します。このあとでMACアドレスが必要となります。別のコンソールを開き、次のように入力します。 
 + 
 +   aireplay-ng -0 1 -a 00:14:6C:7E:40:80 -c 00:0F:B5:FD:FB:C2 ath0 
 + 
 +ここで 
 +  * -0 は認証の取り消しを意味します。 
 +  * 1 は認証取り消し先の数を入力します。 (複数を設定することも可能です。) 
 +  * -a 00:14:6C:7E:40:80 はアクセスポイントのMACアドレスです。 
 +  * -c 00:0F:B5:FD:FB:C2 は認証取り消し先のクライアントのMACアドレスです。 
 +  *ath0 はインターフェース名 
 + 
 +アウトプット例 
 + 
 +   11:09:28  Sending DeAuth to station   -- STMAC: [00:0F:B5:34:30:30] 
 + 
 +幸運なことに、このケースではクライアントの再認証を引き起こし、4Wayハンドシェイクが得られました。 
 + 
 +=== トラブルシューティング === 
 + 
 +  *  認証取り消しパケットはあなたのPCからクライアントに直接送られます。そのため、パケットをクライアントに届かせるために、物理的に十分近づかなくてはなりません。クライアントが認証取り消しパケットを受信したことを確認するためには、tcpdumpか何かを使ってクライアントから戻ってきたACKパケットを観察すればよいでしょう。もしACkパケットが戻ってこなければ、クライアントは認証取り消しパケットを受け取っていないことになります。 
 + 
 + 
 +==== Step 4 - 事前共有鍵をクラックするためにaircrack-ngを実行する ==== 
 + 
 +このステップの目標は実際にWPA/WPA2事前共有鍵をクラックすることです。クラックするためには辞書攻撃の入力に用いる辞書が必要となります。基本的には、aircrack-ngは1ワードづつそれが事前共有鍵かどうかを試すだけです。 
 + 
 +aircrack-ngには小さな辞書"password.lst"が付属しています。このファイルはaircrack-ngのソースコードの"test"ディレクトリにあります。[[faq#where_can_i_find_good_wordlists|Wiki FAQ]]には広範囲な辞書ソースが掲載されています。[[http://www.openwall.com/john/|John the Ripper]] (JTR)を使えば、ご自身の辞書リストを作成できます。[[aircrack-ng]]へパイプします。JTRとaircrack-ngの連携はこのチュートリアルを超えるため割愛します。 
 + 
 +別のコンソールを開き、次のように入力します 
 + 
 +  aircrack-ng -w password.lst -b 00:14:6C:7E:40:80 psk*.cap 
 + 
 +ここで 
 +   *-w password.lst は辞書ファイル名です。同じディレクトリにない場合はフルパスで記載してください。 
 +   **.cap はキャプチャーしたパケットを保存されているファイル群の名前です。複数のファイルを読み込むためにワイルドカード * を用いることが可能です。 
 + 
 +これはハンドシェイクが見つからなかった場合の典型的なレスポンスです。 
 + 
 +   Opening psk-01.cap 
 +   Opening psk-02.cap 
 +   Opening psk-03.cap 
 +   Opening psk-04.cap 
 +   Read 1827 packets. 
 +   
 +   No valid WPA handshakes found. 
 + 
 +こうなった場合は、ステップ3(無線LANクライアントの認証取り消し)を再度実行するか、パッシブ方式ならじっと待つことです。パッシブ方式の場合は、クライアントがアクセスポイントに認証を求めるまで待たなければなりません。 
 + 
 +ハンドシェイクが見つかった場合の典型的なレスポンスです 
 + 
 +   Opening psk-01.cap 
 +   Opening psk-02.cap 
 +   Opening psk-03.cap 
 +   Opening psk-04.cap 
 +   Read 1827 packets. 
 +    
 +   #  BSSID              ESSID                     Encryption 
 +   
 +    00:14:6C:7E:40:80  teddy                     WPA (1 handshake) 
 +    
 +   Choosing first network as target. 
 + 
 +ここで、aircrack-ngは事前共有鍵のクラックを試みることを始めます。CPUスピードと辞書サイズの大きさに依存し、クラックには長い時間がかかります。 
 + 
 +事前共有鍵をクラックできた場合のレスポンスです 
 + 
 +                                 Aircrack-ng 0.8 
 +    
 +    
 +                   [00:00:00] 2 keys tested (37.20 k/s) 
 +    
 +    
 +                           KEY FOUND! [ 12345678 ] 
 +    
 +    
 +      Master Key     : CD 69 0D 11 8E AC AA C5 C5 EC BB 59 85 7D 49 3E  
 +                       B8 A6 13 C5 4A 72 82 38 ED C3 7E 2C 59 5E AB FD  
 +    
 +      Transcient Key : 06 F8 BB F3 B1 55 AE EE 1F 66 AE 51 1F F8 12 98  
 +                       CE 8A 9D A0 FC ED A6 DE 70 84 BA 90 83 7E CD 40  
 +                       FF 1D 41 E1 65 17 93 0E 64 32 BF 25 50 D5 4A 5E  
 +                       2B 20 90 8C EA 32 15 A6 26 62 93 27 66 66 E0 71  
 +    
 +      EAPOL HMAC     : 4E 27 D9 5B 00 91 53 57 88 9C 66 C8 B1 29 D1 CB  
 + 
 + 
 +===== トラブルシューティング ===== 
 + 
 +==== ハンドシェイクが取得できない! ==== 
 + 
 +4Wayハンドシェイクを取得するにはテクニックが必要なことがあります。ここではいくつかのトラブルシューティングテクニックを提供します。 
 + 
 +  * モニターに用いるカードはクライアント、アクセスポイントとともに同じモードにしなくてはなりません。例えば、モニター用のカードが"B"モードでクライアントやアクセスポイントが"G"モードを利用している場合、ハンドシェイクは取得できません。これは"turbo"モードや他の新しい技術が用いられている新しいアクセスポイントやクライアントでは特に重要となってきます。いくつかのドライバでは、モードを指定することが可能です。またiwconfigには"modulation"オプションが用意されています。"modulation"オプションについて、詳しくは"man iwconfig"でごらんください。1, 2, 5.5, 11Mbit は 'b'となり、 6, 9, 12, 18, 24, 36, 48, 54Mbit は 'g'となります。 
 +  * モニターモードのカードを同じ速度に設定しなくてはならない場合もあります。IE auto, 1MB, 2MB, 11MB, 54MB, など。 
 +  * パケットを取得するカードがアクセスポイントと同じチャンネルに固定されていることを確認してください。airodump-ng中には"-c <APのチャンネル>"で指定することが可能です。 
 +  * 同じPCで無線LANマネージャが動いていないことを確認してください。無線LANマネージャはあなたの知らないところでチャンネルやモードを変更します。 
 +  * アクセスポイントと無線LANクライアントからのパケットを受信するために物理的に十分近づいてください。無線LANカードの電波強度はアクセスポイントのそれよりも低いのが通常です。 
 +  * 逆に、あまりにも近づきすぎるとエラーパケットを受け取ったり、パケットが破棄されることがあります。そのため近づきすぎは禁物です。 
 +  * wikiに掲載されているドライバを使っていることを確認してください。ドライバによっては、古いバージョンでは全てのパケットを取得できないことがあります。 
 +  * 理想としては、ハンドシェイクを生成するために無線LANクライアントを実際に接続、切断することです。 
 +  * 認証を取り消すテクニックを用いる場合、クライアントが再認証を起こすのに必要な極々最低限のパケットを送ることです。通常、ここでは一つの認証取り消しパケットが用いられます。送りすぎるとクライアントは再接続に失敗するため4Wayハンドシェイクを生成しません。同様に、ブロードキャストではなく、直接認証取り消しを送ります。クライアントが認証取り消しパケットを受け取ったことを確認するために、tcpdumpなどACKパケットを観察できるツールを用います。ACKパケットを受け取れなかった場合は、クライアントは認証取り消しパケットを受け取っていないと言うことです。 
 +  * クライアントの無線を一旦止めてから再起動してみる。 
 +  * 無線LANマネージャー, Kismetなどの邪魔をするプログラムやプロセスを実行させない。 
 +  * [[wpa_capture|WPA Packet Capture Explained tutorial]]を用いて取得したデータに問題がないかを確認する。アクセスポイントのパケットの欠損、クライアントのパケットの欠損などを特定できます。 
 +   
 +残念ながら、4Wayハンドシェイクを適切に取得するためには少し実験じみたことが必要となることがあります。ポイントは、初回でダメなら、少し我慢していろいろと試してみることです。そうすればできるでしょう! 
 + 
 +もう一つのアプローチはWiresharkを使って、取得したパケットを分析することです。これが問題を解く手がかりとなることがあります。[[wpa_capture|WPA Packet Capture Explained tutorial]]はこのチュートリアルと一緒に読むことで、通常のWPA接続のしくみを理解する手引きになります。また[[faq|FAQ]]にはWiresharkの詳細な使い方が掲載されています。 
 + 
 +理想的な話をすれば、ちゃんとパケットを取得できる無線LANデバイスを使うべきです。いくつかのドライバ、例えば、RTL8187Lなどはカード自身が送信したパケットを取得できません。またwikiに掲載されているバージョンのドライバを利用してください。RT73などの古いバージョンのドライバではクライアントパケットが取得できないことがあるためです。 
 + 
 +Wiresharkを利用する際は、"eapol"フィルターを使うことでEAPOLパケットだけを手早く表示できます。どのEAPOLパケットが実際に取得できたかにより、修正計画を決めます。例えば、クライアントパケットを損失している場合は、理由を特定し、どうやってクライアントパケットを取得するかを考えます。 
 + 
 +パケット分析をしっかり行えるようになるためには、airodump-ngをBSSIDフィルターなしで起動し、IVだけでなく全パケットを取得することです。BSSIDフィルターを用いない理由は、ACKパケットを含め全てのパケットを確認するためです。BSSIDフィルターを用いると、パケット取得時に特定のパケットが欠損してしまいます。 
 + 
 +クライアントまたはアクセスポイントから送られる全てのパケットは承認されていなければなりません。これは元のパケットを送ったデバイスを宛先とするMACアドレスを持った承認パケットによってなされます。クライアントの認証取り消しを行えば、ACKパケットを受け取れることでこの事実を確認できます。このことはクライアントが認証取り消しパケットを受け取ったかどうかを確認できます。ACKパケットを受け取るのに失敗したということは、クライアントは送信範囲から外れていると言うことを意味します。従って、失敗したと言うわけです。 
 + 
 +パケット分析をするに当たって、詳細な手引きをすることは不可能です。いくつかのテクニックと見るべき項目について触れました。WPA/WPA2についての技術を磨くことと、Wiresharkを使いこなすための努力こそが必要なことです。 
 + 
 + 
 +==== aircrack-ng に "0 handshakes" と表示される ==== 
 + 
 +上記の「ハンドシェイクが取得できない!」にまつわるトラブルシューティングをご覧ください。 
 + 
 + 
 +==== aircrack-ng に "No valid WPA handshakes found" と表示される ==== 
 + 
 +上記の「ハンドシェイクが取得できない!」にまつわるトラブルシューティングをご覧ください。
ja/cracking_wpa.txt · 最終更新: 2018/03/11 19:59 by mister_x