はじめに
「ハッキング・ラボのつくりかた」p.546-553の内容に沿って、KaliLinux2022.1で検証してみる記事です。
最初に述べておきますが、KaliLinuxで使っているwifiアダプタでは、chopchop攻撃が使用できないようなので、途中から別のノートパソコンで検証を行いました。
注意事項
記事で紹介されている行為を他人や団体、インフラなどの許可を得ずに行った場合、犯罪となる可能性が有ります。
あくまでも、記事の内容は情報セキュリティの学習です。読者様の所有・管理の機器、システムでのみ実行してください。
また、読者さまのシステムにトラブルが起きたとしても、私は責任を負いかねます。
KoreK chopchop攻撃とは
前にも書きましたが、WEPのパスワード解析には、パケットのIV(WEPの暗号化に使用される24bitのデータ)を多く集めることが必要です。攻撃者側から人為的にパケット(含むIV)を増やすように細工をすれば、早くパケットが集まることで、解析時間の短縮が期待できるわけです。
KoreK chopchopは、そういった攻撃方法のひとつ。
検証
APに接続している端末がKaliLinuxのみにしておく。
MACアドレスをわかりやすいものに変更する
無線LANアダプタのランダムMACアドレス機能を無効にする。
ファイル"/etc/NetworkManager/NetworkManager.conf"に以下を追記した後、sudo systemctl restart NetworkManager
を実行する。
[device]
wifi.scan-rand-mac-address=no
MACアドレスの変更
ベンダーIDはもとのMADアドレスと同じにする。ベンダーIDは、MACアドレスの左から6桁目までである。ベンダーは、MACアドレス検索 | UICから調べることができる。
macchanger -s wlan0
Current MACのベンダーIDとPermanent MACのベンダーIDが違うものになってしまった。
KaliLinuxを再起動すると、両者が統一される。
sudo ifconfig wlan0 down
sudo macchanger --mac=<新しく設定するMACアドレス> wlan0
sudo ifconfig wlan0 up
ip addr show wlan0
ARPパケットを偽装(chopchop攻撃の開始)のコマンドが
sudo aireplay-ng --chopchop -b <ターゲットのbssid> -h <送信元のMACアドレス> wlan0
KaliLinuxではうまくできなくなったので、それ以降の検証は別のノートパソコンで行いました。
そのせいで、「airodump-ngを実行する」からの画面のスクショがKaliLinuxのものとは異なっております。
airodump-ngを実行する
sudo airodump-ng wlan0
でAPを探索する。
ターゲットのAPが見つかったら、次のコマンドを実行する。
sudo airodump-ng --channel 2 --bssid <ターゲットのbssid> --write chopchop wlan0
aireplay-ngを使った偽認証
airodump-ngとは、別の端末を新規に立ち上げて、次のコマンドを実行する。
sudo aireplay-ng --fakeauth 0 -a <ターゲットのbssid> -h <送信元のMACアドレス> wlan0
//または、aireplay-ngのヘルプより、次のコマンドでもOK
sudo aireplay-ng -1 0 -a <ターゲットのbssid> -h <送信元のMACアドレス> wlan0
-1オプションは、--fakeauthオプションの簡略表記。
出力の最後に、"Association successfull :-) (AID: 1)"が確認できたら、実行中のairodump-ngの"AUTH"の値が空欄からOPNに変化する。
ARPパケットを偽装(chopchop攻撃の開始)
次のコマンドを、上記のコマンドに続けて実行する。
sudo aireplay-ng --chopchop -b <ターゲットのbssid> -h <送信元のMACアドレス> wlan0
//または、aireplay-ngのヘルプより、次のコマンドでもOK
sudo aireplay-ng -4 -b <ターゲットのbssid> -h <送信元のMACアドレス> wlan0
ダンプデータ(0x0000アドレスから始まる16進数で表示されているバイナリデータ)が3〜5行になるまでは、"Use this packet?"に"n"と返答する。
"n"を入力すると、別のパケットが読み込まれる。
今回は、一発目で5行以上のダンプデータが得られたので、これをそのまま使うことにする。
処理には数分かかる。
処理が完了すると、テキストファイル.capファイルとキーストリーム.xorファイルが作成される。
偽装したARPパケットを送信する
packetforge-ng
コマンドを使う。
sudo packetforge-ng -0 -a <ターゲットのbssid> -h <送信元のMACアドレス> -k 255.255.255.255 -l 255.255.255.255 -y replay_dec-0523-133418.xor -w replay_dec-0523-133418.cap
-0は、ARP要求パケットの生成すること意味する。
-kオプションには、宛先IPアドレス、-lオプションには、送信元IPアドレスを指定する。
今回、同書の記述に沿って、-kと-lオプションには、ブロードキャストアドレスを指定している。
私は、ブロードキャストアドレスを使用する理由として、宛先IPアドレス(APのIPアドレス)の場合は、攻撃者が知っているとは限らないこと、送信元IPアドレスの場合は、攻撃者(送信元)のIPアドレスをごまかすためではないかと思った。ただ、どのみちAPのARPテーブルに攻撃者のMACアドレスが残ることになる。(macchangerで変更しているけど)
これについて、packetforge-ngに次の記述があった。
"Most access points really don't care what IPs are used for the arp request. So as a result you can use 255.255.255.255 for source and destination IPs."
私訳: 「殆どのAPはARPリクエストにおいて使用されているIPアドレスには着目していません。そんなわけで、ブロードキャストアドレス255.255.255.255が宛先、送信元IPアドレスの両方ともに使用できます。」
考え過ぎか、というか勉強不足か・・・。
Data項目の数値を増加させる
aireplay-ng
コマンドの--interactiveオプションを使うことで、Data項目のパケットを著しく増加させることができる。パケットの増加はIV数の増加につながるので、ぜひやっておきたい。
sudo aireplay-ng --interactive -r replay_dec-0523-133418.cap wlan0
//または、aireplay-ngのヘルプより、次のコマンドでもOK
sudo aireplay-ng -2 -r replay_dec-0523-133418.cap wlan0
WEPの解析
更に、新規に別の端末を立ち上げて、次のコマンドを実行する。
sudo aircrack-ng chop-01.cap
おわりに
攻撃のプロセスが複雑なので、概略図を載せる。
--interactiveオプションを使うプロセスは、必須ではないので、この図からは除外した。
参考にしたもの
「ハッキング・ラボのつくりかた」(IPSIRON著)