что делать с хендшейком
Упражнения в прекрасном: подключаемся к домашнему Wi-Fi без пароля
Показываем, как взломать ваш роутер за 2–3 часа. Будьте бдительны!
Обложка: OlyaSnow для Skillbox Media
В многоквартирных домах теснятся не только люди, но и множество маршрутизаторов. Получить доступ к соседскому Wi-Fi проще простого — достаточно знать пароль устройства. Обычные пользователи даже не догадываются, что у них проблемы с безопасностью и их роутеры прямо сейчас атакуют главную страницу «Яндекса».
Чтобы защититься от злоумышленников, нужно думать как злоумышленник. Поэтому попробуем взломать Wi-Fi. Практиковаться будем на своём роутере — мы же против нарушения законов! Попросите домашних изменить на нём пароль и не говорить вам.
Готово? Теперь у вас есть мотивация, цель и подробная инструкция.
Редакция Skillbox Media
Пишем о событиях, явлениях и понятиях из мира дизайна и программирования, геймдева, образования и бизнеса.
Как роутер работает с запросами
Прежде чем надевать на голову чулок или балаклаву, нужно понять, как работает роутер. Для этого нужно немного вспомнить курс школьной физики. Беспроводной девайс ловит электромагнитные волны от ноутбука или смартфона, расшифровывает их, а полученные запросы отправляет в интернет через кабель.
Но чтобы обмениваться с роутером информацией, его надо как-то обнаружить — он же не кричит о себе на весь дом. Тут поможет… бекон.
Beacon frame — это пакет, который роутер рассылает, чтобы сообщить о себе. Смартфоны и другие пользовательские устройства периодически сканируют радиоканал и ловят «беконы». Они переключаются в режим монитора и выводят обнаруженные пакеты — это и есть доступные точки подключения.
После того как устройство обнаружило роутер, подключаемся. Давайте заглянем в этот процесс и познакомимся с терминами. Будем считать, что подключаемся через смартфон.
Если наш смартфон знает пароль, то передаёт его автоматически, если нет — роутер спрашивает его у нас. Во время подключения смартфон и роутер обмениваются «рукопожатием» (handshake).
Handshake — процесс знакомства клиента и сервера, во время которого устройства идентифицируют друг друга и обмениваются секретными ключами. Handshake происходит каждый раз, когда мы подключаемся к серверу.
После «рукопожатия» смартфон переключается на рабочий канал и безопасно работает с роутером.
Канал — рабочая частота, на которой устройства обмениваются данными. У роутеров обычно от 1 до 15 каналов.
Теперь устройства доверяют друг другу, а у вас есть доступ в интернет.
План атаки
Составим план взлома. Мы получим доступ к маршрутизатору в четыре шага:
Брутфорс — метод простого перебора паролей. Он примитивен и работает в лоб, поэтому и называется методом грубой силы. Это как если бы человек загадал трёхзначное число, а вы бы пытались его угадать, называя все числа от 100 до 999.
Как выбрать адаптер
Не все адаптеры годятся для нашего плана. Нам нужен такой, у которого есть режим монитора и режим инъекции. Это аппаратные методы для одновременного анализа всех точек вокруг и перехвата чужих пакетов информации. Чтобы узнать, поддерживает ли ваше устройство такие режимы, нужно определить модель чипсета. Её можно найти в интернете по модели адаптера или с помощью команд:
По названию ищем в поисковике информацию о чипсете. Нам нужно найти, поддерживает ли он monitor mode и packet injection.
Можно сразу искать чипсет на сайте, но там может не быть нужных данных.
Начинаем атаку
Нам нужно узнать, как в системе именуется наше Wi-Fi-устройство. Запускаем терминал нажатием клавиш Ctrl + Alt + T и выполняем команду iwconfig для просмотра всех беспроводных адаптеров.
В моём случае найдено два устройства: wlx1cbfce4e2375 — внешний USB-адаптер и Wlp10s0 — встроенный.Чтобы проверить, способно ли устройство участвовать в атаке, нужно узнать его название. Встроенное — Realtek Semiconductor Co., Ltd. RTL8821CE — не поддерживает режим монитора и инъекции. А внешнее Ralink Technology, Corp. MT7601U Wireless Adapter — поддерживает. Его и будем использовать.
Нам необходимо переключить адаптер в режим монитора, в котором устройство анализирует весь беспроводной трафик вокруг себя.
Используем следующие команды:
sudo airmon-ng check kill
sudo airmon-ng start wlan0
При запуске режима монитора утилита обнаружила, что моя карта заблокирована, и предложила выполнить команду для разблокировки. Выполняем команду.
sudo rfkill unblock 2
Далее она автоматически переименовала длинное и странное имя адаптера в более простое. Теперь моя сеть мониторинга называется wlan0mon.
Нужно осмотреться! Запускаем утилиту Airodump-ng и мониторим сети.
sudo airodump-ng wlan0mon
Сверху у нас подробная таблица с точками доступа, а внизу — клиенты. Наша сеть — TP-Link_77D0, из таблицы узнаём её BSSID и CH-канал.
Переключаем наш адаптер в режим работы с этой точкой. Теперь утилита анализирует трафик точки и её клиентов. Лучше открыть дополнительный терминал для этих целей.
С помощью команды переключаем адаптер на канал 1. В случае поимки handshake данные сохраняются в файл с названием mycap. Он находится в папке, в которой запущен терминал.
Можно ничего не делать и ждать, когда рыба сама клюнет. Как только захватим handshake, сообщение « fixed channel wlan0:» сменится на « WPA handshake B0:BE: 76:A9:77:D0».
Чтобы ускорить процесс, можно подкинуть «наживки». Клиенты, подключенные к точке, могут отключиться, если мы отправим им соответствующий сигнал — пакет деаутентификации. Это вынудит клиента вновь обменяться handshake с атакуемым устройством.
Пакеты деаутентификации используются для исправления ошибок, обновления ключей и так далее. Они передаются незашифрованными, поэтому утилита может их подделать. Когда целевое устройство получит пакет деаутентификации, оно вынуждено отключиться от роутера.
С помощью команды отправляем 100 пакетов всем клиентам указанной сети.
И, вуаля, мы поймали рыбку! Зашифрованный пароль теперь в файле mycap.cap. Об этом говорит надпись « WPA handshake B0:BE: 76:A9:77:D0» в левом верхнем углу.
Как расшифровать handshake
Пароль уже почти у нас. Осталось расшифровать полученный handshake. Сделать это несложно, но ресурсозатратно. Брутфорс требует больших мощностей и много времени.
Простой. Воспользоваться сайтами, которые расшифровывают данные. Их можно найти в поисковике по запросу «handshake decrypt online». У некоторых сервисов есть бесплатные тарифы, но обычно они берут небольшую сумму — выходит не дороже чашки кофе.
Сложный. Использовать специальный софт и подключать драйвера, которые будут использовать центральный процессор вместе с графическим для ускорения вычислений. Можно воспользоваться aircrack-ng — у неё есть модуль для расшифровки — или утилитой hashcat. Первая утилита содержит базовый набор функций, вторая — более серьёзный и расширенный.
Подведём итоги
Мы реализовали простую атаку на домашний роутер. Самое главное: мы научились не только взламывать чужие устройства, но и защищать свои:
Если хотите научиться защищать от хакерских атак не только домашние, но большие корпоративные сети, приходите на курс. «Специалист по кибербезопасности». Здесь студенты узнают о новых способах атак, учатся строить защиту, а лучшим мы помогаем с трудоустройством.
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:
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Взлом рукопожатий (handshake) с использованием графического процессора в Windows
Использование графического процессора (видеокарты) позволяет ускорить перебор хешей, т. е. взлом паролей происходит быстрее. Причём разница не в процентах. Скорость перебора, в зависимости от конфигурации компьютера, может возрастать на один или два порядка (в десятки и в сотни раз быстрее).
Для брутфорсинга это очень важно. Хеши считаются незвламываемыми только от того, что перебор занимает слишком много времени. А если скорость увеличить в 100 раз? Если пароль длинный и для его перебора нужно 10 миллионов лет, то тот факт, что теперь мы можем подобрать его за 1 миллион лет нам погоды не делает. Нам это неважно — всё равно не успеем.
А если скорость перебора по словарю составляет, к примеру, 10 часов. Конечно, использование словаря не гарантирует подбор пароля. Но, с другой стороны, по соотношению успех/затраченное время словари показывают намного лучший результат. Так вот, если мы эти 10 часов заменим на один час или на шесть минут — то это уже намного интереснее. Освободившееся время можно потратить на проверку по большему словарю или же на анализ других хешей.
Большинство инструментов для тестирования на проникновение (проще говоря, для взлома) написаны для Linux. Именно там вся эта каша и варится: не выходя из Linux можно осуществить процесс по захвату рукопожатия, его очистке и проверке по словарю. Но у Линукса постоянные «трения» с проприетарными драйверами для видеокарт (а они необходимы в данном случае!). Для Kali Linux написаны большие инструкции по установке этих драйверов, которые у кого-то работают, а у кого-то и нет.
На Windows проприетарные драйвера установлены (практически) всегда. С этим проблем нет. А такая программа как Hashcat (использует видеокарту для перебора паролей) является кроссплатформенной. Думаю, вы уже поняли, что мы сейчас будем делать. Мы будем взламывать рукопожатие программой Hashcat, которая работает в Windows и использует графический процессор. Благо, недавние бенчмарки показали, что разницы по скорости между Linux и Windows в данном случае нет.
Установка Hashcat в Windows
Для работы программы необходимы драйверы графических карт:
Как правило, в Windows уже установлен драйвер для видеокарты.
Распакуйте архив. Это портативная программа, другой установки она не требует.
Для запуска используйте файл hashcat64.exe или hashcat32.exe в зависимости от битности вашей системы.
Программу нужно запускать в командной строке. Для этого откройте окно командной строки (Win+X – выберите «Командная строка») и перетащите туда исполняемый файл.
Либо в открывшемся окне командой строки перейдите в требуемую папку:
И в ней запустите требуемый файл:
Подготовка рукопожатий для Hashcat в Windows
Конвертация с помощью cap2hccapx (hashcat-utils)
Чтобы программа Hashcat смогла работать с захваченным рукопожатием, его нужно конвертировать в специальный формат. Для этого применяется программа cap2hccapx, которая входит в пакет hashcat-utils.
Переходим на официальный сайт https://github.com/hashcat/hashcat-utils/releases и скачиваем архив в названии которого отсутствуют слова Source code (исходный код), поскольку нам нужны исполнимые файлы.
Распаковываем программу — она является портативной, поэтому другой установки не требует.
Открываем командную строку и переходим в каталог этой программы:
Нам нужно конвертировать файл захвата рукопожатия в формат, понятный Hashcat.
Для его конвертирования в формат .hccapx с помощью cap2hccapx ам нужно использовать следующую команду:
Например, файл с захваченным рукопожатием сохранён с именем RT-733322.cap и я хочу сохранить файл в формате Hashcat с именем RT-733322.hccapx, тогда моя команда имеет вид:
Отлично, у меня всё получилось:
Онлайн сервис по конвертации рукопожатий
Если вам не хочется возиться с cap2hccapx, то вы можете воспользоваться онлайн севрисом: https://hashcat.net/cap2hccapx/
Это не рекомендуется для «чувствительных» данных.
Использование Hashcat в Windows
Перемещаем наш новый файл RT-733322.hccapx в каталог с Hashcat. В этот же каталог я помещаю файл со словарём (newrockyou.txt) В командной строке переходим в этот каталог:
Можно запускать перебор.
Атака по словарю на рукопожатие
Здесь newrockyou.txt — имя словаря (он размещён в том же каталоге, что и запускаемая программа), -m 2500 — атака на WPA/WPA2 пароль, а RT-733322.hccapx — наш файл, который мы получили после очистки и конвертации.
Атака брутфорсом на рукопожатие
В маске могут использоваться следующие символы.
К примеру, маска, означающая восемь цифр, это ?d?d?d?d?d?d?d?d.
Тогда команда, для запуска перебора по маске, означающей восемь цеифр, команда будет выглядить так:
Маска длиной воесемь символов, в которой встречаются только цифры и маленькие буквы:
Маска длиной от восьми до десяти символов, в которой стречаются цифры, большие и маленькие буквы:
Подробную справку по другим опциями и режимам программы Hashcat вы найдёте здесь.
На протяжении всего времени работы программы перед нами будет строка запроса:
Если нажать p, то перебор остановится, если после паузы нажать r, то перебор снова возобновится. Если нажать b, то будет пропущено текущее задание и программа перейдёт к следующему. Если задание только одно, то программа закончит свою работу. q означает закончить работу и выйти из программы.
Если ввести s, то увидите текущий статус:
Пример удачного взлома:
найденным паролем от Wi-Fi является 66666666.
говорит о том, что восстановлен один пароль.