Взлом 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. Но имеется сразу несколько проблем:

  • программы из пакета Aircrack-ng не умеют работать с этими интерфейсами — то есть с помощью Airodump-ng невозможно захватить никакие данные
  • практически нет программ, умеющих делать беспроводные инъекции, то есть нет возможности выполнять самые популярные атаки.

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

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

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

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

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

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

  • Support raw 802.11 traffic
  • Install Npcap in WinPcap API-compatible Mode

Нам также нужна программа 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, для этого используйте фильтр (подробности по работе с беспроводными фреймами смотрите в статье «Как извлечь рукопожатия из файла захвата с несколькими рукопожатиями»):

(wlan.fc.type_subtype == 0x08 || wlan.fc.type_subtype == 0x05 || (eapol && wlan.rsn.ie.pmkid))

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

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

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

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

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

cd C:\Windows\System32\Npcap\

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

netsh wlan show interfaces

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

Error: makeOIDRequest::strAdapterGUID error, the adapter name is incorrect.
Failure

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

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

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


WlanHelper.exe 1eff05d6-56c5-4a12-bb4b-d96a7ef0af2f mode

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

WlanHelper.exe 1eff05d6-56c5-4a12-bb4b-d96a7ef0af2f mode monitor

Проверяем:

WlanHelper.exe 1eff05d6-56c5-4a12-bb4b-d96a7ef0af2f mode

Всё получилось:

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

Заключение

Как я уже сказал, у меня не получилось захватить 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\.

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

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

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


Рекомендуется Вам:

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

  1. Nikolay:

    Wireshark надо запустить от админа, тогда переводится в режим монитор

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

    EAPOL PMKIDs……………..: 4

    но перевести в хеши не удается

    hcxpcaptool -z wire.pmkid wire
    0 PMKID(s) written to ./wire.pmkid

    что не так?

    • Alexey:

      Думаю, ваша проблема в том, что не тот формат файлов: hcxpcaptool работает с pcapng, а Wireshark скорее всего сохраняет в pcap. То есть в Wireshark при сохранении выберите pcapng.

      Про мою проблему: я и сам пишу в статье, что нужно запускать от админа — ничего не помогает. А вы в Windows пробовали?

      • Nikolay:

        да, вынь 10, с последними обновами и последний npcap, вафля тп-линк 7200 дрова от ALFA AWUS036NH (TP-LINK TL-WN7200ND RT3070) вер 011916_1.5.39.173, вроде как последние

        с разными дровами пробывал, в монитор все норм переводит

        сохранял и правда в pcap, позже попробую в другой

        и так на заметку, aircrack-ng просто отвратительно работает с хешем в режиме брутфорсе по словарю, тобишь вообще не работает, находит не то или вообще не находит, пароль известен и прописан спец в словарь

      • Nikolay:

        и еще подмечу, если был установлен Npcap , а после поменялись драйвера на вафлю, то обязательно надо переустановить Npcap , иначе не будет работать

        столкнулся с этим багом при использовании сканроутер, не хотел wps перебирать

      • Nikolay:

        что то Wireshark жестко тормозит в интерфейсе, прям вообще жестко

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

        Можете сделать обзор?

        запускается как то так

        список устройств

        dumpcap.exe -D
        dumpcap.exe -P -i \Device\NPF_{C3EB41C2-D06D-4114-8F2E-9544E11D618D} -y IEEE802_11_RADIO -I -r -w E:/cap/wire.pcap
        
        • Alexey:

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

          Можно было бы повозиться, если бы она у меня завелась. Но при использовании опции -I (перевод карты в режим монитора), например так:

          dumpcap.exe -i alfa52 -I

          Постоянно выдаёт ошибку:

          Capturing on 'alfa52'
          dumpcap: The capture session could not be initiated on interface '\Device\NPF_{E5AA92C6-7197-410A-BBCF-C1AE31AE8974}' (Generic error).
          Please check to make sure you have sufficient permissions, and that you have the proper interface or pipe specified.

          И так для всех трёх моих беспроводных интерфейсов.

          Если без режима монитора, например так:

          dumpcap.exe -i alfa52 -w C:/test.pcapng

          То записывает обычные пакеты, которые передаются по сети (если есть подключение).

          Всё-таки, беспроводные атаки это для Linux, а не для Windows. По крайней мере у меня в Windows ничего не работает — даже то, что должно работать.

          • Nikolay:

            не, фильтры она поддерживает в формате pcap, даже применяются, только видимо не коректно работают отдельно из командной строки

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

            CommView for WiFi так же работает прекрасно до 6 версии, все драйвера подхватывает, после нее\7 версии ввели ограничения и ни один мой адаптер уже не виден

      • Nikolay:

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

        в общем решение такое)) видимо хвосты остаются от неких прог и не удаляются библиотеки

        надо из папки C:\Windows\SysWOW64\Npcap скопировать в C:\Windows\SysWOW64 с заменой

        и так же с х64 , из C:\Windows\System32\Npcap в C:\Windows\System32 с заменой

        а Wireshark у меня тормозил из за патченной библиотеки airpcap от Acrylic, который сделал свой врапер и предоставлял доступ к airpcap через ndis, вроде работает минут 5 и уходит в BSOD на вынь 10

        Wireshark кста видит этот драйвер и так же уходит в БСОД через пару минут, удалил

  2. Nikolay:

    пруф на airpcap от Acrylic

    https://www.acrylicwifi.com/ru/blog/как-произвести-захват-трафика-в-windows-с-пом/

    а здесь Airodump for windows native support

    https://www.acrylicwifi.com/en/support-webinars-wifi-wireless-network-software-tools/acrylic-api-for-developers/native-windows-support-for-airodump/

    в самом низу ссылки на бинарники

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

     

     

  3. Nikolay:

    в общем как то не интересно стало) точки ломаются меньше чем за пять минут

    больше времени уходит на копипасты и конвертирование

    в общем рабочая связка wireshark + npcap + routerscan(альтернативы пока не нашел) + hashcat

    в wireshark смотрим только строку PMKID, больше ничего, естесна в режиме монитора

    через routerscan методом брутфорце, ОБЯЗАТЕЛЬНО через тот же девасе\интерфейс вафли что и висит на wireshark в режиме монитора, тобишь обходимся одним устройством

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

    в принципе осталось за малым, подобрать пароль через hashcat

    хеш как известно состоит из PMKID+МАК\ЖЕРТВЫ+МАК\АТАКУЕЩЕГО+НАЗВАНИЕ/ТОЧКИ/ЖЕРТВЫ

    PMKID+BSSID\ЧУЖОЙ+BSSID\СВОЙ+ESSID\ЧУЖОЙ

    hashcat.exe -m 16800 -a 3 -w 3 -o "crack_password.txt" "PMKID*BSSID*BSSID*ESSID" GG2U06?d?d?d?d --force

     

     

  4. Nikolay:

    здесь дополню

    \\через routerscan методом брутфорце, ОБЯЗАТЕЛЬНО через тот же девасе\интерфейс вафли что и висит на wireshark в режиме монитора, тобишь обходимся одним устройством\\

    эмулирем перебор паролей по словарю, тобишь якабы перебираем, пароли в слова могут быть любые, достаточно несколько 1-3 пробы и можно выключать, варешарк уже поймает PMKID

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *