как расшифровать handshake kali linux
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Как извлечь рукопожатия из файла захвата с несколькими рукопожатиями
В одном файле захвата сетевых данных (формат pcap) может содержаться более чем одно рукопожатие (handshake). Такое можно происходить, например, при продолжительной работе Airodump-ng, в результате чего она может перехватить несколько рукопожатий от одной или разных точек доступа. Рукопожатия из файлов, захваченных в «шумных» условиях нуждаются в дополнительной проверке и очистке.
Т.е. это не редкая ситуация, и для проведения атаки на сети, чьи рукопожатия находятся в одном файле, может потребоваться извлечь каждое рукопожатие.
Как разделить рукопожатия по разным файлам
Важно понимать разницу между файлом, в котором просто слито несколько рукопожатий, и файлом захвата в шумной среде. Пример анализа файла первого типа (с помощью aircrack-ng):
Пример файла второго типа:
Видно, что во втором файле имеется много мусора, и во всём файле всего два пригодных для взлома рукопожатия. Среди мусора много отдельных фреймов EAPOL (составляющих хендшейка), которые непригодны для подбора пароля.
Для просмотра содержимого файла можно использовать Wireshark. После открытия файла установите фильтр:
Ручное разбитие файлов рукопожатий с помощью Wireshark
Если вы работаете с файлом из слитых рукопожатий, то с ним не должно быть особых проблем. Открываем файл в Wireshark:
Можно использовать фильтр
Но он может оказаться и не нужным, поскольку и без того имеются только нужные пакеты.
Чтобы отфильтровать пакеты для определённой точки доступа, укажите её BSSID со следующим фильтром:
Теперь с помощью CTRL+m выделите нужные пакеты:
И в меню File выберите Export Specified Packets:
Введите имя файла и поставьте переключатель на Marked packets only:
Проверяем наш файл:
Всё отлично. Можно сделать ещё одну проверку с помощью coWPAtty, запустив команду вида:
Например, в моём случае:
Фраза «Collected all necessary data to mount crack against WPA2/PSK passphrase» означает, что собраны все необходимые данные для взлома пароля.
Для вычленения рукопожатия из захвата, выполненного в шумных условиях, необходимо приложить некоторые усилия. Начинам с фильтрации (замените 84:C9:B2:52:F6:37 на BSSID интересующей вас сети):
Хендшейк подходит для взлома пароля если:
Смотрим следующий пример.
Первый набор фреймов EAPOL (выделен чёрным) – не соблюдено правило, что кроме второго должно быть третье или первое сообщение.
Второй набор (красный) – только одно сообщение.
Третий набор (жёлтый) – нет третьего или первого сообщения.
Четвёртый набор (оранжевый) – нет второго сообщения.
Пятый набор (зелёный) – подходит, поскольку имеется второе и первое сообщение. Время между сообщениями кажется приемлемым.
Выделяем и сохраняем нужные фреймы (я также выделил фрейм Beacon):
Наш файл проходит проверки:
Выделение рукопожатия с помощью tshark
tshark – это Wireshark, но без графического интерфейса. Эту программу можно также использовать для разделения большого файла захвата на отдельные рукопожатия. Для этого команда запускается следующим образом:
В ней нужно вставить свои значения для:
Пример реальной команды:
Решение ошибки Unsupported file format (not a pcap or IVs file). Read 0 packets. No networks found, exiting.
У некоторых пользователей при использовании tshark, а затем последующем открытии полученного файла в aircrack-ng возникает ошибка:
Чтобы этой ошибки не было, во время сохранения программой tshark к ней нужно указывать опцию -F pcap, которая задаёт правильный формат файла.
Скрипт для разделения рукопожатий
Для автоматизации разделения одного файла на рукопожатия, я написал скрипт. Помните, что если вы разбиваете файл полученный с помощью Besside-ng или искусственно при слиянии хендшейков, то скрипт отработает без проблем.
Если вы разделяете на отдельные хендшейки файл захвата, полученный в шумных условиях (например, во время длительной работы Airodump-ng), то скрипт будет работать так:
Т.е. вам нужно будет самостоятельно открыть файлы вывода и проверить, нет ли в них лишних данных.
Хотя aircrack-ng вроде бы правильно находит нужный хендшейк, но с cap2hccapx (из набора hashcat-utils, используется для конвертации в формат хеша Hashcat) замечены проблемы, если предварительно не почищены ненужные фреймы EAPOL от непригодных хендшейков.
Создайте файл handshakes_extractor.sh:
Пример работы программы:
Если найдено хотя бы одно рабочее рукопожатие, то в текущей директории создаётся папка вида 2018-04-13-155818, в которую в виде отдельных файлов сохраняются хендшейки для всех точек доступа.
Выводится информация об имени файла с сохранёнными фреймами, а также информация о самих сохранённых фреймах.
Когда не нужно разделять файл на отдельные рукопожатия
Вам необязательно предварительно разделять файл на отдельные хендшейки, если вы собираетесь использовать программу aircrack-ng. Для выбора цели вы можете воспользоваться опциями:
Чтобы записать хеш только для одной ТД, укажите её ESSID:
Aircrack-ng – Проводим аудит беспроводной сети, взламываем Wi-Fi
Aircrack-ng служит для обнаружения беспроводных сетей, атаки на Wi-Fi и перехвата передаваемого трафика. Часто используется для пентеста (Penetration test), то есть, для аудита безопасности беспроводной сети. Работает с технологиями WPA/WPA2-PSK. С ее помощью можно произвести брутфорс и получить пароль от сети. Что собственно мы сегодня и сделаем, будем взламывать Wi-Fi сеть. Но, есть одно, но, а именно, для возможности брутфорса нужна Wi-Fi карта с возможностью мониторинга. Об одной такой уже писалось в статье под названием “Режим мониторинга в Kali Linux для Wi-Fi адаптера TP-LINK TL-WN722N V2 / V3“. Aircrack-ng по умолчанию уже имеется в дистрибутиве Kali Linux, при необходимости, можно установить в DEB ориентированных системах командой “sudo apt install aircrack-ng”. Сам же дистрибутив Kali Linux можно скачать с официального сайта.
Словарь для брутфорса
Для успешной атаки на Wi-Fi сеть необходимо иметь не только подходящий адаптер, но и так же словари с паролями, которые можно скачать из интернета или составить самому утилитой Crunch. В Kali Linux правда уже присутствует один словарь и расположен он по адресу: /usr/share/wordlists/rockyou.txt.gz. Можно воспользоваться им, что собственно для данной статьи я и сделаю. И так, что бы воспользоваться данным словарем, сначала его надо распаковать, давайте переместим его в директорию пользователя и распакуем:
Так же выложу на всякий случай архив с паролями, в нем содержаться такие словари как:
Это на тот случай если вы сами не хотите составлять словари для брутфорса. Описывать их не стану, при желании вы сами можете найти по ним информацию в сети:
Атакуем Wi-Fi сеть
Для статьи был создан словарь с паролями под названием “key-list.txt” все той же утилитой Crunch. Да и саму атаку на Wi-Fi сеть буду производить из Parrot OS, по большому счету, разницы нет, будь то Kali или Parrot OS, это дело личных предпочтений. Просто Parrot OS мне больше симпатизирует, вот и все, вы же, можете воспользоваться любой из этих систем. И так, переходим к атаке, первым делом необходимо выяснить какие сетевые устройства у нас имеются, это можно выяснить несколькими способами, рассмотри парочку. Первый способ, это команда “ifconfig”, а вторая “ip a”, нам необходимо выяснить название нашей Wi-Fi карты:
Переводим нашу Wi-Fi карту в режим монитора командой “airmon-ng star” и вот тут нам необходимо указать название Wi-Fi карты, как помним, она у меня умеет название “wlxd03745710fa4”, у вас же оно будет иным:
Если обратите внимание, то появилась надпись, которая говорит о том, что Wi-Fi карта перешла в режим мониторинга “monitor mode enable”, а так же на сколько я помню, в Kali Linux меняется название сетевого устройства, оно приобретает приставку “mon”, то есть, будет называться как “wlan0mon”. Это новое название и надо вводить в следующей команде:
Данной командой мы запускаем сканирование сетей, когда произведем сканирование и выберем сеть, которую хотим взломать, нажимаем сочетание клавиш “ctrl + c”:
Нам нужен MAC адрес устройства, он находится в столбце “BSSID”, в столбце “PWR” указывается мощность принимаемого сигнала, чем сильней сигнал, тем лучше. В столбце “CH” указывается канал, в “ENC” указывается технология защиты WPA или WPA2, в “ESSID” – название сети. Для атаки нам понадобиться только MAC адрес и канал, все остальное по сути необязательно. Для атаки на выбранную Wi-Fi сеть вводим команду:
–bssid указываем MAC
–channel канал
-w указываем путь, куда будет записан хендшейк
wlxd03745710fa4 название Wi-Fi адаптера
После запуска команды, дожидаемся когда кто-нибудь подключиться к сети, но, можно выбрать устройство, которое уже подключено и заставить его переподключиться. Что собственно ускорит процесс получения хендшейка. Узнать какие устройства подключены можно из списка, который выводиться в самом низу:
Как видно из скриншота, у меня к сети подключено два устройства, для того что бы заставить одно из них переподключиться, копируем MAC адреса из “BSSID” и “STATION”. А затем открываем новую вкладку терминала и выполняем команду:
–deauth 20 количество пакетов Деаутентификации (повторной авторизации, если можно так выразиться)
-a MAC адрес точки доступа (BSSID)
-c MAC адрес подключенного клиента (STATION)
wlxd03745710fa4 Wi-Fi интерфейс
В это время смотрим на первый терминал, нас интересует надпись “handshake” которая появиться при удачном переподключении устройства:
Когда словили хендшейк, можно останавливать сканированию сочетанием клавиш “ctrl + x”. Теперь, если вы посмотрите в папку, которую указывали, то увидите там файлы. Нам нужен всего один, в котором и храниться тот самый хендшейк, данный файл будет иметь расширение “.cap”:
Теперь необходимо очистить этот файл от мусора, который в нем имеется, так как в нем имеются все пакеты, которые собрались за все время что производилась атака. Очистить данный файл можно командой “- wpaclean”, затем указываем название нового файла хендшейка, и указываем старое название хендшейка. К примеру, старый файл имеет название “wifihand-01.cap”, а новый назовем “wifihand-01_new.cap”, ну и конечно не забываем указать путь к этим файлам:
Расшифровываем Handshake
И при удачном сочетании обстоятельств, мы получим долгожданный пароль от точки доступа, или, от сети Wi-Fi которую атаковали. Пароль будет в строке “KEY FOUND!”:
Для более удачной работы с Aircrack-ng и брутфорсом в целом лучше иметь несколько словарей, так как не известно какой пароль будет задан хозяином сети. Для этого можно воспользоваться например социальной инженерией, а на основе полученных знаний, уже составить словари. Но, это совсем иная тема, и она явно выходит за рамки данной статьи.
Заключение
Даже если вы не занимаетесь аудитом безопасности, и не помышляете об этом, вам все же стоит проверить свою сеть на устойчивость от взлома. Почему? Все просто, никто не застрахован от проникновения и взлома, а ваша Wi-Fi сеть может стать точкой выхода в сеть для злоумышленника. И кто знает, что он там будет делать через ваш Wi-Fi. Данная инструкция приведена лишь для ознакомления, помните, что подобные действия могут повлечь за собой уголовную ответственность, в случае применения этих знаний во вред. Применяйте полученные знания лишь для защиты собственной Wi-Fi сети.
Как-нибудь в одной из следующих статей напишу еще об одном инструменте для атаки на беспроводную сеть, и в отличие от Aircrack-ng, она более автоматизирована. Но, об этом как нибудь в следующий раз.
А на этом сегодня все. Надеюсь данная статья будет вам полезна.
Журнал Cyber-X
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Захват рукопожатий (handshake) в Kali Linux
Что такое рукопожатие (handshake — хендшейк)
С технической точки зрения, рукопожатие в беспроводных сетях — это обмен информацией между точкой доступа и клиентом в момент подключения клиента к ней. Эта информация содержит разнообразные ключи, обмен происходит в несколько стадий. Процесс подключения к беспроводной точке доступа неплохо документирован и вы можете найти по данному вопросу много информации, в том числе и на русском языке.
С практической точки зрения нам достаточно знать всего две очень простые вещи:
Все беспроводные точки доступа делают это
Расшифровка пароля из рукопожатия делается методом перебора (грубой силой, брутфорсингом). Именно поэтому расшифровка пароля в захваченном рукопожатии имеет вероятностный характер. Т.е. далеко не всегда заканчивается удачно.
Если у вас мощное железо и много времени, то ваши шансы увеличиваются.
Я считаю захват рукопожатий самой перспективной методикой взлома беспроводной точки доступа. Это мнение может показаться странным при том количестве новых техник по взлому WEP, WPS и при довольном низком проценте успешных взломов рукопожатий.
Дело в том, что количество точек доступа с включёнными WEP, WPS невелико. Благодаря просветительской деятельности (в том числе урокам подобным моим) самые обычные пользователи стали больше задумываться о безопасности, вникать в суть технологий и отключать уязвимые алгоритмы и стандарты.
Ещё одно наблюдение по мере накопления опыта: даже точки с включённым WPS иногда быстрее взломать захватом рукопожатия, чем ждать завершения работы Reaver или Penetrator-WPS. Дело в том, что если пользователь не задумался об отключении WEP, WPS, т. е. проявил безалаберность, то также высока вероятность неряшливости пользователя в выборе пароля — обычно это простые слова или фразы из словаря, которые довольно легко подбираются.
Вообще, можно сказать, что, формально, захватив рукопожатие, можно практически гарантированно взломать Wi-Fi, для этого нужно:
Как захватить хендшейк в Kali Linux
Алгоритм достаточно простой:
Предполагается, что вы уже знакомы со статьями
В противном случае, у вас могут быть вопросы по изложенному здесь материалу.
Внимание: название беспроводного интерфейса у вас может быть своё. Соответственно, вам нужно подправить команды, чтобы они работали на вашем компьютере:
Переводим карту в режим монитора
Смотрим доступные для атаки точки доступа
Я выбрал сеть 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 ГГц ничем не отличается:
Также можно использовать атаку деаутентификация, чтобы ускорить процесс.
Расшифровка рукопожатия в Kali Linux
Это отдельная наука. Расшифровка хендшейков «в лоб» может занять на порядок больше времени, чем эта же расшифровка, но с применением таких методик как: предварительный расчёт хешей, использование мощи графического процессора, использование словарей, использование масок и других приёмов, ускоряющих брутфорсинг.