Добываем WiFi соседа стандартными средствами MacOS

Я всегда был фанатом багов и уязвимостей «на поверхности», всегда завидовал чувакам, которые пишут эксплоиты для самых защищённых ОС, а сам умел только скрипткидить (термин из нулевых). Однако, мой пост про уязвимости в системах контроля версий набрал более 1000 лайков на хабре и остаётся топ1 постом за всю историю хабра, не смотря на то, что был написан 9 (!) лет назад.
И сегодня я хотел бы на пальцах показать и рассказать про такую штуку, как Вардрайвинг. А точнее, как стандартными средствами MacOSX можно добыть пароли от WiFi соседей. Нелёгкая забросила меня на очередную квартиру. Как-то исторически сложилось, что я ленивый. Пару лет назад я уже писал, что моя лень, новая квартира и провод beeline (бывшая corbina) помогла мне найти багу у билайна и иметь бесплатно интернет в их сети. «Сегодня» происходит «подобное», я на новой квартире, нет даже провода, но есть много сетей у соседей
u81sndgaeoykwwl1i83jbb37kz4.png
Заколебавшись расходовать мобильный трафик, я решил, что «соседям надо помогать», и под «соседями» я имел введу себя…
Когда-то давно я увлекался вардрайвингом, как раз именно до того момента, пока не обнаружил в старой квартире провод билайна ;) там тоже было много сетей рядом и первое что пришло в голову — мне нужен wifi. С тех пор прошло много лет. Обновляя свои данные про вардрайвинг я нашёл в сети упоминание, что 90% работы спец. утилит «сегодня» можно сделать стандартными сервисами MacOSX. Забегая вперёд, я хотел бы отметить, что не являюсь автором данного метода, я сам нашёл его в забугорном инете, просто, скажем, это вольный перевод и подробное, художественное описание способа добыть wifi пароли стандартными методами макоси. Не более)

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


Надо понимать, что имея WiFi приёмник, который есть сегодня в любом ноутбуке, ты можешь «снифать» весь беспроводной трафик около себя. Раньше, когда сети были открыты, достаточно было прийти в макдак и за вечер можно было получить 100–200 акков к одноклассникам. Открытая сеть + отсутсвие https делали своё дело.
Сейчас всё интереснее, все переходят на https (пользуясь случаем, хочу передать привет Lets Encypt. Любимый Lets Encypt, я в телевизоре и передаю вам привет, спасибо что вы есть) и даже про WEP уже все забыли, все роутеры юзают WPA2. Но, как известно, меч был придуман раньше щита, и никакой WPA2 не помеха человеку, голодного до интернета и видящего около себя кучу WiFi.
Продолжим, имея WiFi карту, т.е. любой современный ноутбук, мы можем снифать трафик возле себя. Но он бесполезен, ибо зашифрован. Единственное, что можно разобрать из него — метаданные, типа название сетей итп и «рукопожатия», handshake, т.е. авторизации пользователей в сети. Они происходят каждый раз, когда пользователь подключается к wifi сети. Например, когда сосед приходит домой и его смартфон в кармане цепляется к wifi домашнему. Если совсем грубо, рукопожатия представляют из себя обычный хэш, типа md5. И да, я солгал в своём первом абзаце про «дешифрацию», это техническая ошибка и подмена понятий. Конечно, дешифровать хэш невозможно. Это как говорить «лицензия такси», зная, что деятельность такси в РФ не лицензируется. Но просто так удобней)
Дак вот) всё что нам надо, это найти среди траффика радиосети вокруг себя рукопожатия и «дешифровать» их )) И раньше была куча софта для всего это. Кто-то умел грамотно сканировать радиоканал, кто-то отлично его снифал в дампы, кто-то находил хэши в дампах, кто-то умел их ломать. Сейчас всё стало проще, благодаря Тиму Куку. 90% работы за стороннее ПО делает стандартное приложение «Беспроводная диагностика». Многие его видели, когда проблемы с WiFi, мак предлагает проверить сеть. Бесполезная утилита, которая даёт советы типа «перезагрузите роутер». Ну, т.е. мне так казалось)

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


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

npwukpqzxru0tvuawv7nhw10vr0.png

помимо прочей доп.инфы, которая порой очень полезная, мы можем запустить программу «Беспроводная диагностика». Думаю, все кто пользуются маком, помнят это окно.
jroz9cj0biqhji4w7kmab1y-yis.png
Но нас интересует другое. Кликаем по пункту меню «Окно» и видим набор дополнительных утилит.

ikewbf6duobo4tllbsvsqnkcupy.png

И тут прям есть всё, что надо, даже больше) Конкретно нас интересуют 2 пункта. Сканирование и Анализатор. Первый покажет нам все сети вокруг с доп. инфой, типа на каком канале и на какой частоте работает сеть. Второй пункт позволит сниффать трафик на конкретном канале и чистоте.
bwtygqcezfsmzaj7kbj64pfhaii.png
yld4yg9_w1yooppvfijsugmxqqa.png
Нажимая на кнопку «Начать» в Анализаторе, WiFi карточка переключится в режим приёма и начнёт сканировать радиочастоту вокруг себя, дамп будет писаться в /var/tmp.

cv_lystrkeagaewfkhjrbc9lpie.png

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

./cap2hccapx /var/tmp/2018.01.25_00-37-45-GMT+3.wcap /var/tmp/home.hccapx


k1mernb7jcyycrf-dxd8fcac864.png

ohxbvlfqiklnb-ivt3obisbsezm.png

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

git clone https://github.com/brannondorsey/naive-hashcat
cd naive-hashcat

# Собираем софт для osx
./build-hashcat-osx.sh

# качаем вордлист для побора wpa/wpa2 сетей пароли (134MB)
curl -L -o dicts/rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt

# указываем адрес нашего дампа и файл, куда будем писать подобранные пассы, 2500 это метка хэшкэту, что надо ломать именно WPA, ну и запускаем naive-hashcat

HASH_FILE=/var/tmp/home.hccapx POT_FILE=home-wifi.txt HASH_TYPE=2500 ./naive-hashcat.sh


aauzz1wexqxdugrmt6ew5154dfa.png

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

hggi6dlfq4vk-nbft8wscsc9iji.png

Вот и всё. К сожалению, эта сеть через несколько квартир от меня и на другом этаже, пинг 7 секунд) надо ловить соседа снизу или брать внешнюю wifi карту с нормальной антенной. Но принцип, думаю, понятен.
Удачных сканирований вам, юные подованы вардрайверы. И большое спасибо разработчикам Kali Linux MacOSX за такие подарки.
Ну и вы найдёте много ещё интересного тут:
https://github.com/brannondorsey/wifi-cracking/blob/master/appendix.md

© Habrahabr.ru