ja:cracking_wpa
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン最新のリビジョン両方とも次のリビジョン | ||
ja:cracking_wpa [2011/01/08 07:34] – macoto | ja:cracking_wpa [2011/01/08 17:07] – [aircrack-ng に No valid WPA handshakes found と表示される] macoto | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== | + | ====== |
- | Version: 1.20 March 07, 2010 | + | Version: 1.20 March 07, 2010\\ |
- | By: nao | + | By: darkAudax\\ |
+ | Translated by: nao on January 08, 2011 | ||
+ | ===== 最初に ===== | ||
+ | |||
+ | このチュートリアルは事前共有鍵を用いるWPA/ | ||
+ | |||
+ | WPA/ | ||
+ | |||
+ | WPA/ | ||
+ | |||
+ | 事前共有鍵をクラックできるケースとしては、鍵が辞書に含まれている言葉を用いている場合と比較的短い鍵を用いている場合です。逆に言えば、自宅の無線ネットワークをクラックされないためには、WPA/ | ||
+ | |||
+ | 辞書攻撃を用いる影響は計りしれません。それは非常にコンピュータ集約的であり、CPUに依存するため、1秒間に試せるのはせいぜい50から300キーほどだからです。\\ | ||
+ | # 訳者注\\ | ||
+ | # 原文では1秒間に50から300と記載されていますが、最近ではそんなに遅くは無いかと思います。\\ | ||
+ | 大きな辞書でごりごりクラッキングするには何日とはかからなくても、数時間はかかります。自分のパスワードを作成する際、まずここ [[http:// | ||
+ | |||
+ | **重要**つまりWPA/ | ||
+ | |||
+ | クラッキングするにあたり、WPAかWPA2であるかは大きな違いではありません。認証方式は基本的に同じです。従って、方法は全く同じです。 | ||
+ | |||
+ | ここでの考え方やテクニックになれるためにはご自宅のアクセスポイントで実験してみることをおすすめします。ご自身で管理されているアクセスポイントをお持ちでない場合は、所有者に許可を取ってから行うようにしてください。 | ||
+ | |||
+ | このような強力なツールを生み出してくれた[[http:// | ||
+ | |||
+ | 前向きであるかないかに関わらず、建設的なフィードバックをお待ちしています。トラブルシューティングのアイデアやテクニックも大いに歓迎です。 | ||
+ | |||
+ | ===== 前提条件 ===== | ||
+ | |||
+ | まず、以下の条件を前提とします: | ||
+ | * Injectionパッチの当たったドライバを用いる。[[injection_test|injection test]]で確認できます。 | ||
+ | * アクセスポイントに対してパケットを送受するのに物理的に十分近い場所にいること。アクセスポイントからパケットを受け取れるからといって、パケットを遅れるとは限りません。一般的な無線LANカードはアクセスポイントほど強い電波を発しません。そのため、あなたのクライアントからアクセスポイントや他のワイヤレスクライアントに対してパケットを送ったり受け取るためには物理的に十分近づく必要があります。[[injection_test# | ||
+ | * aircrack-ngのv0.9.1以上を使う。他のバージョンではコマンドオプションが違うかもしれません。 | ||
+ | |||
+ | 上記の条件を満たしていても、下記の通り動かない場合があります。以下の例中で用いられている" | ||
+ | ===== 無線LAN機器の設定値 ===== | ||
+ | |||
+ | このチュートリアルでは以下の値を用いています: | ||
+ | |||
+ | *aircrack-ngスイートを動かしているPCのMACアドレス:00: | ||
+ | *WPA2を利用している無線LANクライアントのMACアドレス:00: | ||
+ | *BSSID (アクセスポイントのMACアドレス): | ||
+ | *ESSID (無線LAN名): | ||
+ | *アクセスポイントのチャンネル: | ||
+ | *無線LANインターフェース: | ||
+ | |||
+ | あなたが試そうとしているネットワークについても上記と同等の情報を集めなくてはなりません。その上で、以下の例中の値を読み替えてください。 | ||
+ | ===== クラッキングの方法 ===== | ||
+ | |||
+ | ==== 概要 ==== | ||
+ | |||
+ | 目標はWPA/ | ||
+ | |||
+ | アクティブ方式とパッシブ方式、どちらの方式でも可能です。アクティブとは既に繋がっている無線LANクライアントの認証を一旦無効化することによりハンドシェイクの取得を早めることを意味しています。パッシブとは無線LANクライアントが新たにWPA/ | ||
+ | |||
+ | 基本的なステップ: | ||
+ | |||
+ | - 特定のチャネルに設定し、モニターモードで無線LANインターフェースを起動する。 | ||
+ | - ハンドシェイクを取得するために、BSSIDフィルタを用いてアクセスポイントのチャネルに合わせてairodump-ngを起動する。 | ||
+ | - 認証済みの無線LANクライアントの認証を一旦無効化するためにaireplay-ngを用いる。 | ||
+ | - ハンドシェイクを用いて事前共有鍵をクラックするためにaircrack-ngを走らせる。 | ||
+ | |||
+ | ==== Step 1 - モニターモードで無線LANインターフェースを起動する ==== | ||
+ | |||
+ | このステップの目標はあなたの無線LANカードをいわゆるモニターモードで起動することです。モニターモードは周辺環境の全ての無線LANパケットを拾うモードです。通常、無線LANカードはそのカードと無線通信を行っているパケットのみ拾うことができます。全てのパケットを拾うことで、WPA/ | ||
+ | |||
+ | モニターモードを有効にするための厳密な手順はあなたの使っている無線LANカードのドライバによって変わります。ドライバを特定するために次のコマンドを実行してください。 | ||
+ | |||
+ | | ||
+ | |||
+ | Ralink, Atheros, Broadcomチップを搭載した無線LANカードでは、次のようにレスポンスがあります。 | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | ドライバ名の後の[phy0]タグの表示は、mac80211向けの表示です。つまり、ここでBroadcomカードはmac80211ドライバを利用しています。 **注意 mac80211ドライバはaircrack-ng v1.0-rc1以降でサポートされています。v0.9.1.では動きません。** | ||
+ | Aterosカードは両方ともドライバとして" | ||
+ | 最後に、Ralinkのドライバ欄にはどちらも表示されていません。従って、ieee80211ドライバを用いています。こちらの設定には一般的な設定手順をご覧ください。 | ||
+ | |||
+ | |||
+ | === Step 1a - madwifi-ng の設定 === | ||
+ | |||
+ | まず、ath0を止めます。 | ||
+ | |||
+ | | ||
+ | |||
+ | システムからのレスポンス | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | " | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | athXインターフェースがある場合は、それを止めます。それから" | ||
+ | |||
+ | さて、次のコマンドを入力し、チャンネル9でモニターモードで無線LANカードを起動します。 | ||
+ | |||
+ | | ||
+ | |||
+ | |||
+ | 注意:ここでは" | ||
+ | |||
+ | システムからのレスポンスは | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | 上記のように" | ||
+ | |||
+ | インターフェースが正しく設定されていることを確認するために、" | ||
+ | |||
+ | システムからのレスポンスは | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | Mode: | ||
+ | Bit Rate:0 kb/s | ||
+ | Retry: | ||
+ | Encryption key:off | ||
+ | Power Management: | ||
+ | Link Quality=0/ | ||
+ | Rx invalid nwid: | ||
+ | Tx excessive retries: | ||
+ | |||
+ | 上記のレスポンスでは、ath0はチャンネル9、2.452GHz、モニターモードで起動されていることがわかります。またアクセスポイントはあなたの無線カードのMacアドレスを表示しています。madwifi-ngドライバのみAP欄にカードのMACアドレスが表示されます。他のドライバでは表示されません。次に進み適切に動かすためには、ここに表示されている全ての情報について確認することが重要です。 | ||
+ | |||
+ | 周波数をチャンネルに合わせるためには、こちらをチェック: | ||
+ | http:// | ||
+ | 各チャンネルごとの周波数がわかります。 | ||
+ | |||
+ | === Step 1b - mac80211 ドライバの設定 === | ||
+ | |||
+ | madwifi-ngとはことなり、mac80211ドライバの設定にはwlan0インターフェースの削除は必要ありません。その代わり、チャンネル9でモニターモードを起動するためには次のコマンドが必要となります。 | ||
+ | |||
+ | | ||
+ | |||
+ | システムからのレスポンスは | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | airmon-ngは// | ||
+ | |||
+ | 設定を確かめるためには、" | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | Retry min limit: | ||
+ | | ||
+ | Power Management: | ||
+ | Link Quality: | ||
+ | Rx invalid nwid: | ||
+ | Tx excessive retries: | ||
+ | |||
+ | | ||
+ | Retry min limit: | ||
+ | | ||
+ | Power Management: | ||
+ | Link Quality: | ||
+ | Rx invalid nwid: | ||
+ | Tx excessive retries: | ||
+ | |||
+ | |||
+ | ここで、mon0はチャンネル9(2.452GHz)でモニターモードとして表示されています。madwifi-ngとは異なり、モニターインターフェースにはアクセスポイント欄がありません。また、wlan0は依然として表示され、マネージドモードですがこれが通常の状態です。両方のインターフェースは共通の無線を共有するため、常に同じチャンネルとして合わされることになります。一方のチャンネルを変更すれば他方のチャンネルも変わることになります。 | ||
+ | |||
+ | |||
+ | === Step 1c - 他のドライバの設定 === | ||
+ | |||
+ | 他(ieee80211ベース)のドライバでは、モニターモードを有効にするには、次のコマンドを実行するだけです。(rausb0をあなたの環境のインターフェース名に変更してください。) | ||
+ | |||
+ | | ||
+ | |||
+ | システムのレスポンスは | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | この時点でインターフェースは使用する準備ができています。 | ||
+ | |||
+ | |||
+ | ==== Step 2 - ハンドシェイクを取得するために airodump-ng を起動する ==== | ||
+ | |||
+ | このステップの目標はairodump-ngを実行し、ターゲットとなるアクセスポイントの4wayハンドシェイクを取得することです。 | ||
+ | |||
+ | 入力 | ||
+ | |||
+ | | ||
+ | |||
+ | ここで、 | ||
+ | |||
+ | *-c 9 は無線LANネットワークのチャンネルです。 | ||
+ | *-'''' | ||
+ | *-w psk はIVを含むファイルを保存する際のファイル名です。 | ||
+ | *ath0 はインターフェース名です。 | ||
+ | |||
+ | 重要:" | ||
+ | |||
+ | ここで無線LANクラインアントがアクセスポイントに接続されている場合、このように表示されます | ||
+ | |||
+ | CH 9 ][ Elapsed: 4 s ][ 2007-03-24 16:58 ][ WPA handshake: 00: | ||
+ | |||
+ | BSSID PWR RXQ Beacons | ||
+ | |||
+ | 00: | ||
+ | |||
+ | BSSID STATION | ||
+ | |||
+ | 00: | ||
+ | |||
+ | 上記で、右上にある" | ||
+ | |||
+ | これは無線LANクライアントと接続出来ていない状態です。 | ||
+ | |||
+ | CH 9 ][ Elapsed: 4 s ][ 2007-03-24 17:51 | ||
+ | |||
+ | BSSID PWR RXQ Beacons | ||
+ | |||
+ | 00: | ||
+ | |||
+ | BSSID STATION | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Step 3 - 無線LANクライアントの認証を無効化するためにaireplay-ngを用いる ==== | ||
+ | |||
+ | このステップはオプションです。我慢強ければ、アクセスポイントへクライアントが接続しに来るまで待ち、airodump-ngでハンドシェイクを収集すればよいことです。この手順を自ら高速化する際にこのステップを実施すればよいでしょう。ここでの制約は、無線LANクライアントがアクセスポイントと接続済みでなければならないということです。もし一台もアクセスポイントと接続していなければ、ハンドシェイクを取得するためにクライアントがアクセスポイントに接続するまで我慢強く待たなければなりません。言うまでもありませんが、ハンドシェイクの取得に失敗すれば、またこのステップを実行することになります。 | ||
+ | |||
+ | このステップでは無線LANクライアントに対して、既にアクセスポイントとの接続が切れていることを装うパケットを送ります。無線LANクライアントはアクセスポイントとの再認証を行い始めます。再認証が今必要としている4Wayハンドシェイクを発生させるきっかけとなります。これこそがWPA/ | ||
+ | |||
+ | 前のステップのairodump-ngの結果に基づき、どのクライアントが現在接続されているかを判断します。このあとでMACアドレスが必要となります。別のコンソールを開き、次のように入力します。 | ||
+ | |||
+ | | ||
+ | |||
+ | ここで | ||
+ | * -0 は認証の取り消しを意味します。 | ||
+ | * 1 は認証取り消し先の数を入力します。 (複数を設定することも可能です。) | ||
+ | * -a 00: | ||
+ | * -c 00: | ||
+ | *ath0 はインターフェース名 | ||
+ | |||
+ | アウトプット例 | ||
+ | |||
+ | | ||
+ | |||
+ | 幸運なことに、このケースではクライアントの再認証を引き起こし、4Wayハンドシェイクが得られました。 | ||
+ | |||
+ | === トラブルシューティング === | ||
+ | |||
+ | * 認証取り消しパケットはあなたのPCからクライアントに直接送られます。そのため、パケットをクライアントに届かせるために、物理的に十分近づかなくてはなりません。クライアントが認証取り消しパケットを受信したことを確認するためには、tcpdumpか何かを使ってクライアントから戻ってきたACKパケットを観察すればよいでしょう。もしACkパケットが戻ってこなければ、クライアントは認証取り消しパケットを受け取っていないことになります。 | ||
+ | |||
+ | |||
+ | ==== Step 4 - 事前共有鍵をクラックするためにaircrack-ngを実行する ==== | ||
+ | |||
+ | このステップの目標は実際にWPA/ | ||
+ | |||
+ | aircrack-ngには小さな辞書" | ||
+ | |||
+ | 別のコンソールを開き、次のように入力します | ||
+ | |||
+ | aircrack-ng -w password.lst -b 00: | ||
+ | |||
+ | ここで | ||
+ | *-w password.lst は辞書ファイル名です。同じディレクトリにない場合はフルパスで記載してください。 | ||
+ | | ||
+ | |||
+ | これはハンドシェイクが見つからなかった場合の典型的なレスポンスです。 | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | Read 1827 packets. | ||
+ | | ||
+ | No valid WPA handshakes found. | ||
+ | |||
+ | こうなった場合は、ステップ3(無線LANクライアントの認証取り消し)を再度実行するか、パッシブ方式ならじっと待つことです。パッシブ方式の場合は、クライアントがアクセスポイントに認証を求めるまで待たなければなりません。 | ||
+ | |||
+ | ハンドシェイクが見つかった場合の典型的なレスポンスです | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | Read 1827 packets. | ||
+ | |||
+ | # | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | ここで、aircrack-ngは事前共有鍵のクラックを試みることを始めます。CPUスピードと辞書サイズの大きさに依存し、クラックには長い時間がかかります。 | ||
+ | |||
+ | 事前共有鍵をクラックできた場合のレスポンスです | ||
+ | |||
+ | | ||
+ | |||
+ | |||
+ | | ||
+ | |||
+ | |||
+ | 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ハンドシェイクを取得するにはテクニックが必要なことがあります。ここではいくつかのトラブルシューティングテクニックを提供します。 | ||
+ | |||
+ | * モニターに用いるカードはクライアント、アクセスポイントとともに同じモードにしなくてはなりません。例えば、モニター用のカードが" | ||
+ | * モニターモードのカードを同じ速度に設定しなくてはならない場合もあります。IE auto, 1MB, 2MB, 11MB, 54MB, など。 | ||
+ | * パケットを取得するカードがアクセスポイントと同じチャンネルに固定されていることを確認してください。airodump-ng中には" | ||
+ | * 同じPCで無線LANマネージャが動いていないことを確認してください。無線LANマネージャはあなたの知らないところでチャンネルやモードを変更します。 | ||
+ | * アクセスポイントと無線LANクライアントからのパケットを受信するために物理的に十分近づいてください。無線LANカードの電波強度はアクセスポイントのそれよりも低いのが通常です。 | ||
+ | * 逆に、あまりにも近づきすぎるとエラーパケットを受け取ったり、パケットが破棄されることがあります。そのため近づきすぎは禁物です。 | ||
+ | * wikiに掲載されているドライバを使っていることを確認してください。ドライバによっては、古いバージョンでは全てのパケットを取得できないことがあります。 | ||
+ | * 理想としては、ハンドシェイクを生成するために無線LANクライアントを実際に接続、切断することです。 | ||
+ | * 認証を取り消すテクニックを用いる場合、クライアントが再認証を起こすのに必要な極々最低限のパケットを送ることです。通常、ここでは一つの認証取り消しパケットが用いられます。送りすぎるとクライアントは再接続に失敗するため4Wayハンドシェイクを生成しません。同様に、ブロードキャストではなく、直接認証取り消しを送ります。クライアントが認証取り消しパケットを受け取ったことを確認するために、tcpdumpなどACKパケットを観察できるツールを用います。ACKパケットを受け取れなかった場合は、クライアントは認証取り消しパケットを受け取っていないと言うことです。 | ||
+ | * クライアントの無線を一旦止めてから再起動してみる。 | ||
+ | * 無線LANマネージャー, | ||
+ | * [[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を利用する際は、" | ||
+ | |||
+ | パケット分析をしっかり行えるようになるためには、airodump-ngをBSSIDフィルターなしで起動し、IVだけでなく全パケットを取得することです。BSSIDフィルターを用いない理由は、ACKパケットを含め全てのパケットを確認するためです。BSSIDフィルターを用いると、パケット取得時に特定のパケットが欠損してしまいます。 | ||
+ | |||
+ | クライアントまたはアクセスポイントから送られる全てのパケットは承認されていなければなりません。これは元のパケットを送ったデバイスを宛先とするMACアドレスを持った承認パケットによってなされます。クライアントの認証取り消しを行えば、ACKパケットを受け取れることでこの事実を確認できます。このことはクライアントが認証取り消しパケットを受け取ったかどうかを確認できます。ACKパケットを受け取るのに失敗したということは、クライアントは送信範囲から外れていると言うことを意味します。従って、失敗したと言うわけです。 | ||
+ | |||
+ | パケット分析をするに当たって、詳細な手引きをすることは不可能です。いくつかのテクニックと見るべき項目について触れました。WPA/ | ||
+ | |||
+ | |||
+ | ==== aircrack-ng に "0 handshakes" | ||
+ | |||
+ | 上記の「ハンドシェイクが取得できない!」にまつわるトラブルシューティングをご覧ください。 | ||
+ | |||
+ | |||
+ | ==== aircrack-ng に "No valid WPA handshakes found" と表示される ==== | ||
+ | |||
+ | 上記の「ハンドシェイクが取得できない!」にまつわるトラブルシューティングをご覧ください。 |
ja/cracking_wpa.txt · 最終更新: 2018/03/11 19:59 by mister_x