
Kr00k脆弱性(CVE-2019-15126)の実験的PoCスクリプト
このスクリプトは、KR00K脆弱性(CVE-2019-15126)を悪用する簡単な実験であり、脆弱なデバイス(アクセスポイントまたはクライアント)の一部のWPA2 CCMPデータを復号できるようにします。 より具体的には、このスクリプトはWPA2 CCMPパケットの復号データを取得しようとします。ただし、以下の情報が必要です。
ここで:
このPoCは、周波数2.4GHzのWPA2 AES CCMP WLANで動作します。(注:自分のワイヤレスアダプタTP-LINK TL-WN722Nでのみテストしましたが、パケットインジェクションが可能な他のワイヤレスアダプタでも動作すると思います。)
Kr00k脆弱性を確認するには、PoCを複数回起動する必要がある場合があります。なぜなら、脆弱なデバイスに十分な量のデータが常にバッファリングされるわけではないからです(ヒント:ストリーミングアプリやビデオ通話などを使用してみてください)。
このスクリプトは特権ユーザーで実行し、ワイヤレスインターフェースをモニターモードに設定する必要があります。
Pythonパッケージの「scapy」と「Cryptodome」のインストールが必要です。 このスクリプトはPython 3と互換性があります。
以下にツールの使用例をいくつか示します。APとクライアントのMACアドレスを入力する必要があります。また、WPA2 CCMP WLANの正しいWiFiチャンネルを設定し、ターゲット識別子を指定することが重要です。より詳細なリストについては、「--help」オプションを使用してください。
# python3 kr00ker.py -i <interface-name> -b <BSSID> -c <MAC-client> -n <num-packets> -r <reason-id> -t <target-id> -w <wifi-channel> -d <delay>
以下にいくつかの例を示します。
インターフェースwlan0monを使用して、クライアント(-t client)デバイスに対してKr00k攻撃を実行します。理由3、遅延2秒、切断フレーム数5、WiFiチャンネル2:
# python3 kr00ker.py -i wlan0mon -b XX:XX:XX:XX:XX:XX -c ZZ:ZZ:ZZ:ZZ:ZZ:ZZ -n 5 -r 3 -t client -w 2 -d 2
インターフェースwlan0monを使用して、アクセスポイント(-t ap)デバイスに対してKr00k攻撃を実行します。デフォルトの理由7、デフォルトの遅延4秒、デフォルトの切断フレーム数1、WiFiチャンネル11:
$ sudo python3 kr00ker.py -i wlan0mon -b XX:XX:XX:XX:XX:XX -c ZZ:ZZ:ZZ:ZZ:ZZ:ZZ -t ap -w 11
ターゲットデバイスでKr00k脆弱性がトリガーされると、復号されたデータのhexdumpが出力に表示され、このデータはpcapファイルにも保存されます。
以下は、KR00K脆弱性を持つデバイスの出力例です:

kr00kerはMaurizio Sidduによって開発されました。
Copyright (c) 2020 kr00ker
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/