
Экспериментальный скрипт PoC для уязвимости Kr00k (CVE-2019-15126)
Этот скрипт — простой эксперимент по эксплуатации уязвимости KR00K (CVE-2019-15126), которая позволяет расшифровать некоторые данные WPA2 CCMP на уязвимых устройствах (точках доступа или клиентах). В частности, этот скрипт пытается получить расшифрованные данные пакетов WPA2 CCMP, зная:
Где:
Этот PoC работает с WPA2 AES CCMP в беспроводных сетях с частотой 2,4 ГГц. (ПРИМЕЧАНИЕ: протестировано только с моим беспроводным адаптером TPLINK TL-WN722N, но, думаю, он должен работать и с другими беспроводными адаптерами, способными отправлять пакеты).
Чтобы проверить уязвимость Kr00k, может потребоваться запускать PoC несколько раз, потому что (кажется) на уязвимых устройствах не всегда буферизуется достаточный объём данных (подсказка: попробуйте использовать потоковые приложения, видеозвонки и т.п.).
Скрипт должен запускаться привилегированным пользователем, а беспроводной интерфейс должен быть настроен в режим монитора.
Требуется установка пакетов Python "scapy" и "Cryptodome". Скрипт совместим с Python 3.
Ниже приведены некоторые примеры использования инструмента. Вы должны указать MAC-адреса точки доступа и клиента, также важно задать правильный канал Wi-Fi для WLAN WPA2 CCMP и указать идентификатор цели. Используйте опцию "--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>
Некоторые примеры ниже.
Запустите атаку Kr00k, используя интерфейс wlan0mon, против клиентского устройства (-t client), с причиной 3, задержкой 2 секунды, количеством кадров деассоциации 5, на Wi-Fi канале 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
Запустите атаку Kr00k, используя интерфейс wlan0mon, против устройства точки доступа (-t ap), с причиной по умолчанию 7, задержкой по умолчанию 4 секунды, количеством кадров деассоциации по умолчанию 1, на Wi-Fi канале 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
Эта программа является свободным программным обеспечением: вы можете распространять и/или изменять её в соответствии с условиями Стандартной общественной лицензии GNU, опубликованной Фондом свободного программного обеспечения, либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.
Эта программа распространяется в надежде, что она будет полезной, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; без даже подразумеваемой гарантии КОММЕРЧЕСКОЙ ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННОЙ ЦЕЛИ. Подробнее см. Стандартную общественную лицензию GNU.
Вы должны были получить копию Стандартной общественной лицензии GNU вместе с этой программой. Если вы её не получили, см. http://www.gnu.org/licenses/.