Меню

Настройка wireshark для перехвата wifi

HackWare.ru

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

Как в Wireshark расшифровать Wi-Fi трафик

Расшифровка WPA трафика в Wireshark

Начнём с теории, чтобы понять, почему процесс расшифровки Wi-Fi трафика в Wireshark требует некоторых усилий и почему нельзя просто расшифровать любой захваченный Wi-Fi трафик даже если есть пароль от Точки Доступа.

При передаче по Wi-Fi трафик шифруется с использованием PTK (Pairwise transient key — можно перевести как Парный переходной ключ). При этом PTK является динамичным, то есть создаётся заново для каждого нового соединения. Таким образом получается, что Wi-Fi трафик для каждого соединения в одной и той же Точке Доступа зашифрован разными PTK, причём даже для одного Клиента после переподключения PTK меняется. Для вычисления PTK необходимы данные из четырёх этапного рукопожатия, а также пароль от Wi-Fi сети (на самом деле нужна ещё и другая информация, например имя (SSID) сети, но получение этих данных не является проблемой).

Главное, что нужно понять: для расшифровки Wi-Fi трафика необходимо четырёх этапное рукопожатие. Причём не любое, а именно то, которое произошло для передачи того трафика, который нужно расшифровать. Но для использования захваченного рукопожатия необходим пароль от Wi-Fi сети.

Итак, чтобы расшифровать Wi-Fi трафик нужны:

1) рукопожатие, произошедшее между Клиентом и Точкой доступа непосредственно перед обменом расшифровываемой информацией

2) пароль для подключения к Точке Доступа

Далее будет показано два примера захвата Wi-Fi трафика и его расшифровки. Первый захват данных выполнен с помощью Airodump-ng, а затем беспроводной трафик будет расшифрован в Wireshark. Во втором примере данные будут захвачены и расшифрованы с использованием только Wireshark.

Захват Wi-Fi трафика в Airodump-ng

Чтобы данные были пригодны для расшифровки, нужно чтобы Wi-Fi карта не переключала каналы, а выполняла захват информации на одном канале, на котором работает целевая Точка Доступа. Поэтому начнём со сбора информации о целевой точки доступа.

Смотрим имена беспроводных интерфейсов:

Переводим ИНТЕРФЕЙС в режим монитора командами вида:

Запускаем airodump-ng командой вида:

Например, я хочу захватить и расшифровать трафик для Точки Доступа Paangoon_2G, которая работает на 9 канале.

Тогда мне нужно перезапустить airodump-ng командой вида:

Надпись WPA handshake говорит о том, что было захвачено четырёх этапное рукопожатие. Это означает что:

Расшифровка Wi-Fi трафика в Wireshark

Открываем файл захвата в Wireshark. В исходном виде трафик выглядит примерно так:

То есть без расшифровки мы видим только MAC-адреса участников передачи данных, пакеты некоторых видов, а также пакеты с данными — полезная нагрузка в которых зашифрована.

Перед расшифровкой убедимся, что имеется хендшейк, иначе продолжать нет смысла:

Перед расшифровкой нам нужно сделать некоторые изменения в настройках протокола IEEE 802.11.

Перейдите в EditPreferences, раскройте секцию protocol и выберите IEEE 802.11. Настройки должны быть такими:

Когда у вас будут такие же настройки, как и на предыдущем скриншоте, нажмите на кнопку Edit рядом с надписью Decryption Keys (для добавления WEP/WPA ключа):

Нажмите кнопку Создать. В открывшемся окне в поле Key type выберите wpa-pwd, введите пароль от Wi-Fi сети, а через двоеточие имя (SSID) сети и нажмите ОК.

Например, в моём случае пароль 00001777, а имя сети Paangoon_2G, тогда я ввожу:

Нажмите кнопку Применить:

Трафик будет расшифрован:

Теперь там видны DNS, HTTP запросы и ответы, а также другие сетевые пакеты.

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

Захват Wi-Fi в Wireshark

Трафик Wi-Fi можно захватить непосредственно в Wireshark. Но нам предварительно нужно переключить Wi-Fi карту на тот же канал, на котором работает целевая Точка Доступа. Это делается командами вида:

В этих командах нужно слова ИНТЕРФЕЙС и КАНАЛ заменить на действительные данные.

Когда интерфейс переключён на нужный канал, в Wireshark найдите этот интерфейс, в его свойствах поставьте галочку Capture packets in monitor mode. Затем начните захват данных:

Последующая расшифровка выполняется точно таким же образом, как показано выше.

Заключение

Для расшифровки WEP Wi-Fi трафика достаточно знать только пароль. Но ТД с WEP уже практически не встречаются.

Источник

HackWare.ru

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

Взлом Wi-Fi без пользователей в Windows (с использованием Wireshark и Npcap для захвата PMKID)

Npcap — это WinPcap для Windows 10

Npcap — это проект от программистов Nmap, это библиотека предназначенная для сниффинга (и отправки) пакетов, создана для работы в Windows. Она основывается на библиотеках WinPcap/Libpcap, но у неё улучшена скорость, портативность и безопасность. По своей сути, Npcap — это новая версия WinPcap, с новыми функциями и поддержкой современных версий Windows 10.

Классический WinPcap умеет захватывать сырые фреймы 802.11, но поддерживает только одно аппаратное решение — AirPcap. Npcap также умеет захватывать сырые фреймы 802.11, но поддерживает различные беспроводные карты.

Также в комплекте с Npcap идут сопутствующие утилиты, умеющие переводить беспроводные карты в режим монитора в Windows (если драйвер это поддерживает).

Режим монитора в Windows

Как и в Linux, в Windows можно переводить многие беспроводные карты, которые поддерживают режим монитора в Linux, в Monitor Mode. Например, это работает для многих Alfa. Но имеется сразу несколько проблем:

Тем не менее имеется более или менее рабочая связка, а именно: Wireshark умеет через Npcap переводить беспроводные интерфейсы в режим монитора и захватывать сырые фреймы Wi-Fi сетей (по крайней мере в официальной документации Npcap так написано). Опять же, невозможно делать беспроводные инъекции, но… В атаках без клиентов (подробности здесь и здесь) нам и не нужно делать беспроводные инъекции, для захвата PMKID нужен режим монитора, а также второй беспроводной интерфейс, с которого будет делаться обычная попытка подключения (с любым паролем).

Читайте также:  Настройка реалтек для виндовс 7 видео

Как установить Npcap для захвата сырых Wi-Fi фреймов

Итак, нам нужен сам Npcap. Скачать его можно здесь (это официальный сайт).

Обратите внимание, что Npcap и WinPcap не должны быть одновременно установлены. Поэтому если у вас уже есть WinPcap, предварительно удалите его. Npcap полностью заменяет WinPcap и имеет дополнительные возможности. Если вы удалите WinPcap во время установки Npcap, то когда появится запрос, перезагрузить ли компьютер сейчас, выберите ручную перезагрузку, чтобы завершить установку Npcap.

Хотя это нигде не написано, но для Npcap, видимо, нужен Microsoft Visual C++ Redistributable 2013.

При установке Npcap, выберите опции:

Нам также нужна программа Wireshark, которую можно скачать здесь. Если Npcap установлен правильно, то опция с предложением установить WinPcap должна быть неактивной:

Для работы с беспроводными картами в режиме монитора, Npcap использует интерфейс «Native 802.11 WLAN», который является устаревшим в Windows 10. И хотя есть подтверждения, что в Windows 10 ещё можно использовать Native 802.11 WLAN, лично у меня что-то не заладилось. Поэтому можете попробовать всё это установить в Windows 8. Я сам попробовал — установил Windows 8 в виртуальную машину, но у меня всё равно не получилось.

Также вам могут понадобиться драйверы для вашей беспроводной карты, например, для Alfa я скачивал драйверы здесь: alfa.com.tw/files/?dir=%5B1%5D%20WiFi%20USB%20adapter

Примеры адаптеров протестированных авторами программы: https://secwiki.org/w/Npcap/WiFi_adapters

Как захватить PMKID в Windows

Подключите ваш Wi-Fi адаптер.

Запустите от администратора Wireshark:

Теперь найдите меню Capture и выберите там Options:

Если ваша карта поддерживает режим монитора и если до этого вы установили всё правильно, то у вас в столбце Monitor Mode напротив беспроводных интерфейсов должен стоять чекбокс.

У меня для моих карт он есть (как вы можете увидеть на скриншоте), но как только я ставлю галочку, она исчезает. Я перепробовал три Wi-Fi адаптера с разными чипсетами, пробовал виртуальные машины, пробовал на реальном компьютере, даже специально установил Windows 8 и попробовал там. Результат всегда один и тот же — галочка сразу пропадает. Можно начать сомневаться, работает ли это вообще, но здесь авторы очень уверенно пишут что работает.

Поэтому будем исходить из того, что у вас также это сработало.

Чтобы точка доступа отправила первое сообщение рукопожатия с PMKID, необходимо подключиться к ней с другого беспроводного интерфейса — пароль можно выбрать любой, поскольку пароль не влияет на первое сообщение рукопожатия.

После того, как будут захвачены данные, отфильтровать нужный фрейм можно прямо в Wireshark, для этого используйте фильтр (подробности по работе с беспроводными фреймами смотрите в статье «Как извлечь рукопожатия из файла захвата с несколькими рукопожатиями»):

После извлечения PMKID, его можно начать брут-форсить прямо в Windows, в Aircrack-ng (как показано здесь) или в Hashcat (как показано здесь).

Как перевести Wi-Fi адаптер в режим монитора в Windows

Если у вас тоже возникли проблемы с захватом сырых Wi-Fi фреймов, то в качестве утешительного приза, можете перевести свою Alfa в режим монитора в Windows — с этим никаких проблем нет. Проблема в том, что какое-либо применение этого режима монитора отсутствует полностью: Airodump-ng эти интерфейсы не понимает. И даже Wireshark, которая вроде как работает с Npcap, не понимает этот режим монитора — нужно, чтобы она сама перевела карту в режим монитора.

Поэтому, для тех, у кого как у меня ничего не получилось, этот режим монитора достаётся в качестве утешительного (и бесполезного) приза.

Чтобы его включить, откройте командную строку от администратора и перейдите в папку C:\Windows\System32\Npcap\:

Посмотрите имена беспроводных интерфейсов:

Мой интерфейс я переименовал в awus052nh, по умолчанию он может называться «Беспроводная сеть» или как-то похоже. Как написано в справке, программа WlanHelper.exe должна понимать и Имя интерфейса и Идентификатор GUID, который показан на пару строк пониже. Но у меня WlanHelper.exe категорически не принимает Имя интерфейса, появляется ошибка

Хотя работа Идентификатором GUID протекает нормально.

Поэтому в последующих командах вместо имени я буду использовать именно Идентификатор GUID (замените его на свой).

Чтобы просмотреть текущий режим монитора введите:

Чтобы перевести в режим монитора:

Настолько же просто, насколько и бесполезно…

Заключение

Как я уже сказал, у меня не получилось захватить PMKID. Если у кого-то получится по этой инструкции — просьба написать в комментарии. Возможно, кто-то увидел, что именно мной было сделано неправильно и почему Wireshark не может использовать режим монитора? Буду благодарен любым советам.

Дополнение

Разрешил свою проблему с тем, что в Windows Wi-Fi адаптеры не переводятся в режим монитора. Помог совет от посетителя на англоязычной версии этой статьи:

Удалить 2 dll: wpcap.dll, Packet.dll в C:\WINDOWS\System32 и в C:\WINDOWS\SysWOW64. (возможно, whireshark перестанет работать; тогда удалить wireshark с winpcap, установить npcap, установить vc++2013, установить wireshark).

Проблема была решена удалением лишних файлов wpcap.dll и Packet.dll в C:\WINDOWS\System32 и в C:\WINDOWS\SysWOW64, эти файлы оставил только в папках C:\Windows\SysWOW64\Npcap\ и C:\Windows\System32\Npcap\.

Читайте также:  Настройки интернета мегафон nokia 6303

Один Wi-Fi адаптер теперь нормально переводится в режим монитора и захватывает любые фреймы. Правда, у меня не получается переключить канал — он работает только на 1м канале. При переключении пишет «Успех», но при проверке канала вновь оказывается, что работает на 1м канале.

Второй Wi-Fi адаптер после перевода в режим монитора вызывает синий экран смерти — проблема именно в драйвере адаптера (имя файла вызвавшего ошибку выводится на синем экране).

Можно копать дальше и разбираться с проблемами — как будет время, продолжу возиться. Но всё-таки в Linux всё намного проще и стабильнее.

Источник

Основы Wireshark. Расшифровка и захват трафика

Привет, начинающий хакер.

В одном из прошлых материалов мы с тобой разбирались как данные передаются в сетях и как разные сетевые элементы взаимодействуют между собой, если ты пропустил эту статью она здесь:

Всё это нам было нужно, чтобы подготовится к практической части изучения такой непростой темы как перехват и анализ трафика. И начнём мы изучать практическую часть с изучения утилиты Wireshark. Возникает логичный вопрос: почему именно Wireshark? Всё просто, он обладает несколькими особенностями которые выделяют его среди конкурентов:

Теперь давай запустим Wireshark и начнём с ним работать. Кстати в таких системах как Kali Linux и Parrot Security он уже предустановлен, а для винды и яблока его можно скачать на официальном сайте https://www.wireshark.org/. Ну, а я буду использовать его на Parrot Security. Кстати есть мнение, в том числе разработчиков Wireshark, что использовать его на Windows – тот ещё тот мазохизм, особенно для перехвата wi-fi трафика, во первых нужно устанавливать дополнительные драйвера – WinPcap, но самая главная проблема в том, что режим мониторинга сетевого адаптера в Windows работает максимально криво.

Небольшое отступление: в этом гайде, в процессе использования Wireshark нас в первую очередь будет интересовать трафик передаваемый через беспроводные сети, причём желательно чужой трафик, мы ведь тут собрались не для того чтоб неисправности в сети искать, правда? И ты правильно догадался (если догадался) что я плавно подвожу к режиму мониторинга wi-fi адаптера, если ты забыл то он нужен чтобы видеть весь трафик, а не только предназначенный нашей сетевой карте. Включаем:

Ну а теперь точно можно запускать Wireshark, это можно сделать из вкладки “Приложения”, а можно из терминала:

сразу после запуска, нам предложат выбрать сетевой интерфейс для запуска захвата. Можем так и сделать, или, если мы хотим поработать с ранее захваченным трафиком, сохраненным в файл, можем нажать File->Open и выбрать нужный файл.

Выбираем интересующий нас сетевой интерфейс (wlan0mon) и дважды давим на него.

Перед нами появится основное окно программы с которым мы будем проводить больше всего времени и сразу начнут перехватываться данные, пока что нажмём “Стоп” (красный квадратик в левом верхнем углу) и порассматриваем интерфейс программы.

Пройдёмся по интерфейсу сверху вниз:

Настройка Wireshark

Общие параметры самого приложения WIreshark находятся во вкладке Edit->Preferences. Их можно настроить в зависимости от своих потребностей или предпочтений, но я бы, на стадии знакомства с программой, не рекомендовал туда лезть. С опытом использования программы и работы с трафиком понимание что тебе нужно подкрутить для удобства придет само, а потому просто кратко перечислим какие здесь есть разделы:

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

Перейдем в Edit->Preferences и во вкладке Appearance выберем раздел Columns, здесь жмем на плюсик и добавляем такие колонки, с такими параметрами:

Расшифровка беспроводного трафика

Когда мы запустили захват трафика на интерфейсе wlan0mon ты наверняка обратил внимание, что в Packet List отображается всё что угодно кроме того что нужно, а именно из полезной информации там можно найти только название сети (SSID) и MAC адреса (на самом деле кое-что ещё есть), а какой-нибудь интересной информации нет, от слова “совсем”. На самом деле она есть, просто она зашифрована. Почему так? Ответ банален – потому что трафик шифруется. Соответственно надо его расшифровать, а для этого надо понимать некоторые процессы которые происходят в wi-fi сетях.

При передаче данных по wi-fi трафик шифруется с использованием ключа PTK (Pairwise Transient Key). При этом этот ключ динамичный, то есть создаётся заново для каждого нового соединения, а соответственно трафик для каждого соединения в одной и той же сети зашифрован разными PTK. Когда какой-нибудь клиент переподключается, то и PTK тоже меняется. Что бы этот самый PTK узнать необходимо перехватить четырёх этапное рукопожатие, ну и знать пароль, имя (SSID) wi-fi сети и канал на котором она работает. Как узнать пароль wi-fi сети я статью уже писал, поэтому примем за аксиому что он у тебя есть, а SSID и канал мы и так видим в Wireshark, вопрос остаётся только в PTK. Соответственно нужно перехватить рукопожатие и не какое-нибудь, а именно то которое произошло между интересующим нас клиентом и точкой доступа непосредственно перед обменом интересующей нас информацией. Так как наш адаптер уже в режиме мониторинга, а необходимые нам данные мы видим в Packet Details при нажатии на пакет из интересующей нас сети:

Читайте также:  Настройка мобильного интернет мегафон

То сразу открываем терминал и запускаем перехват рукопожатия:

ждать повторных подключений мы не будем, поэтому помогаем отключится всем устройствам в сети:

и спустя небольшой промежуток времени видим в правом верхнем углу нашего терминала появилась надпись: WPA handshake

это означает, что рукопожатие мы получили, а значит успех близок. Вернемся в Wireshark.

В Filter Toolbar нужно написать:

Это необходимо что бы убедится что рукопожатие действительно у нас, если это так – можем продолжать. Теперь сделаем то, что я чуть раньше предупреждал не делать, а именно поменяем настройки протоколов. Идём Edit-> Preferences и выбираем вкладку Protocols, в ней нам надо найти IEEE 802.11 и поставить галку Enable decryption после чего нажать Edit

в появившемся окне жмём “+” и там где Key type выбрать wpa-pwd, а там где Key нужно ввести через двоеточие “пароль:имя сети”, потом нажать ОК и сохранить изменения в настройках протокола.

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

Анализ трафика

В большинстве случаев (почти всегда) анализ перехваченного трафика происходит в оффлайн-режиме т.е. ты сначала перехватываешь трафик, потом сохраняешь его в файл перехвата (File->Save), потом опять перехватываешь и опять сохраняешь, потом объединяешь все файлы перехвата в один (File->Merge) и только потом, в комфортных условиях, анализируешь весь трафик скопом. И, кстати, эти функции, с сохранением и объединением, ты будешь использовать гораздо чаще чем ты думаешь. С сохранением, потому что получить с первого раза сведения которые тебе нужны удаётся далеко не всегда, да и если анализировать трафик в онлайне – по любому что-нибудь пропустишь, а с объединением потому, что когда у тебя есть несколько файлов перехвата – разбирать их по отдельности – очень глупая и трудоёмкая идея.

Как ты наверняка заметил файлы перехвата содержат огромное количество строк, и что бы быстро в них ориентироваться нужно научится делать несколько вещей:

Практика анализа трафика беспроводных сетей

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

Схематично принцип действия режимов можно нарисовать так:

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

Фильтрация по идентификатору: wireshark собирает данные всех сетей находящихся в радиусе действия сетевого адаптера, поэтому наиболее логично первоначально отфильтровать трафик конкретной сети, которая нас интересует, сделать это можно по имени беспроводной сети (SSID):

хотя наиболее корректно будет отфильтровать по bssid. BSSID – это идентификатор базового набора услуг (Basic Service Set Identifier) – он присваивается каждой точке и идентифицирует её, при этом он посылается в каждом беспроводном пакете управления и пакете данных из передающей точки доступа. BSSID записывается в заголовок пакета и это и есть MAC адрес нашей точки доступа. Посмотрев его в заголовке, можем создать фильтр чтобы видеть трафик проходящий только через нужную точку доступа:

Не менее полезным, в некоторых ситуациях будет отфильтровать трафик по используемому каналу связи:

можно увидеть трафик передаваемый по протоколу ARP, это даст возможность понять какие устройства в данный момент подключены к локальной сети, увидеть их MAC и IP адреса.

Также довольно часто используются такие фильтры:

покажет отправленные dns-запросы, так можно узнать какие сайты посещал пользователь и какими онлайн-ресурсами пользовался.

покажет трафик связанный с конкретным IP (где он был получателем или отправителем).

покажет tcp трафик, по такому же принципу можно отфильтровать трафик по любому другому протоколу, например udp или icmp.

Если мы видим, что соединение с сайтом не защищено т.е. происходит по протоколу http, это открывает перед нами большие возможности, мы можем увидеть передаваемые данные, в том числе данные авторизации и данные форм, загружаемые и открываемые файлы, передаваемые и установленные cookie,

http отфильтровать http трафик
http.host == “адрес показать запросы к определённому сайту
http.cookie http-запросы в которых передавались cookie
http.set_cookie запросы в которых были установлены cookie в браузер
http.content_type contains “image” поиск любых переданных изображений, можно конкретизировать заменив “image” на “jpeg” или другие.
http.authorization поиск запросов авторизации
http.request.uri contains “zip” поиск определённого типа файлов. zip – заменить на нужное

Кстати, что бы сохранить какой-нибудь найденный файл надо нажать на него правой кнопкой мыши в окне Packet Details и выбрать Export Packet Bytes и указать место куда его нужно сохранить:

Ну, что. Если ты дочитал до этого места, значит можешь смело утверждать, что у тебя уже есть базовые знания по Wireshark, и ты уже, в принципе, немало можешь понять из перехваченного трафика. Поэтому не забывай возвращаться к нам, ведь в следующих уроках по это программе мы изучим синтаксис и операторы фильтров, разберемся как победить зашифрованный SSL/TLS трафик, разберемся с дешифраторами, более детально разберем некоторые сетевые протоколы и, конечно же, попрактикуемся в анализе сетевого трафика на конкретных примерах.

Источник

Adblock
detector