Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
krackattacks-scripts — Скрипты для проверки клиентов и точек доступа WPA2 на уязвимости повторной установки ключей KRACK с использованием модифицированного hostapd и повторной передачи кадров в режиме монитора. | Kitploit
Инструменты/GitHubGitHub/vanhoefm/krackattacks-scripts
Аудит Wi-FiАнализ уязвимостейБезопасность беспроводных сетейТестирование на ПроникновениеТоп в Аудит Wi-Fi №10Топ в Безопасность беспроводных сетей №10

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
GitHub
vanhoefm/krackattacks-scripts

krackattacks-scripts

Скрипты для проверки клиентов и точек доступа WPA2 на уязвимости повторной установки ключей KRACK с использованием модифицированного hostapd и повторной передачи кадров в режиме монитора.

Репозиторий
3.5k766661 год назадПроверено Kitploit

This project contains scripts to test if clients or access points (APs) are affected by the KRACK attack against WPA2. For details behind this attack see our website and the research paper.

Помните, что наши скрипты — это не скрипты для атаки! Вам понадобятся соответствующие сетевые учётные данные, чтобы проверить, подвержена ли точка доступа или клиент атаке KRACK.

Декабрь 2024: исправлена ошибка в 7-м тесте ./krack-test-client.py --gtkinit. До этого исправления упоминалось, что (результат) этого теста был ненадёжным, но теперь результату можно доверять при соблюдении новых инструкций. То есть, если теперь этот тест указывает, что устройство уязвимо, оно, скорее всего, действительно уязвимо.

Январь 2021: скрипты были адаптированы для Python3 и обновлены для лучшей поддержки новых дистрибутивов Linux. Если вы хотите вернуться к старой версии, выполните git fetch --tags && git checkout v1 после клонирования репозитория (а вернуться к последней версии можно с помощью git checkout research).

Предварительные требования

Наши скрипты тестировались на Kali Linux. Чтобы установить необходимые зависимости на Kali, выполните:

sudo apt update
sudo apt install libnl-3-dev libnl-genl-3-dev pkg-config libssl-dev net-tools git sysfsutils python3-venv iw

Теперь скомпилируйте наш модифицированный экземпляр hostapd и создайте виртуальное окружение python. Это гарантирует использование совместимых библиотек python (перечисленных в krackattack/requirements.txt):

git clone https://github.com/vanhoefm/krackattacks-scripts.git
cd krackattacks-scripts/krackattack
./build.sh
./pysetup.sh

Затем отключите аппаратное шифрование для достижения оптимальных результатов:

cd krackattack
sudo ./disable-hwcrypto.sh

Обратите внимание: при необходимости вы можете позже снова включить аппаратное шифрование с помощью скрипта sudo ./reenable-hwcrypto.sh. Рекомендуется перезагрузить систему после отключения аппаратного шифрования. Мы тестировали наши скрипты с Intel Dual Band Wireless-AC 7260 и TP-Link TL-WN722N v1 на Kali Linux.

Перед каждым использованием

Перед каждым использованием скриптов необходимо отключить Wi-Fi в вашем сетевом менеджере. Затем выполните:

sudo rfkill unblock wifi
cd krackattack
sudo su
source venv/bin/activate

После этого вы можете выполнять скрипты несколько раз, пока не закрываете терминал.

Если вы хотите отменить действие disable-hwcrypto.sh, удалите файл /etc/modprobe.d/nohwcrypt.conf.

Тестирование клиентов

Сначала измените hostapd/hostapd.conf и отредактируйте строку interface=, чтобы указать Wi-Fi интерфейс, который будет использоваться для выполнения тестов. Обратите внимание, что во всех тестах, после запуска скрипта, вы должны позволить тестируемому устройству подключиться к SSID testnetwork с паролем abcdefgh. Вы можете изменить настройки точки доступа, изменив hostapd/hostapd.conf. Во всех тестах клиент должен использовать DHCP для получения IP после подключения к Wi-Fi сети. Это связано с тем, что некоторые тесты запускаются только после того, как клиент запросил IP-адрес по DHCP!

Выполните следующие тесты, расположенные в каталоге krackattacks/:

  1. ./krack-test-client.py --replay-broadcast. Этот тест проверяет, принимает ли клиент повторно переданные широковещательные кадры. Если клиент принимает повторно переданные широковещательные кадры, это сначала должно быть исправлено. Если вы не исправите клиент, наш скрипт не сможет определить, выполняется ли повторная установка группового ключа (поскольку тогда скрипт всегда будет сообщать, что групповой ключ переустанавливается).

  2. ./krack-test-client.py --group --gtkinit. Этот тест проверяет, устанавливает ли клиент групповой ключ в групповом квитировании с заданным счётчиком принимаемой последовательности (RSC). Подробности об этой уязвимости см. в разделе 6.4 нашей последующей исследовательской работы.

  3. ./krack-test-client.py --group. Этот тест проверяет, переустанавливает ли клиент групповой ключ в групповом квитировании. Другими словами, он проверяет, уязвим ли клиент к CVE-2017-13080. Скрипт проверяет повторную установку группового ключа, отправляя клиенту широковещательные ARP-запросы с уже использованным (повторно переданным) номером пакета (здесь номер пакета = nonce = IV). Обратите внимание: если клиент всегда принимает повторно переданные широковещательные кадры (см. --replay-broadcast), этот тест может ошибочно заключить, что групповой ключ переустанавливается.

  4. ./krack-test-client.py. Этот тест проверяет повторную установку ключей в 4-стороннем квитировании, многократно отправляя клиенту зашифрованные сообщения 3. Другими словами, он проверяет CVE-2017-13077 (уязвимость с наибольшим воздействием) и CVE-2017-13078. Скрипт отслеживает трафик, отправляемый клиентом, чтобы увидеть, переустанавливается ли парный ключ. Обратите внимание, что фактически выполняются два теста: переустанавливается ли парный ключ и переустанавливается ли групповой ключ. Убедитесь, что клиент запрашивает IP-адрес по DHCP, чтобы начался тест на повторную установку группового ключа. Чтобы гарантировать, что клиент отправляет достаточно одноадресных кадров, вы можете дополнительно выполнить ping точки доступа: ping 192.168.100.254.

  5. ./krack-test-client.py --tptk. Идентичен тесту 4, за исключением того, что перед отправкой зашифрованного сообщения 3 внедряется поддельное сообщение 1. Этот вариант теста важен, потому что некоторые клиенты (например, wpa_supplicant v2.6) уязвимы к повторной установке парного ключа в 4-стороннем квитировании только при внедрении поддельного сообщения 1 перед отправкой повторно переданного сообщения 3.

  6. ./krack-test-client.py --tptk-rand. То же, что и предыдущий тест, за исключением того, что поддельное сообщение 1 содержит случайный ANonce.

  7. ./krack-test-client.py --gtkinit. Этот тест проверяет, устанавливает ли клиент групповой ключ в 4-стороннем квитировании с заданным счётчиком принимаемой последовательности (RSC). Это делается путём повторной передачи Msg3/4 4-стороннего квитирования, каждый раз с новым групповым ключом и очень высоким счётчиком повтора. Мы знаем, что клиент уязвим, если после этого он принимает широковещательные кадры с более низким счётчиком повтора. К сожалению, некоторые клиенты вообще не принимают повторно переданные Msg3/4, и таких клиентов нельзя протестировать этой командой. Клиенты, которые принимают повторно переданные Msg3/4 и, следовательно, могут быть протестированы этой командой, ответят Msg4/4, который можно обнаружить по следующему выводу:

    [09:24:11] 02:20:2a:22:a8:30: received a new message 4
    

Мы также рекомендуем выполнять этот тест в среде с небольшим фоновым шумом и повторять его несколько раз.

Некоторые дополнительные замечания:

  • Самый важный тест — ./krack-test-client, который проверяет обычную повторную установку ключей в 4-стороннем квитировании.

  • Выполняйте эти тесты в помещении с небольшими помехами. Большой процент потери пакетов сделает этот скрипт менее надёжным!

  • При желании вы можете вручную проверить сетевой трафик, чтобы подтвердить результат работы скрипта (некоторые Wi-Fi адаптеры могут мешать работе наших скриптов):

    • Используйте дополнительный Wi-Fi адаптер в режиме монитора, чтобы убедиться, что наш скрипт (точка доступа) отправляет кадры с правильными номерами пакетов (IV). В частности, проверьте, действительно ли повторно переданные широковещательные кадры отправляются с уже использованным номером пакета (IV).

    • Используйте дополнительный Wi-Fi адаптер в режиме монитора для проверки повторной установки парного ключа, отслеживая IV кадров, отправляемых клиентом.

    • Захватывайте трафик на клиенте, чтобы увидеть, принимаются ли повторно переданные широковещательные ARP-запросы.

Скачать инструмент