WPA2 Half Handshake (половина рукостискання): програми для злому Wi-Fi пароля і сценарії атак

Кожне підключення Клієнта (Станції) до Wi-Fi точки доступу - це досить складний процес обміну випадковими даними (згенерували для конкретного даного підключення) і ключами. Цей набір переданих даних називають WPA рукостисканням (handshake). У ньому виділяють чотири елементи, які різні автори називають повідомленнями (messages), обмінами (exchanges) або пакетами. Також повідомлення 1 прийнято позначати M1, повідомлення 2 - M2, повідомлення 3 - M3 і повідомлення 4 - M4.

Пароль від Wi-Fi не передається у відкритому вигляді ні на якому етапі, проте, рукостискання містить достатньо інформації для підбору пароля перебором. Як вже було сказано, в рукостисканні має бути чотири елементи. Подивитися склад рукостискання можна різними програмами, наприклад, за допомогою Wireshark , Для цього в програмі є фільтр «eapol»:

Як можна побачити на скріншоті, захоплене рукостискання містить всі чотири елементи. Рукостискання можуть містити не всі елементи. Наприклад, ці рукостискання містять тільки перший і другий елементи:

А це тільки другий і третій:

А це тільки другий і третій:

Насправді, для злому Wi-Fi пароля не потрібні всі чотири елементи. Злом WPA пароля можливий навіть якщо деякі повідомлення в рукостисканні відсутні. І тим не менше, повний хендшейк найбільш прийнятний: він дозволяє перевірити пароль двома різними способами, він гарантує, що намагається підключитися клієнт ввів вірний пароль.

Є дві можливих комбінації повідомлень, переданих в процесі рукостискання, які можуть використовуватися для злому аутентифікації.

Найважливішим повідомленням з чотирьох є друге (M2). Воно завжди необхідно. Крім нього, в доповненні для отримання інформації про beacon requests / responses (маячки запитів / відповідей), які дають нам ім'я мережі (відоме як ESSID) і MAC адреса точки доступу (відомий як BSSID) нам потрібно як мінімум одне з таких повідомлень:

  • Перше (M1): пакет від точки доступу (AP) до клієнта (STA), який ініціює запит з'єднання
  • Третє (M3): пакет від точки доступу (AP) до клієнта (STA), який є відповіддю на повідомлення 2 (M2).

Якщо був захоплений третій пакет обміну (M3) - це є доказом, що пароль був правильним і, отже, рукостискання для нас може бути зазначено як верифікувати (його ще називають "authenticated" - аутентифицирующей рукостискання).

З іншого боку, якщо ми володіємо тільки першим і другим, ми не можемо з упевненістю сказати, чи було встановлено з'єднання, ми навіть не можемо сказати, чи був пароль правильним. Проте, у таких половинчастих рукостискань є своє застосування. Наприклад, якщо ви бачите, що Клієнт відсилає зондувальні запити (probe) в пошуках своєї ТД, то це зазвичай показує ESSID, тобто дозволяє нам дізнатися ім'я мережі, до якої хоче підключитися Клієнт. Будучи атакуючим, ви тепер можете налаштувати ТД з точно таким же ESSID. Якщо Клієнт не перевіряє MAC адресу (більшість не перевіряють), він спробує підключитися до вашої ТД. Звичайно з'єднання завершитися невдачею, оскільки ваша ТД не використовує той же пароль, який використовує Клієнт. Проте, Клієнт використовуватиме коректний пароль. В результаті вийде так зване «неаутентіфіцірующее» рукостискання. Тобто рукостискання містить M1 і M2. Якщо ви успішно зламали його, то ви дізнаєтеся істинний пароль від ТД до якої хоче підключитися клієнт. Тепер ви можете заново підняти вашу ТД зі зламаним паролем, і Клієнт зможе успішної до неї підключитися. Це дасть вам доступ до Клієнта з більш «внутрішньої» мережевий позиції або дозволить вам здійснити будь-яку атаку людина-посередині. В якості альтернативи ви можете підключитися до цієї ТД, в разі, якщо ви знаєте де вона знаходиться.

Щоб побачити Клієнтів, які не підключені до жодної з доступних в радіусі точок доступу і які шукають свою точку доступу:

sudo systemctl stop NetworkManager sudo airmon-ng check kill sudo airmon-ng start wlan0 sudo airodump-ng wlan0mon

У самому низу ви побачите не підключених ні до кого клієнтів.

Оскільки у мене видно дуже великий список точок доступу, навіть не уміщається в екран, то клієнтів у мене зовсім не видно. Щоб це виправити, я відфільтровує ТД (-N nonono), а також фіксую прослуховування одного каналу (-c 6), виходить наступна команда:

sudo airodump-ng -N nonono -c 6 wlan0mon

Чи не підключені до точки доступу клієнти (позначені як (not associated)) показуються внизу списку. Клієнти, які надсилають зондувальні запити з BSSID (колонка Probe), можуть бути метою цієї атаки.

Підніміть WPA2 Wi-Fi мережу з точно таким же SSID (ім'ям), як і точка доступу, яку шукає Клієнт. Це можна зробити різними способами. Одним з найпростіших є використання create_ap . Ваша точка доступу обов'язково повинна бути з паролем (інакше атака не вийде), пароль можете вибрати будь-яким.

Вам потрібно захопити трафік на бездротовому мережному інтерфейсі. У Linux це можна зробити з TCPdump:

sudo tcpdump -i wlan0 -s 65535 -w file.cap

Отриманий файл захоплення можна безпосередньо зламувати в програмі WPA2-HalfHandshake-Crack .

або після конвертації його можна зламати в програмі Hashcat .

Дополнительная информация

rss
Карта