以前から自宅Wi-Fiのセキュリティーに懸念があり、テスト的にクラックしてみようと考えていました。無線ルーターの方式はWEPはもはや有り得ないという事は分かっているのでWPA2を使っていますが、PSKだとハンドシェイクをキャプチャされると後は力業で解析されるという点は不安要素でもあります。
我が家のWi-Fiルーターは機種も分かっているのである程度パスフレーズが絞れるという前提で自分でハッキング(クラッキング)を実験しようと以前から考えていましたが余裕が無くて後回しにしてました。
ようやく重い腰を上げて実践です。実際にやってみると、ハンドシェイクは比較的容易にキャプチャリング出来ました。呆気ない位に取れるので怖さがわかりました。
しかしここからのクラッキング(解析)は意外と大変だと分かりました。
ルーターメーカーのデフォルトパスフレーズは、ある程度の桁数のランダムなパスフレーズを持たせているので、aircrack-ngで解析する為に必要なワードリストがポイントとなりますがそのワードリストが半端なく容量がデカくなります。
我が家のルーターなので勿論パスフレーズは分かっているのですが、桁数と使われている文字(数字、アルファベット)を分かっている桁数分生成してブルートフォースアタックさせてみようと思ったのですが、それ以前にワードリストの生成が課題です。
具体的には、Linux系(Windowsアプリもあるけど)のcrunchコマンドで使う文字、文字桁数(13桁)を指定してワードリストを生成させるととんでもない容量のリストになります。
ここで危険だと分かったのは、Wi-Fiアクセスのパスフレーズを一般的な単語(ワード)にしていると、ネットにはそういう目的の為に作られたワードリストが存在しているし、強化されたワードリストは有料で販売されたりもしていますから突破される危険性があります。
我が家ではデフォルトパスフレーズをそのまま使っているので、そういうワードリストを使っても突破されるはずがありません。
デフォルトパスフレーズを推測する方針で、私はcrunchコマンドで13桁の英数字からなる不規則なパスフレーズを生成しようとしました。しかしマトモに13桁を生成しようとすると2TBのハードディスクにとても収まらないワードリストの膨大さに笑いが込み上げて来ます。これは無理だろに。
安全と思われるパスフレーズ
メーカー製ルーターの多くのデフォルトのパスフレーズは、だいたい0-9の数字とA-Fの数字のランダムな組み合わせからなっています。つまり16進数によるランダムなパスフレーズは、桁数が多ければ総当たり(ブルートフォースアタック)する為のワードリストを作るだけでも途方もない組み合わせの数になります。
人が覚えられない不規則なパスフレーズは、桁数が多ければ多い程現実的にクラッキングされる可能性は低いと言えます。さらにA-FではなくA-Zまで使用すれば飛躍的にセキュリティーレベルは上がります。
面倒でも不規則な英数字の組み合わせとして、なるだけ桁数を増やす事が重要です。覚えられないからと言ってけっしてデフォルトから桁数を短くしないことが重要ですね。桁数が短ければブルートフォースアタックで解析されるリスクが高まります。下手に弄るよりデフォルトのまま使った方が安全です。メーカーはそれなりに考慮してます。
crunchコマンドでワードリストを作る
前述の通りハンドシェイクのパケット取得は比較的容易です。そういうツールが有るのでそこは防御出来ないでしょう。
だからその次のパスフレーズを膨大にして現実的に解析不可能とさせるしか有りません。crunchコマンドでいかに効率良く使われそうなパスフレーズ(あり得なさそうなパスフレーズを除外する)を生成するかがハッキングする側の考えることです。
例えばこんなパスフレーズは使わないでしょう。
0000 0000 0000 0
0000 0000 0000 A
0000 1111 2222 3
こういう使われなさそうな無駄を省いたワードリスト生成がクラッカー側の考える事だと思います。しかし裏を返すとそういうパスフレーズは安全だったりもするのかも?(裏の読み合いです)
私は視点を変えてハッキングする側から工夫してみることにしました。既にハンドシェイクパケットはキャプチャリング出来ているので、後は高速な演算が出来るマシンにワードリストを食わせて延々と解析させればいずれ我が家のWi-Fiルーターもパスフレーズが分かるはずなのです。
しかし、ハッキングする側の視点からしても、13桁の英数字のランダムな組み合わせからなるワードリストの生成はかなり難しいです。実際にcrunchコマンドで生成したリスト(テキストファイル)の容量が2TBのHDDにすら全く収まりません。こんな膨大なワードリストを使って解析しても、いくら高速なPCで処理したとしても途方もない時間がかかり現実的に不可能です。
crunchコマンドを使いこなすのがWi-Fiクラッキングの肝とも言えそうです。
クラッカー側の動向を知る!
防御するには攻撃する側の手口や考えを知る事が有効だと思います。前述の通りネットではブルートフォース用のワードリストがアチコチで公開されています。
それを見てみると攻撃する側が考える事がわかりますし、そこに記されてるパスフレーズは絶対にダメだと言うこともわかります。
apple
elppa
ひっくり返しただけのパターンは既に見抜かれていてワードリストに掲載済みですから、主要な単語の逆転パターンは一発で突破されます。
やはり人間が覚えられない英数字のランダムパスフレーズで桁数が多いのが良いと思われます。ブルートフォースアタック用のワードリストすら準備が難しいのですから。
どうしても一般的な単語を使いたいなら複数の単語を組み合わせて桁数を稼ぎます。更に記号を混ぜることです。おそらくかなり研究しているクラッカーでなければ破る事は無理だと思います。
Kali Linuxで学習しよう
ハッキング、クラッキングという言葉は良くないイメージが付きまといますが、実際に自分の環境で(もちろん犯罪行為ではない)試してみると、一気に理解が深まります。そしてどうすれば防御出来るかが自ずと理解出来ます。
Kali linuxにはそういうツールがビッシリと詰まっており、悪い事にも、防御の学習にも使える環境が揃っています。
個人的な価値観で言うと、クラッキングとかは技術的な好奇心と暇つぶし要素が強いと思ってて、そういう輩から身を守る為に学習環境として使うのは相反する目的だと思います。
実際に防御するには攻撃手法を知るのがいちばん効果的です。面倒くさいからと緩いパスフレーズを設定しているWi-Fiなら本当に少しの労力でハッキング(クラッキング)出来ちゃうという事が分かってしまいました。
コメント