Wps hack mac os

Hacking. Wi-Fi Penetration on MacOS

Disclaimer: this post for education purposes only.

A wireless network with WPA/WPA security not guarantee a total safety. WiFi packets could be sniffed by an attacker that can stole a WiFi passwords, then he connects to your secured network. But he is need to decode a hash of password. The complexity and time to get a password phrase completely depends on the password. Passwords consists only digits cracks minutes or hours, the password “HasGUS%f@$SAfga63efSA%$S(SACSASj)” require a hundred years to crack it.

MacOS isn’t known as an ideal operating system for hacking without customization, but it includes native tools that allow easy control of the Wi-Fi radio for packet sniffing. Changing channels, scanning for access points, and even capturing packets all can be done from the command line.

This manual show a manual to crack WiFi password from my MacBook Pro with MacOS 10.13 (HighSierra). I want to save the instruction to the future. If you want to repeat it you should familiar with console terminal.

Let’s start cracking 😉

installation requirements

Install [JamWifi][https://github.com/0x0XDev/JamWiFi] app. It is a deauthenticating application in which unwanted clients from a Wi-Fi network have to keep off, jamming and especially their connection will be departed like dust in a second. Download and unzip by this link.

Test that all tools installed and available. The commands below should success return some help page about itself:

identify the target access point

  • Basic Service Set Identifier (BSSID).
  • Service Set Identifier (SSID).
  • Radio Frequency (Channel).
  • Access Point (AP).

Now, this command will be scanning the available Wi-Fi.

Wait till the installation is done. I want to hack my network named Ruslan Gainanov and BSSID 6e:57:ca:24:09:8c and channel 1 .

Copy the BSSID (my BSSID= 6e:57:ca:24:09:8c ) of the target Access Point.

capturing a traffic

  1. Run a command to help find a wireless interface ( en0 )

Deauth connected devices with Jam Wi-Fi app. Open the app. Press Scan, chose the target network and press Monitor, then press Do It! to restart all connections. Wait 15 seconds and press Done

When you “Done” with death, run quickly next command. You have to capture a handshake in time

Wait until you see some gotten frames, like this

After you have it press «Control + C» to stop capturing.

Merge the Beacon and Handshake

brute forcing

  • Brute Force — A brute-force attack consists of an attacker submitting many passwords or passphrases with the hope of eventually guessing correctly.
  • Wordlist — A written collection of all words derived from a particular source.

.1. Generating HCCPAX File

Hashcat doesn’t take cap files, only hccapx files. So we need convert this files. Other way to made it is use a online tool.

Review the result. You should see the phrase Networks detected: X. Written X WPA Handshakes . The example of success result is:

.2. Now, everything are right to execute the hashcat. We can use a wordlist or a pattern to broke a password. Using a wordlist (example of wordlists — https://github.com/kennyn510/wpa2-wordlists.git):

Using a pattern — 8 digits:

For more examples press here. For more patterns, see the documentation.

my results

I use the hashcat with pattern, that works on GPU. On my MacBook Pro, it yields a performance of 41kH/s: it tests 41000 passwords in a second.

The cracking a WiFi password consists 8 digits took me twenty minutes (20 mins, 17 secs).

Is true that my network named Ruslan Gainanov has a password — 12345670 .

conclusion

Please be aware that attacking Wi-Fi Protected Access (WPA) is illegal unless you have permission from the owner’s access point or affiliation involved. This post should be used as Educational Purposes, to help the public understand how hackers take advantage of your access.

additional information

  • Youtube Video — video example of hacking WiFi password
  • Hacking: Aircrack-ng on Mac OsX — Cracking wi-fi without kali in parallels — the blog article that I based
  • Hacking: Wi-Fi Penetration on MacOS — another good article on Medium
  • Cracking WPA/WPA2 with hashcat — brief manual of hashcat using
  • New attack on WPA/WPA2 using PMKID — a new technique to crack WPA PSK without capturing a full EAPOL 4-way handshake

Updated: July 17, 2020

You May Also Enjoy

DELL. Configure Dell 10 gigabit switch with Ansible

Use Ansible playbooks to easy configure Dell Networking OS9 system. The post contains many practical examples of using dellos9 modules

DELL. Upgrade firmware on Dell S4048 switch (S-series, OS9)

Instructions for upgrading the last firmware of Dell Networking system.

DELL. Disabling SupportAssist on switch

SupportAssist is a daemon for sending technical reports to Dell servers. It enables by default. Here we disable this unwanted feature (and may be unsecured).

DELL. Setup SSH server on OS9 switch (S4048 10G switch)

Setup and configure ssh server on Dell Networking system with RSA and password authentication.

Источник

Добываем Wi-Fi соседа стандартными средствами MacOS

Я всегда был фанатом багов и уязвимостей «на поверхности», всегда завидовал чувакам, которые пишут эксплойты для самых защищённых ОС, а сам умел только скрипткиддить (термин из нулевых). Однако мой пост про уязвимости в системах контроля версий набрал более 1000 лайков на Хабре и остаётся топ1 постом за всю историю Хабра, несмотря на то, что был написан 9(!) лет назад.

И сегодня я хотел бы на пальцах показать и рассказать про такую штуку, как вардрайвинг. А точнее, как стандартными средствами MacOS можно добыть пароли от Wi-Fi соседей. Нелёгкая забросила меня на очередную квартиру. Как-то исторически сложилось, что я ленивый. Пару лет назад я уже писал, что моя лень, новая квартира и провод Beeline (бывшая Corbina) помогли мне найти багу у Билайна и иметь бесплатно интернет в их сети. «Сегодня» происходит «подобное», я на новой квартире, нет даже провода, но есть много сетей у соседей.

Заколебавшись расходовать мобильный трафик, я решил, что «соседям надо помогать», и под «соседями» я имел введу себя…

Когда-то давно я увлекался вардрайвингом, как раз именно до того момента, пока не обнаружил в старой квартире провод Билайна ) Там тоже было много сетей рядом и первое, что пришло в голову — мне нужен wi-fi. С тех пор прошло много лет. Обновляя свои данные про вардрайвинг, я нашёл в сети упоминание, что 90% работы спец.утилит «сегодня» можно сделать стандартными сервисами MacOS. Забегая вперёд, я хотел бы отметить, что не являюсь автором данного метода, я сам нашёл его в забугорном инете, просто, скажем, это вольный перевод и подробное, художественное описание способа добыть wi-fi пароли стандартными методами макоси, не более.

Принципы добычи паролей соседского Wi-Fi

Надо понимать, что имея Wi-Fi-приёмник, который есть сегодня в любом ноутбуке, ты можешь «снифать» весь беспроводной трафик около себя. Раньше, когда сети были открыты, достаточно было прийти в макдак и за вечер можно было получить 100-200 акков к одноклассникам. Открытая сеть + отсутсвие https делали своё дело.

Сейчас всё интереснее, все переходят на https (пользуясь случаем, хочу передать привет Lets Encypt. Любимый Lets Encypt, я в телевизоре и передаю вам привет, спасибо, что вы есть) и даже про WEP уже все забыли, все роутеры юзают WPA2. Но, как известно, меч был придуман раньше щита, и никакой WPA2 не помеха человеку, голодного до интернета и видящего около себя кучу Wi-Fi.

Читайте также:  Обновить все драйверы средствами windows 10

Продолжим. Имея Wi-Fi карту, т.е. любой современный ноутбук, мы можем снифать трафик возле себя. Но он бесполезен, ибо зашифрован. Единственное, что можно разобрать из него — метаданные, типа название сетей итп и «рукопожатия», handshake, т.е. авторизации пользователей в сети. Они происходят каждый раз, когда пользователь подключается к wi-fi-сети. Например, когда сосед приходит домой и его смартфон в кармане цепляется к домашнему wi-fi.

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

Это правда совсем грубо. Ключ там получается путем 4096 раундов SHA1. Если быть точным, то формула такая: Key = PBKDF2(HMAC−SHA1, passphrase, ssid, 4096, 256)

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

И да, я солгал в своём первом абзаце про «дешифрацию», это техническая ошибка и подмена понятий. Конечно, дешифровать хэш невозможно. Это как говорить «лицензия такси», зная, что деятельность такси в РФ не лицензируется. Но просто так удобней )

Так вот. Всё, что нам надо — это найти среди траффика радиосети вокруг себя рукопожатия и «дешифровать» их. И раньше была куча софта для всего это. Кто-то умел грамотно сканировать радиоканал, кто-то отлично его сниффал в дампы, кто-то находил хэши в дампах, кто-то умел их ломать. Сейчас всё стало проще, благодаря Тиму Куку. 90% работы за стороннее ПО делает стандартное приложение «Беспроводная диагностика». Многие его видели — когда проблемы с Wi-Fi, мак предлагает проверить сеть. Бесполезная утилита, которая даёт советы типа «перезагрузите роутер». Ну, т.е. мне так казалось )

Добываем пароли. Соседи вешайтесь 😉

Итак, погнали. Зажимаем Alt и кликаем по логотипу Wi-Fi в верхней панели. Вообще Alt и клик всегда открывает дополнительные опции в MacOS, но это тема отдельного топика.

Помимо прочей доп.инфы, которая порой очень полезная, мы можем запустить программу «Беспроводная диагностика». Думаю, все кто пользуются маком, помнят это окно.

Но нас интересует другое. Кликаем по пункту меню «Окно» и видим набор дополнительных утилит.

И тут прям есть всё, что надо, даже больше ) Конкретно нас интересуют 2 пункта. Сканирование и Анализатор. Первый покажет нам все сети вокруг с доп.инфой, типа на каком канале и на какой частоте работает сеть. Второй пункт позволит сниффать трафик на конкретном канале и частоте.

Нажимая на кнопку «Начать» в Анализаторе, Wi-Fi-карточка переключится в режим приёма и начнёт сканировать радиочастоту вокруг себя, дамп будет писаться в /var/tmp.

Файлы *.wcap это наши дампы, которые содержат бесполезный для нас траффик и нужные нам рукопожатия.

Надо понимать, что нам необходимо поймать именно рукопожатия. Т.е. нам надо поймать и сниффать траффик, когда сосед приходит домой вечером. Либо, если у вас есть ещё одно устройство на макоси, либо любой другой оси, вам помогут нюкеры. Программки, рассылающие поддельные команды деаунтефикации. Например, JamWiFi. Но это если прям совсем не терпится ) На моём опыте, достаточно просто запустить Анализатор в 6 вечера на часок.

«Стоп» скажите вы, «ты же обещал взлом сетей соседа стандартными методами?» ) Ха! И вы мне поверили?! На самом деле мы стандартными методами сделали 90% работы через GUI. У нас уже есть хэши, всё что нам надо — разбить их. Уверен, можно всё сделать и стандартными утилитами, но проще юзать hashcat. Собираем софт через brew или из сорцов. Первым делом нам надо конвертировать наш дамп, оставив в нём только наши хэши. Этим занимается бинарник cap2hccapx из пакета.



Мы видим, что успели перехватить 2 рукопожатия, попробуем «сломать их». Для этого нам нужен naive-hashcat:

Кошка пошла работать. В среднем у меня на маке я имею скорость в 2000 хешей в секунду, на скрине 7к, но это только старт. Судя по этому документу, на 1080gtx можно получить скорость в 400к хешей в секунду. Однако у меня всего 2 рукопожатия и не такой уж и большой словарь, поэтому пробежаться по нему не составило проблем. Смотрим файл home-wifi.txt, вуаля:

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

Удачных сканирований вам, юные подованы вардрайверы. И большое спасибо разработчикам Kali Linux MacOS за такие подарки.

Источник

Похек Wi-Fi встроенными средствами macOS

TL;DR Встроенные средства macOS позволяют выполнить некоторые атаки на Wi-Fi-сети. В статье описывается, как с помощью встроенного в Macbook Wi-Fi адаптера AirPort и macOS похекать Wi-Fi.

Обычно для аудита безопасности Wi-Fi-сетей используется классическая связка: виртуалка с Kali Linux + внешний USB адаптер типа Alfa AWU-blabla1337. Но оказывается, что с помощью macOS и встроенного адаптера Broadcom тоже можно делать грязь.

  • Мониторный режим на встроенном адаптере
  • Расшифровываем WPA трафик
  • Ловим хендшейки и PMKID
  • Собираем под макось пацанские тулзы: hcxtools, hashcat, bettercap
  • Брутим хеши на онлайн-фермах и локально

Разведка с помощью WiFi Explorer

WiFi Explorer — невероятно удобная программа для анализа Wi-Fi-сетей. Сильно лучше аналогов для других операционных систем. Она постоянно развивается, есть платная версия с возможностью мониторинга через удаленный адаптер, как у kismet. Но, в отличие от kismet, ею удобно пользоваться, и она сделана для людей, а не для красноглазых свиборгов.

WiFi Explorer не имеет никаких опций для пентеста, а предназначен только для первичной разведки. Важно также помнить, что он умеет только активное сканирование, то есть показывает в своем списке сети, до которых смог докричаться (probe request), и от которых получил ответ (probe response). Если бы он поддерживал пассивное сканирование, мы бы смогли увидеть больше сетей, от которых долетают пакеты, но при этом они не слышат нас.

Самые удобные функции для меня:

Визуальный анализатор спектра — удобно смотреть, какие каналы заняты во всех диапазонах сразу. Видно занимаемую полосу у каждой точки (20/40/80MHz). Высота столбцов означает уровень сигнала. Можно по одному беглому взгляду оценить радиообстановку и решить, как лучше настраивать сеть и куда встать на свободные каналы.

Подробная информация по каждой точке доступа

  • BSSID — MAC-адрес точки доступа. Удобно видеть все точки доступа, когда их несколько с одинаковым ESSID. По первым трем байтам вычисляется производитель из базы oui.
  • ESSID — имя Wi-Fi-сети. Также удобно видеть, когда точки доступа с одним BSSID вещают несколько разных имен. Можно отсортировать список по имени сети и увидеть, сколько физических точек доступа обслуживают сеть с одним именем.
  • WPS — поддержка WiFi Protected Setup, удобно оценить, какие сети с бОльшей вероятностью получится взломать. В линуксе для этого существует утилита wash, которая показывает больше информации про состояние WPS.
  • Device Name — дополнительное поле в beacon-фреймах, в котором содержится имя устройства. В этом поле иногда бывают интересные данные, вроде типа устройства, например: ТВ-Приставка, медиа-конвертер, или серийный номер роутера. Иногда эта информация может быть полезна.
  • Частоты, номер канала, ширина канала — удобно для настройки сложных систем с десятками точек доступа, и в случаях, когда нужно вручную указывать частоту, как в оборудовании Mikrotik.

Мониторный режим

Мониторный режим — особый режим работы Wi-Fi-адаптера, в котором он захватывает все пакеты из эфира, а не только те, которые предназначены ему. Этот режим необходим для того, чтобы захватывать обмен между другими устройствами.

В macOS есть штатные средства для включения мониторного режима. Это можно сделать с помощью утилиты диагностики проблем Wi-Fi или с помощью консольной утилиты airport. Когда-то давно я сделал простой скрипт airport-sniffer, который активировал мониторный режим и запись перехваченного трафика в файл, и одновременно с этим парсил файл на предмет заданного регулярного выражения. Таким образом было удобно выдергивать из трафика нешифрованные cookie.

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

Читайте также:  Стала долго запускаться windows 10

Теперь можно просто вызывать команду airport без указания полного пути.
Утилита умеет много всего, но нас интересуют команды:

Мой скрипт airport-sniffer как раз использует вызов команды airport sniff и ищет файлы дампов в /tmp/. В момент, когда мониторный режим активирован, значок Wi-Fi меняется на глаз.

Важно: в версии macOS 10.14 Mojave функция sniff в утилите airport сломана, и программа ломается с Segmentation Fault. В актуальной версии macOS Catalina и в более старых версиях эта проблема исправлена. При этом утилита Airtool.app работает без проблем везде.

Airtool — удобный способ управлять мониторным режимом


Как мы уже выяснили, использовать мониторный режим и захватывать трафик в macOS можно вообще без установки сторонних программ. Утилита Airtool делает эту задачу сильно удобнее. Она имеет графический интерфейс, позволяет перенаправлять захваченный трафик сразу в Wireshark и позволяет управлять форматом перехватываемых заголовков radiotap. Для случаев, когда нужно анализировать только служебные заголовки Wi-Fi пакетов, она позволяет отбрасывать часть пакетов, содержащих payload с данными для экономии места. По умолчанию захват пакетов происходит в режиме channel hopping, когда Wi-Fi-адаптер прыгает по всем каналам. Для целевой атаки нам потребуется захватывать трафик только на одном канале, на котором работает наша атакуемая сеть. Номер текущего канала и ширина, на котором работает адаптер, показаны на значке программы.

Интерфейс программы Airtool

Сети Wi-Fi работают на разных частотах (каналах), и сетевой адаптер может одновременно работать только на одном канале. Поэтому в режиме channel hopping он будет «слышать» данные только на канале, на котором находится в данный момент, и пропускать данные на других каналах в этот момент времени.

По-умолчанию программа Airtool записывает перехваченный трафик в файл на рабочем столе. Но чтобы работать с дампом нужно сперва остановить захват трафика, так как в момент записи он пустой. Мне намного удобнее видеть перехваченные пакеты в реальном времени в Wireshark. Поэтому я рекомендую установить Wireshark и указать в настройках Airtool галочку Launch capture in: Wireshark. Тогда при запуске захвата в Airtool будет сразу запускаться Wireshark.

Airtool умеет перенаправлять захватываемый трафик в Wireshark в реальном времени

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

Расшифровка WPA-трафика в реальном времени

Мы научились захватывать трафик в мониторном режиме, теперь попробуем выполнить самую простую атаку: перехватить момент авторизации клиента на точке доступа (WPA-хендшейк) и расшифровать WPA-трафик. Эта атака предполагает, что вы уже знаете пароль от Wi-Fi-сети и ваша задача подслушать трафик соседа, подключенного к той же сети.

Представим, что мы хотим перехватить беспроводной трафик от ноутбука коллеги, чтобы посмотреть на какие сайты он заходит, при этом наша офисная сеть имеет WPA-шифрование и закрыта паролем (PSK). Мы пользуемся одной и той же Wi-Fi-сетью и оба знаем от нее пароль.

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

В моем примере жертва будет подключаться к сети «OLOLOL_OAOOAOAOAOOA». Эта сеть состоит из одной точки доступа, работающей в одном диапазоне 2.4GHz на канале 1.

Настраиваем Airtool на этот канал и включаем захват трафика. Так как на первом канале работают и другие сети, в Wireshark мы увидим много постороннего трафика от других сетей, также адаптер может захватывать пакеты с соседних каналов. Для того чтобы отфильтровать ненужный трафик, в Wireshark есть фильтры отображения (Display filter), укажем там MAC-адрес (BSSID) нашей точки доступа, чтобы видеть только пакеты, имеющие отношение к этой сети.


Wireshark отображает все перехваченные пакеты на заданном канале. С помощью фильтров можно убрать мусорный трафик.

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

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

e4:8d:8c:d9:07:8c — адрес точки доступа
00:cd:fe:10:55:8a — адрес клиента

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

Перехваченный WPA-хендшейк в момент авторизации жертвы на точке доступа.

Wireshark достаточно умный и умеет автоматически расшифровывать трафик, используя временные ключи из EAPOL хендшейка. Для этого ему нужно указать пароль от Wi-Fi-сети в меню
Preferences —> Protocol —> IEEE 802.11 —> Decryption keys
Нужно добавить новый ключ типа wpa-pwd, что значит wpa password, и указать пароль и имя сети в формате пароль: имя_сети.

В моем случае пароль от сети WhySoOpen, а имя сети OLOLOL_OAOOAOAOAOOA.


Wireshark автоматически расшифровывает трафик, если знает пароль от сети

Можно указать сразу несколько паролей от разных сетей, и Wireshark сам поймет и расшифрует трафик от всех сетей в одном дампе одновременно. Важно только помнить, что расшифровать он может только трафик, от которого есть WPA-хендшейк. Соответственно, если на точке доступа десять клиентов, а хендшейк пойман только от одного, будет расшифрован только его трафик.
Если не получается расшифровать трафик, убедитесь, что вы правильно указали wpa-pwd, и в вашем дампе есть полный хендшейк от жертвы.

Если все указано верно, мы увидим расшифрованный трафик. В моем примере жертва заходила на сайт http://asdasd.ru по нешифрованному HTTP, что успешно видно в дампе. Что делать с расшифрованным трафиком дальше, вы уже должны знать сами.


Расшифрованный HTTP-трафик в Wireshark

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

Bettercap — удобный перехват WPA-хендшейков и PMKID

На предыдущем шаге мы научились перехватывать WPA-хендшейк полностью пассивно, сидя в засаде и ожидая, пока жертва подключится к сети самостоятельно. Этот же хендшейк можно использовать для перебора пароля от Wi-Fi-сети, если пароль не известен. Но что делать, если мы не хотим ждать, или жертва уже подключена к сети, и мы не успели застать момент подключения.

В этом случае мы можем насильно отключить жертву от Wi-Fi-сети (атака deauthentication), тем самым заставив подключиться к сети заново после разрыва, и послать нужный нам WPA-хендшейк. Несмотря на то, что встроенными средствами macOS нельзя выполнять инъекции пакетов в чистом виде, атака deauth работает!

Самый удобный инструмент для этого, на мой взгляд — фреймворк bettercap. Это интерактивный фреймворк для автоматизации сетевых атак. Работает полностью нативно на macOS, умеет много чего. Мы рассмотрим только работу с Wi-Fi. Более подробные примеры использования есть на видео в конце статьи.

Устанавливаем bettercap через brew:

Перед запуском bettercap нужно отключиться от Wi-Fi. Это можно сделать, зажав Alt и кликнув по меню Wi-Fi, выбрать пункт «отключиться», либо через Airtool, либо через airport -z. Bettercap следует запускать от рута указав имя wi-fi-адаптера.

Активируем мониторный режим. По-умолчанию он активируется в режиме channel hopping, то есть прыгая по всем существующим каналам. Сразу после его активации в консоль побежит лог перехваченных данных.


bettercap выводит лог перехваченных событий в мониторном режиме

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

Читайте также:  Windows 10 экономия заряда настройка


Команда wifi.show показывает список доступных сетей

Мы видим, что на точке доступа уже есть один подключенный клиент. Попробуем его насильно отключить от сети, чтобы он начал подключаться к ней заново и передал нужный нам WPA-хендшейк. Введем команду wifi.deauth указав BSSID точки доступа. В этом случае bettercap будет посылать deauth всем клиентам, подключенным к сети. Если же мы хотим отключить только одного клиента, нужно указать его MAC-адрес вместо адреса точки доступа.

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

Теперь при вводе команды wifi.show сеть, от которой был получен хендшейк, будет выделена красным цветом. Все перехваченные хендшейки bettercap сохраняет в домашнюю папку в файл

Получение PMKID

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

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

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

Если точка доступа поддерживает PMKID, то он будет послан в ответ. Пример перехваченного PMKID видно на предыдущем скриншоте, он прилетает перед EAPOL-хендшейком.

Вот, как выглядит PMKID от нашей тестовой сети OLOLOL_OAOOAOAOAOOA в Wireshark:

Брутим пойманные хеши

Вот мы наловили хендшейков и PMKID, но как теперь извлечь из них пароль? Есть два варианта: брутить самостоятельно или залить на онлайн-фермы. Так как у меня слабенький ноутбук, мне лень напрягать его перебором паролей, поэтому я просто заливаю на онлайн-крякалки.

Onlinehashcrack.com

Мой любимый сервис, умеет бесплатно брутить огромное количество разных типов хешей, в том числе EAPOL и PMKID. Достаточно просто скормить ему .pcap дамп, который мы собрали с помощью bettercap и он сам найдет в нем нужные хеши. Дубли можно удалить вручную.

Сервис onlinehashcrack.com бесплатно перебирает пароли по словарю для EAPOL и PMKID

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

Gpuhash.me

Менее удобный сервис, для показа найденного пароля просит заплатить 0.001BTC. Я обычно заливаю на все сервисы сразу, чтобы понять, насколько реально пароль слабый. Крайне редко бывает, что gpuhash.me находит то, чего не нашел onlinehashcrack.com.

Поддерживает EAPOL и PMKID, однако не умеет сам находить PMKID в дампе .pcap и требует специально подготовленный формат PMKID в виде строки текста. Подробно тема перекодирования хендшейков разбирается на видео в конце статьи.

Брут на своих мощностях

На маке работает старый дедовский способ брута на процессоре по словарю с помощью aircrack-ng, который также доступен в репозитории brew. Я не буду подробно рассматривать эту тему, потому что она была описана сотни раз.

Свежий aircrack-ng поддерживает брут PMKID. Его удобного использовать для быстрого просмотра содержимого pcap-файла. При использовании Wireshark важно помнить, что aircrack-ng умеет читать только формат pcap и не умеет pcapng.


aircrack-ng показывает список пойменных хендшейков и PMKID в файле собранном с помощью bettercap

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

Брут с помощью hashcat

Hashcat — самая продвинутая программа для распределенного брута хешей на видеокартах. Работает нативно на macOS и поддерживает фреймворк OpenCL, что позволяет задействовать даже процессорное видео для брута.

Формат 22000

Hashcat понимает только собственный формат хешей, который ему нужно подготовить из pcap/pcapng дампа. Форматы hashcat часто меняются, aircrack-ng умеет конвертировать pcap в старые форматы для hashcat, но мы рассмотрим самый свежий формат Wi-Fi-хешей — 22000.
Старые форматы HCCAP/HCCAPX были бинарными, и для передачи хешей приходилось обмениваться файлами. Новый формат 22000 полностью текстовый и его можно просто передавать как текст, что сильно удобнее.

Все описанное ниже предназначено только для экспериментаторов. Я не советую всем ставить hcxtools из моего репозитория, и вообще пользоваться этим до того, как будет выпущена версия hcxtools v6. Тогда программа будет добавлена в официальный репозиторий brew. Синтаксис программ и формат данных может измениться к тому времени

hcxtools — набор утилит для подготовки хешей для hashcat. С недавнего времени он успешно собирается под macOS. Он еще не доступен в официальном репозитории brew, но вскоре должен там появиться. Пока его можно установить из моего репозитория (в терминологии brew называется tap).

После сборки brew скажет, по какому пути доступны установленные файлы. Он не добавит их в PATH, поэтому придется указывать полный путь.

Утилита hcxpcapngtool выковыривает все EAPOL и PMKID хеши из pcap/pcapng дампов и складывает их в один текстовый файл.


Отчет обработки файла программой hcxpcapngtool

Формат 22000 достаточно простой, по маркеру вначале можно понять, что это за хеш:

WPA*01 — PMKID
WPA*02 — EAPOL

Вот пример файла hashes.22000, полученного на предыдущем шаге. Видно, что в файле есть 6 штук PMKID и 1 EAPOL хеш.


Хеши, полученные из pcap файла с помощью hcxpcapngtool в формате 22000

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

Эта программа возьмет каждый хеш, преобразует шестнадцатеричные строки в текст и сверит MAC-адрес устройств по базе производителей, в итоге получится красивый и понятный вывод, в котором видны имена сетей, MAC-адреса устройств от которых получены данные и даже производителям устройства. На скриншоте ниже пример обработанного EAPOL от сети OLOLOL_OAOOAOAOAOOA и PMKID от сети Whitestudio.

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

Старая версия hashcat в репозитории brew не поддерживает новый формат хешей 22000, поэтому устанавливаем текущую версию из исходников.

Положим нужный хеш в отдельный файл и натравим на него hashcat. Для брута не будем использовать словарь, а просто укажем маску из 8 цифр.

Расчетное время брута всех восьми цифр (сто миллионов) на моей встроенной в процессор видеокарте — 4 часа.

На мощной ферме это время может сократиться до несколько секунд.

Вот так выглядит успешно сбрученный пароль с помощью hashcat из PMKID хеша.

Описание работы hashcat и hcxtools выходит за рамки данной статьи, и я упомянул его здесь только, чтобы показать базовые примеры работы с новым форматом хешей 22000. В будущем, когда синтаксис команд и формат 22000 будет утвержден как официальный, я планирую добавить в hcxtools более удобный парсер хешей, чтобы получать хеши в нужном формате из pcap дампа одной командой. Владелец onlinehashcrack.com пообещал мне добавить поддержку формата 22000 в текстовую форму для ввода на сайте, в итоге можно будет просто скопировать нужный хеш из консоли и вставлять его плейнтекстом, вместо того чтобы заливать pcap-файлы с кучей лишнего мусора.

Видео

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

Заметки по проектам я публикую в свой Telegram-канал @zhovner_hub.

Если вам нравится то что я делаю, вы можете отправить мне 1$ через Patreon.

Источник

Оцените статью