pmkid что это такое
Новая техника атаки WPA2, не требующая наличия клиента на AP
Участниками проекта hashcat обнаружен новый вектор атаки на беспроводной стандарт WPA2, не требующий классического перехвата «рукопожатия» между клиентом и точкой доступа. Данная уязвимость выявлена в рамках исследования потенциальных проблем безопасности нового протокола WPA3.
Основное отличие от существующих атак заключается в том, что в этой атаке захват полного 4-стороннего рукопожатия EAPOL не требуется. Новая атака выполняется в RSN IE (Robust Security Network Information Element), и для ее успешного воспроизведения достаточно одного кадра EAPOL.
В настоящее время не известно, для какого количества маршрутизаторов этот метод будет работать, — вероятнее всего, для всех существующих сетей 802.11i /p/q/r с включенными функциями роуминга, а это большинство современных маршрутизаторов.
Основные особенности новой атаки:
RSN IE — это необязательное поле, которое можно найти в рамках управления 802.11. Одной из возможностей RSN является PMKID.
PMKID вычисляется с использованием HMAC-SHA1, где ключ является PMK, а часть данных представляет собой конкатенацию фиксированной строковой метки «PMK Name», MAC-адрес точки доступа и MAC-адрес станции.
Поскольку PMK такой же, как в обычном четырехстороннем рукопожатии EAPOL, это идеальный вектор атаки. Мы получаем все необходимые данные в первом кадре EAPOL из AP.
Для атаки потребуются следующие инструменты (актуальные версии):
Запускаем hcxdumptool для «снятия» PMKID:
Об успешном завершении атаки (средняя продолжительность 10 минут) уведомит надпись FOUND PMKID:
После чего необходимо сконвертировать полученные данные:
которые после конвертации примут следующий вид:
представляющие из себя hex-значения следующих типов данных:
Далее остается «скормить» полученные результаты утилите hashcat (да, без брута пока никуда) и ждать результат:
Данная техника значительно упрощает и ускоряет атаку на большинство беспроводных устройств благодаря меньшему количеству факторов влияния.
P.S.: эта уязвимость в большей степени затрагивает домашние/SOHO-устройства, в корпоративном сегменте, как правило, используется более надежный MGT WPA2 Enterprise с RADIUS-ключами.
Центр информационной безопасности, «Инфосистемы Джет»
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Взлом Wi-Fi без пользователей в Aircrack-ng
Про взлом Wi-Fi, к которому не подключены клиенты, рассказано в предыдущей статье «Взлом Wi-Fi без пользователей». Там есть технические подробности, почему эта атака возможна. Если совсем коротко, то некоторые Точки Доступа, при ассоциации с ними, отправляют PMKID, который можно использовать для взлома пароля вместо полноценного рукопожатия. То есть мы получаем необходимые данные для взлома пароля не захватывая обычное четырёхступенчатое рукопожатие, следовательно, эта атака возможна на Точках Доступа даже без подключённых станций.
В статье на которую дана ссылка, мы использовали следующие программы:
Первые две (hcxdumptool и hcxtools) без проблем устанавливаются в Linux, а вот с hashcat могут быть трудности — для неё необходимы проприетарные драйвера, что для некоторых дистрибутивов (а также для всех виртуальных компьютеров) является проблемой.
Атака на PMKID в Aircrack-ng
В вышедшей новой версии Aircrack-ng 1.4 (от 29 сентября 2018 года) добавлена возможность взлома PMKID. Правда, в Airodump-ng не добавлено каких-либо специальных функций по захвату именно PMKID. Но, по идее, это не должно стать серьёзной проблемой, поскольку PMKID содержится в первом сообщении рукопожатия поэтому, я надеюсь, нам удастся захватить PMKID в Airodump-ng.
Взлом PMKID в Aircrack-ng
Начнём с захвата фреймов с помощью hcxdumptool. Больше подробностей в этой статье, здесь же только кратко сами команды.
Смотрим имя интерфейса и идентификаторы процессов, которые могут помещать
С помощью команды kill завершаем процессы, которые могут помешать.
Переводим интерфейс в режим монитора:
Я использую Wi-Fi интерфейс wlp0s20f0u1, а данные сохраняю в файл test.pcapng:
Получен файл test.pcapng, этот файл в формате pcapng — а aircrack-ng не понимает этот формат, поэтому конвертируем его в pcap:
Будет создан новый файл test.pcap, анализируем его с помощью aircrack-ng:
Поскольку этот файл захвачен в «шумных» условиях, то там много разных фреймов и фрагментов рукопожатий, нас интересуют сети, напротив которых есть надпись «WPA (0 handshake, with PMKID)»:
Для взлома с помощью aircrack-ng используем команду вида:
Я буду брут-форсить пароль для Wi-Fi сети Paangoon_2G, указываю её номер:
У меня крошечный тестовый словарик, поэтому я сразу взломал пароль Wi-Fi, об этом свидетельствует надпись «KEY FOUND!»:
Подробности о взломе паролей в Aircrack-ng, а также о том, как запускать атаки по маске, по словарю и в паре с различными генераторами паролей, читайте в статье «Взлом WPA/WPA2 паролей с Aircrack-ng: перебор по словарю, совместная работа с Hashcat, maskprocessor, statsprocessor, John the Ripper, Crunch, взлом в Windows».
Захват PMKID в Airodump-ng
Теперь попробуем захватить PMKID с помощью Airodump-ng. Напомню, что PMKID содержится в первом сообщении рукопожатия, это сообщение Точка Доступа отправляет в ответ на ассоциацию с ней.
Нам нужно узнать, на каком канале работает целевая ТД, а также её BSSID (MAC-адрес). Для обзора эфира мы запускаем airodump-ng:
Меня интересует беспроводная сеть Paangoon_2G, она работает на канале 9 и её MAC-адрес 40:3D:EC:C2:72:B8.
Вновь запускаем airodump-ng, с опцией —channel указываем желаемый канал, а с опцией -w указываем файл для записи захваченных радио фреймов:
Теперь нужно ассоциироваться с точкой доступа. Для этого я пробовал использовать aireplay-ng, но эта программа поддерживает ассоциацию только для WEP и не работает с WPA (ошибка Denied (code 12), wrong ESSID or WPA).
Ассоциация происходит естественным образом при попытке подключиться к этой точки доступа, то есть с другой беспроводной карты можно начать подключение к точке доступа и в этом случае действительно удаётся захватить PMKID, правда вместе с рукопожатием. Об этом говорит строка «WPA (1 handshake, with PMKID)».
Можно подключиться, например, через Network Manager или с помощью другого компьютера или телефона, пароль можно указать любой. Для подключения из командной строки, создайте конфигурационный файл (замените данные на свои):
Для подключения выполните:
Анализ полученного файла:
Для извлечения PMKID (чтобы для брутфорса не использовался хендшейк с заведомо неверным паролем), откроем этот файл в Wireshark:
Для отделения только нужных данных, используем следующий фильтр (замените 40:3D:EC:C2:72:B8 на интересующую вас точку доступа):
Загляните в первое сообщение рукопожатия и убедитесь, что там действительно присутствует PMKID:
Теперь с помощью CTRL+m выделите нужные пакеты (Beacon и Message 1):
И в меню File выберите Export Specified Packets. Введите имя файла и поставьте переключатель на Marked packets only. Если вам непонятно, как сохранять отдельные фреймы, то смотрите статью «Как извлечь рукопожатия из файла захвата с несколькими рукопожатиями», там имеются дополнительные скриншоты.
Я сохранил эти два фрейма в файл extracted.pcap, проверяю файл:
Отлично: хендшейков — 0, зато есть PMKID, об этом говорит уже знакомая нам строка «WPA (0 handshake, with PMKID)».
Можно вновь запустить тестовый взлом:
Вновь пароль успешно взломан:
Заключение
В этой статье показана принципиальная возможность aircrack-ng взламывать Wi-Fi пароль из PMKID, а также способность airodump-ng перехватывать PMKID. То есть в случае необходимости, можно обойтись без hashcat.
Возможно, показанные методы являются не самыми оптимальными, особенно на этапе захвата PMKID с помощью airodump-ng, когда нам нужно вручную подключаться к Точке Доступа с другой Wi-Fi карты, но пока ничего лучшего я не придумал. Если вы знаете другой, более простой способ спровоцировать отправку запроса ассоциации, то напишите его здесь в комментариях.
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Автоматический захват рукопожатий и PMKID от всех точек доступа
Эта инструкция посвящена программе, которая умеет собирать хэндшейки и PMKID от всех точек доступа. Программа может работать в полностью автономном режиме:
В этой же инструкции мы рассмотрим bettercap. Вторая версия программы получила очень много изменений и новых функций. Программа находится в активной разработке и постоянно получает новые возможности. Обзор основ работы с bettercap смотрите в статье «Новая версия bettercap 2.x: как установить и использовать в Kali Linux» и я настоятельно рекомендую начать знакомство с той статьи.
В статье, на которую дана ссылка, уже упоминается работа с Wi-Fi сетями, но, во-первых, с тех пор много было добавлено именно по wifi модулю, а, во-вторых, эта инструкция сфокусирована на Wi-Fi возможностях bettercap и в ней будет показано, как сделать автономную систему, которая сама будет собирать хеши для взлома Wi-Fi.
Начнём с обзора нововведений. Добавлен новая команда wifi.assoc для выполнения атаки без клиентов RSN PMKID.
Ещё добавлены параметры wifi.region и wifi.txpower. Они отвечают за регион, в котором как бы работает Wi-Fi адаптер и за его мощность. Больше подробностей вы найдёте в статье «Как увеличить мощность (TX Power) Wi-Fi карты в Kali Linux и BlackArch». Эти параметры являются важными даже не потому, что они могут что-то улучшить, а из-за того, что они могут ухудшить! Дело в том, что у меня УЖЕ настроен нужный регион и мощность увеличена до максимальной. Но программа bettercap также имеет значения по умолчанию, она сразу устанавливает регион на BO и пытается повысить мощность до 30. Для моего адаптера это не работает! То есть ДО запуска bettercap у меня Wi-Fi адаптеры работают на 30 dBm, а ПОСЛЕ запуска bettercap у меня адаптеры переключаются на 20 dBm… Вполне возможно, что у вас аналогичная ситуация, поэтому мы рассмотрим, как избежать проблем с этим.
Добавлены новые возможности парсинга WPS и команда wifi.show.wps. Кстати, в целом собираемая информация выглядит так:
Теперь модуль wifi.recon перехрватывает, парсит и сохраняет в файл полное 4 ступенчатое WPA рукопожатие автоматически.
Другие изменения менее значительны:
Атака на Wi-Fi из bettercap
Программа bettercap умеет переводить беспроводной интерфейс в режим монитора и умеет переводить его из состояния down в состояние up, но мне НЕ нравится как она это делает )))) Поэтому я буду делать это вручную.
Это необязательно, но я предпочитаю останавливать службу NetworkManager:
Смотрим имя беспроводного интерфейса:
У меня интерфейс называется wlp0s20f0u2, поэтому я перевожу его в режим монитора командами (замените в них wlp0s20f0u2 на имя вашего интерфейса):
Запускаю bettercap, указав имя своего Wi-Fi интерфейса:
Запускаю сбор данных о Wi-Fi в округе:
Данные выводятся в виде списка по мере обнаружения новых устройств:
Для вывода таблицы выполните команду:
Чтобы анализировать только определённые каналы, можно установить значение переменной wifi.recon.channel следующим образом:
Но изменения не вступят в силу сразу — нужно было их устанавливать или до запуска Wi-Fi разведки, или перезапустить модуль сбора информации:
Хотя лично у меня, установка wifi.recon.channel ни на что не влияет — карта продолжает сканировать все частоты, которые поддерживает.
Как происходил захват рукопожатий раньше? Нужно было настроить и запустить модуль сниффинга следующим образом:
Теперь этого делать НЕ нужно!
Модуль wifi сам умеет сохранять рукопожатия. По умолчанию они записываются в файл
/bettercap-wifi-handshakes.pcap. Это значение можно поменять, установив переменную wifi.handshakes.file:
Обратите внимание, что
указывает не на домашний каталог текущего пользователя, а на каталог рута, поскольку программа запускается с sudo.
Для захвата PMKID какой-то определённой точки доступа, выполните команду
где вместо BSSID укажите MAC-адрес целевой ТД.
Если нужно попытаться захватить PMKID всех ТД в пределах досягаемости, то выполните:
Аналогично с захватам полноценного четырёхэтапного рукопожатия — для атаки на целевую ТД:
Для атаки на все ТД:
Общее количество захваченных рукопожатий покажет команда:
Для более тщательного анализа рекомендуется использовать aircrack-ng:
pwnagotchi
Автор bettercap, его зовут Simone Margaritelli (evilsocket), завёл твиттер аккаунт для pwnagotchi. Устройство pwnagotchi — это ARM компьютер с батарейкой и с экранчиком на электронных чернилах, на котором установлен bettercap и кастомное ПО. Pwnagotchi умеет самостоятельно собирать PMKID и полноценные рукопожатия от Wi-Fi сетей. Если я правильно понимаю, Simone собрал пока всего два таких устройства. В реплаях к твитам народ пишет, «да, да, уже заждались». В принципе, ждать необязательно — весь функционал уже есть в самом bettercap, нужно лишь написать небольшой каплет с командами, всё это можно запустить на ноутбуке и получится pwnagotchi-годзила. Ну или тоже можете купить себе ARM плату, батарейку, экранчик и синюю изоленту.
Здорова, щеглы, сегодня своими руками мы будем делать pwnagotchi. Для этого нам понадобится создать файл pwnagotchi.cap:
Запускать надо так (вместо wlp0s20f0u2 впишите имя вашего беспроводного интерфейса):
Таким образом я погулял по округе с ноутбуком и, как меня уверяет bettercap, набрал несколько десятков рукопожатий. Но строгий aircrack-ng далеко не все из них признаёт пригодными для работы:
В этом каплете всё довольно понятно. Закомментированные строки:
не работают, вы можете их расскомментировать и, в случае необходимости, подправить под свои значения. У меня у интерфейса wlp0s20f0u2 уже настроена txpower на 30.00 dBm. Если вы тоже настроили себе повышенную мощность и после запуска bettercap мощность падает, то посмотрите исходное значение, при котором мощность нормальная:
И впишите в качестве wifi.region. Больше по теме мощности смотрите в статье «Как увеличить мощность (TX Power) Wi-Fi карты в Kali Linux и BlackArch».
устанавливает повторение цикла команд каждые 20 секунд.
А сам набор команд для цикла описан этой строкой:
То есть wifi.show — показывает обобщённую таблицу с собранной информацией. Затем запускается команда wifi.assoc all для инициации подключения ко всем ТД и сбора PMKID от всех точек доступа. Затем sleep 7 включает паузу на 7 секунд — я НЕ знаю, действительно ли необходима пауза и сколько времени для неё требуется, попробуйте потестировать разные варианты. Затем идёт команда wifi.deauth all, которая деаутентифицирует всех клиентов — на эту команду отводятся оставшиеся 13 секунд из 20 секундного цикла.
При этом сбор информации о ТД и прослушивание рукопожатий выполняются непрерывно.
Вы можете попробовать разные тайминги и выбрать то, что покажет лучшие результаты, особенно при перемещении — делитесь своими наблюдениями в комментариях! Хотя, как мне кажется, здесь всё индивидуально — зависит от плотности Wi-Fi точек доступа и скорости передвижения.
Кстати, поскольку все собранные данные дампятся в один единственный файл, вам придётся, во-первых, внимательно изучить статью «Как извлечь рукопожатия из файла захвата с несколькими рукопожатиями» и, во-вторых, извлекать нужные вам рукопожатия практически вручную, как описано в той статье.
Про взлом PMKID хеша смотрите все статьи по тегу pmkid.
На картинке AWUS1900 самого Simone Margaritelli (возможно подключена к pwnagotchi):
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Новое в атаках на беспроводные сети
За последнее время в программах, предназначенных для аудита безопасности беспроводных Wi-Fi сетей, добавлены разнообразные изменения. У этих нововведений разный уровень важности: какие-то открывают новые горизонты (такие как «безклиентские атаки» с захватом PMKID), а некоторые интересны лишь узкому кругу специалистов.
О чём-то вы уже знаете, а что-то могли и пропустить. Далее список нововведений, которые привлекли моё внимание примерно за последний год.
Атака с захватом PMKID
На мой взгляд, это очень важное открытие, позволяющее атаковать WPA/WPA2 Точки Доступа, к которым не подключено ни одного клиента.
Способ, в котором в качестве взломщика паролей используется Hashcat описан в этой статье. А в этой статье рассказано, как для брут-форса паролей использовать Aircrack-ng вместо Hashcat.
По своей «убойности» эту новую атаку можно сравнить с открытой несколько лет назад Pixie Dust.
Aircrack-ng: взлом PMKID, работа с HCCAPX, встроенный бенчмарк, поддержка сессий
За последнее время вышло несколько выпусков пакета Aircrack-ng и там много разных приятных изменений, в том числе улучшенная поддержка железа и, следовательно, ускорение брут-форса.
Взлом PMKID
Та самая безклиентская атака, о которой я говорил выше, подробности в статье.
Поддержка HCCAPX
Теперь при взломе в Aircrack-ng в качестве файлов ввода (хеша) можно использовать файлы Hashcat HCCAPX.
И ещё Aircrack-ng теперь умеет создавать файлы в формате HCCAPx — больше необязательно иметь сторонние программы для конвертации захваченного рукопожатия в хеш файл для Hashcat. Для сохранения в этом формате используйте опцию -j.
Бенчмарк скорости брут-форса
Вы можете запустить бенчмарк скорости взлома, при этом указав его продолжительность.
Пример запуска бенчмарка на 10 минут:
Кстати, если вы действительно брут-форсите на центральном процессоре, если у вас ноутбук и если ЦПУ у вас более-менее современный, то крайне рекомендуется изучить и сделать андервольтинг. Конечный результат очень много от чего зависит, но в удачных случаях прирост может быть очень значительным (результат особенно хорошо заметен на длительных дистанциях — 5-10 минут и более, когда процессор без андервольтинга начинает перегреваться и сбрасывать частоты, а процессор с андервольтингом продолжает работать на частотах более близких к максимальным). Подробности в статье «Андервольтинг в Windows и Linux центрального процессора (CPU)».
О том, как контролировать текущую частоту и температуру процессора в Linux смотрите здесь.
Поддержка сессий
Раньше если вы запускали Aircrack-ng и останавливали программу не дожидаясь окончания брут-форса, то полученный прогресс терялся и при следующем запуске нужно было начинать перебор пароля с самого начала. Теперь в Aircrack-ng есть две опции для сохранения полученного прогресса:
-N или —new-session : Создать новую сессию взлома. Она позволяет прерывать процесс взлома (брут-форс) пароля и затем вновь запускать с места остановки (используя -R или —restore-session). Файлы статуса сохраняются каждые 5 минут. Она не перезаписывает существующий файл сессии.
-R или —restore-session : Восстановить и продолжить ранее сохранённую сессию взлома. Этот параметр должен использоваться один, другие параметры не должны быть указаны при запуске aircrack-ng (вся необходимая информация присутствует в файле сессии).
Вышел mdk4
Вероятно, вы уже знакомы с программой mdk3. Вышла обновлённая версия mdk4, в которой присутствуют хорошо зарекомендовавшие себя атаки, убраны устаревшие и добавлены новые, например, на mesh сети.
Поддержка AC адаптеров для атак на Wi-Fi
Адаптеры с поддержкой стандарта AC выпускаются уже довольно давно. Но первоначально было много проблем с режимом монитора и беспроводными инъекциями. За последнее время очень много сделано для исправления и улучшения драйвера rtl8812au — теперь работает режим монитора и беспроводные инъекции. Этот драйвер используется чипсетами RTL8812AU/21AU и RTL8814AU. Подавляющее большинство выпускаемых сейчас AC Wi-Fi адаптеров сделаны на одном из этих чипсетов, поэтому благодаря работе над этим драйвером, очень многие современные Wi-Fi адаптеры могут использоваться для беспроводных атак.
В настоящее время ведётся активная работа над драйвером — не все проблемы решены. Но, по крайней мере, беспроводные карты на rtl8812au теперь могут более-менее полноценно использоваться в Linux, в том числе для захвата рукопожатий, деаутентификации и т.п.
Новые типы режимов хешей Hashcat
Теперь список типов хешей для взлома Wi-Fi выглядит так:
2500 — это хорошо известный режим взлома пароля из захваченного рукопожатия. 16800 — это сравнительно новый режим взлома Wi-Fi пароля из захваченного PMKID (подробности здесь).
Что касается двух других, то 2501 — это также взлом пароля из рукопожатия, но используются предварительно рассчитанные plainmasterkeys (мастер ключи в виде простого текста). Получается радужная таблица, но она подходит только для одной ТД, поскольку имя ТД выступает солью. Если вы знакомы с Pyrit, то этот режим аналогичен работе Pyrit. Плюс этого режима: после расчёта plainmasterkeys (долгая стадия) проверка каждого нового рукопожатия для этой же ТД занимает доли секунды. То есть если первое рукопожатие оказалось бракованным, то можно проверить несколько за очень короткое время.
И минус конкретно Hashcat — для вычисления PMK требуется сторонний инструмент — hcxkeys.
16801 — это как 2501, но только уже для 16800. То есть предварительно рассчитанные plainmasterkeys из PMKID. Достоинства и недостатки у этого метода такие же.
Атака на WPA/WPA2 Enterprise в airgeddon
В настоящее время в airgeddon идёт добавление новой атаки — WPA/WPA2 Enterprise.
Сети WPA/WPA2 Enterprise обычно используются в корпоративных средах. Они используют сервер Radius для аутентификации и в отличие от обычных сетей требуют больше элементов аутентификации, а не только пароль. Они могут требовать имя пользователя, пароль и иногда сертификат.
Пока процесс разработки не завершён — атака будет добавлена в один из последующих релизов.
Заключение
Здесь собрал самые запомнившиеся мне новшества в Wi-Fi атаках за последний год. Если я пропустил что-то интересное, то пишите в комментариях.