Что такое handshake wifi

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

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. Если вы успешно взломаете его, то вы узнаете истинный пароль от ТД к которой хочет подключиться клиент. Теперь вы можете заново поднять вашу ТД со взломанным паролем, и Клиент сможет успешной к ней подключиться. Это даст вам доступ к Клиенту из более «внутренней» сетевой позиции или позволит вам осуществить любую атаку человек-посередине. В качестве альтернативы вы можете подключиться к настоящей ТД, в случае, если вы знаете где она находится.

Чтобы увидеть Клиентов, которые не подключены ни к одной из доступных в радиусе точек доступа и которые ищут свою точку доступа:

В самом низу вы увидите не подключённых ни к кому клиентов.

Поскольку у меня виден очень большой список точек доступа, даже не умещающийся в экран, то клиентов у меня совсем не видно. Чтобы это исправить, я отфильтровываю ТД (-N nonono), а также фиксирую прослушивание одного канала (-c 6), получается следующая команда:

Не подключённые к точке доступа клиенты (помечены как (not associated)) показываются внизу списка. Клиенты, отправляющие зондирующие запросы с BSSID (колонка Probe), могут быть целью этой атаки.

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

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

Полученный файл захвата можно напрямую взламывать в программе WPA2-HalfHandshake-Crack.

Либо после конвертации его можно взломать в программе Hashcat.

Источник

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Захват рукопожатий (handshake) в Kali Linux

Что такое рукопожатие (handshake — хендшейк)

С технической точки зрения, рукопожатие в беспроводных сетях — это обмен информацией между точкой доступа и клиентом в момент подключения клиента к ней. Эта информация содержит разнообразные ключи, обмен происходит в несколько стадий. Процесс подключения к беспроводной точке доступа неплохо документирован и вы можете найти по данному вопросу много информации, в том числе и на русском языке.

С практической точки зрения нам достаточно знать всего две очень простые вещи:

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

Все беспроводные точки доступа делают это

Расшифровка пароля из рукопожатия делается методом перебора (грубой силой, брутфорсингом). Именно поэтому расшифровка пароля в захваченном рукопожатии имеет вероятностный характер. Т.е. далеко не всегда заканчивается удачно.

Если у вас мощное железо и много времени, то ваши шансы увеличиваются.

Я считаю захват рукопожатий самой перспективной методикой взлома беспроводной точки доступа. Это мнение может показаться странным при том количестве новых техник по взлому WEP, WPS и при довольном низком проценте успешных взломов рукопожатий.

Дело в том, что количество точек доступа с включёнными WEP, WPS невелико. Благодаря просветительской деятельности (в том числе урокам подобным моим) самые обычные пользователи стали больше задумываться о безопасности, вникать в суть технологий и отключать уязвимые алгоритмы и стандарты.

Ещё одно наблюдение по мере накопления опыта: даже точки с включённым WPS иногда быстрее взломать захватом рукопожатия, чем ждать завершения работы Reaver или Penetrator-WPS. Дело в том, что если пользователь не задумался об отключении WEP, WPS, т. е. проявил безалаберность, то также высока вероятность неряшливости пользователя в выборе пароля — обычно это простые слова или фразы из словаря, которые довольно легко подбираются.

Вообще, можно сказать, что, формально, захватив рукопожатие, можно практически гарантированно взломать Wi-Fi, для этого нужно:

  • мощное железо
  • достаточно много времени
  • не слишком сложный и длинный пароль

Как захватить хендшейк в Kali Linux

Алгоритм достаточно простой:

  • смотрим доступные точки доступа
  • выбираем точку доступа, запоминаем её ВSSID и номер канала
  • переходим в режим ожидания рукопожатия на заданном сигнале
  • (опционально) форсируем процесс путём применения атаки деаутентификация

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

В противном случае, у вас могут быть вопросы по изложенному здесь материалу.

Внимание: название беспроводного интерфейса у вас может быть своё. Соответственно, вам нужно подправить команды, чтобы они работали на вашем компьютере:

Переводим карту в режим монитора

Смотрим доступные для атаки точки доступа

Я выбрал сеть Mial, её ВSSID 20:25:64:16:58:8C на канале 1. Поэтому я запускаю airodump-ng на первом канале

После ключа -w идёт префикс файла cap2 (это имя без расширения). В этот файл будет записано захваченное рукопожатие.

Можно ничего не делать — достаточно просто ждать, когда кто-то подключится или переподключится естественным образом. Если вы торопитесь, то можно форсировать процесс использованием атаки деаутентификация.

Для этого мы открываем новое окно терминала и набираем там команду:

Здесь -0 означает деаутентификация, 5 означает количество отправленных пакетов, -a 20:25:64:16:58:8C это ВSSID целевой ТД, а wlan0 — сетевой интерфейс в режиме монитора.

Результат не заставил себя долго ждать:

Надпись «WPA handshake: 20:25:64:16:58:8C» говорит нам о том, что рукопожатие уже захвачено.

Убеждаемся, что это действительно так:

Плюсы использования атаки деаутентификация:

  • значительно ускоряется процесс получения рукопожатия
  • вы теряете свою невидимость.

Системы обнаружения вторжений и мониторинга в этот момент могут вас засечь. При пассивном ожидании рукопожатия вы остаётесь полностью невидимым для этих систем.

Захват рукопожатий на 5 ГГц (802.11a/h/j/n/ac)

По умолчанию, airodump-ng скачет по каналам с 1 по 14 — это каналы 2.4 ГГц (т.е. 802.11b/g/n).

Протоколы 802.11a/h/j/n/ac работают на 5 ГГц, сюда входят каналы с 34 по 180.

На самом деле, процесс захвата рукопожатий на 5 ГГц ничем особо не отличается. Просто нужно явно указать каналы.

Но прежде чем пытаться что-то захватить, давайте проверим, какие вообще частоты поддерживает ваша беспроводная карта. Поскольку если ваша карта не поддерживает 5 ГГц, то можно и не пытаться — результата не будет. Проверку можно сделать командой:

Не забывайте, что вместо wlan0 вам нужно указать имя вашего желаемого беспроводного интерфейса.

Т.е. моя беспроводная карта может работать на частоте 5 ГГц с каналами с 36 по 140. А также на частоте 2.4 ГГц с каналами с 1 по 13.

Ещё больше информации вам даст команда

Там очень много самых разнообразных сведений по вашей беспроводной карте.

Если ваша беспроводная карта поддерживает 5 ГГц, то можно продолжать. Чтобы «осмотреться» в радиовещании наберите:

Думаю, особо здесь объяснять нечего, опцию —channel мы уже использовали ранее. Можно вместо каналов указывать непосредственно частоты или диапазон частот, это делается с помощью ключа -C, например:

Ключ и опция -C 5170-5825 указывают частоты в Мегагерцах, которым соответствуют каналы с 36 по 165. Эта и предыдущая команда полностью равнозначны.

Если вам вдруг интересно, то вот номера каналов и соответствующие им частоты:

802.11b/g/n

Канал Центральная частота (ГГц)
1 2,412
2 2,417
3 2,422
4 2,427
5 2,432
6 2,437
7 2,442
8 2,447
9 2,452
10 2,457
11 2,462
12 2,467
13 2,472
14 2,484

802.11a/h/j/n/ac

Канал Частота (ГГц)
34 5,170
36 5,180
38 5,190
40 5,200
42 5,210
44 5,220
46 5,230
48 5,240
52 5,260
56 5,280
60 5,300
64 5,320
100 5,500
104 5,520
108 5,540
112 5,560
116 5,580
120 5,600
124 5,620
128 5,640
132 5,660
136 5,680
140 5,700
147 5,735
149 5,745
151 5,755
153 5,765
155 5,775
157 5,785
159 5,795
161 5,805
163 5,815
165 5,825
167 5,835
171 5,855
173 5,865
177 5,885
180 5,905

802.11y

Канал Частота
(МГц)
США
5 МГц 10 МГц 20 МГц
131 3657,5 Да Нет Нет
132 3662,5 Да Нет Нет
132 3660,0 Нет Да Нет
133 3667,5 Да Нет Нет
133 3565,0 Нет Нет Да
134 3672,5 Да Нет Нет
134 3670,0 Нет Да Нет
135 3677,5 Да Нет Нет
136 3682,5 Да Нет Нет
136 3680,0 Нет Да Нет
137 3687,5 Да Нет Нет
137 3685,0 Нет Нет Да
138 3689,5 Да Нет Нет
138 3690,0 Нет Да Нет

Вот какие результаты я собрал вокруг себя:

Кстати, обратите внимание, что каналы по какой-то непонятной причине не отобразились.

Можно указать airodump-ng прыгать по всем каналам и не беспокоиться, что мы что-то упустили в каком-то диапазоне частот:

Кстати, это помогло определить канал для ТД на 5 ГГц — канал оказался сороковым:

Захват рукопожатия в 5 ГГц ничем не отличается:

Также можно использовать атаку деаутентификация, чтобы ускорить процесс.

Если ваша беспроводная карта не поддерживает частоты на 5 ГГц, то для того, чтобы видеть сети на этих частотах и для выполнения разнообразных атак в отношении них, вам необходима Alfa AWUS051NH . Она работает на частотах 2.4 ГГц и 5 ГГц, поддерживает беспроводной стандарт N, поддерживает замену антенны, полностью совместима с Kali Linux и BlackArch, т.е. способна переходить в режим монитора и делать инъекцию фреймов.

Расшифровка рукопожатия в Kali Linux

Это отдельная наука. Расшифровка хендшейков «в лоб» может занять на порядок больше времени, чем эта же расшифровка, но с применением таких методик как: предварительный расчёт хешей, использование мощи графического процессора, использование словарей, использование масок и других приёмов, ускоряющих брутфорсинг.

Источник