Добываем 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.
Продолжим. Имея 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 за такие подарки.
Источник
Вардрайвинг в MAC OS X
Стандартом де-факто в вардрайвинге обычно считается система Linux (модифицированные драйвера, Kismet в связке с aircrack-ng). Но немногие знают, что в маке есть мощные инструменты для взлома аудита безопасности беспроводных сетей, ни чуть не уступающие, а во многом и превосходящие по функционалу Linux-аналоги.
UPD: Описанные в статье инструменты на сегодняшний день устарели. Рекомендуется использовать Linux
Для ознакомления с общими понятиями вардрайвинга рекомендуется почитать эту статью
Kismac — Мощная программа «всё в одном». Большим преимуществом перед линуксом является то, что драйвера wi-fi карт интегрированы сразу в программу и не нужно устанавливать дополнительные модули. Все действия по сканированию сети, сбору и анализу трафика (в линуксе команды airdump, airmon, airplay) выполняются в одном месте из графического интерфейса, что значительно упрощает процесс.
Возможности программы:
- пассивный сканер/сниффер
- инъекция пакетов
- при наличии GPS модуля может отмечать найденные сети на карте
- звуковая индикация мощности сигнала (как металлоискатель)
- запись дампа с сервера kismet drone
В Kismac также есть интструменты для дешифровки WEP/WPA алгоритмов, но авторы программы говорят, что они давно не разрабатываются и рекомендуют использовать последнию версию aircrack-ng, которую можно установить из исходников или с помощью системы портов fink.
Выбор оборудовния
Встроенная в макбук карта «Airport Extreme» не годится для вардрайвинга. Ею невозможно проводить инъекции пакетов, а из-за низкой чувствительности приемника сбор трафика для анализа нужно производить в непосредственной близости от источника сигнала. Единственное, для чего она годится — первичный осмотр сетей: можно узнать тип используемого шифрования, наличие клиентов на точках и т. д.
Для более глубокого изучения необходима карта, поддерживающая инъекцию пакетов (см. список устройств). Наиболее оптимальным выбором будет карта Alfa AWUS036H на чипсете RTL8187L. Ее рекомендуют разработчики kismac и aircrack-ng. Поддерживается всеми вардрайверскими программами во всех операционных системах, обладает очень чувствительным приемником. Мощность передачтика 500 милливатт. Оснащена разьемом RP-SMA для подключения внешних антенн.
Китайцы делают эти карты под разными названиями, например G-SKY или IDU-2850UG-8G или Kinmax.
В принципе, можно выбрать любую из поддерживаемых карт, но у этой лучшие характеристики, стоит дешево и легко найти.
Чтобы начать работать, нужно выбрать драйвер для вашего устройства:
KisMac => Preferences… => Driver
Для знакомства с программой и за неимением других карт выбираем Airport Extreme Passive mode.
Channel Hopping — выбираем все европейские каналы 1-11.
Use as primary device — чтобы активировать функцию инъекции пакетов (невозможно в Airport)
Dump Filter — какие данные записывать в дамп-файл, выбираем «Keep everything».
Save Dumps At — путь и название дамп-файла.
Теперь можно начать сканирование. Программа сообщит обо всех найденных сетях. Изменяющееся цифры в нижнем правом углу означают, что устройство находится в режиме Channel Hopping, прыгая по частотам чтобы обнаружить сети работающие на всех каналах. Также необходимо иметь ввиду, что карта прыгает по каналам очень быстро (скорость настраивается при выборе драйвера), поэтому есть вероятность, что некоторые сети могу быть не обнаружены. Чтобы исключить это, можно пройтись по каждому каналу отдельно. Когда вы выбрали интересующую сеть, необходимо остановить Channel hopping и установить канал, на котором работает выбранная сеть.
При двойном клике по выбраной сети будет показана подробная информация.
Слева — техничесская информация, справа — список клиентов подключюенных к точке. Реально подключенные клиенты имеют значение Last Seen.
Важным фактором является уровень сигнала.
Signal — мощность сигнала
AvgSignal — качество сигнала (полезный сигнал с учетом помех)
MaxSignal — максимально зафиксированный уровень сигнала
Для успешных инъекций пакетов сигнал точки и сигнал клиента не должен быть ниже 40-50. Необходимо найти оптимальное положение антенны, при котором сигнал будет максимальным. Иногда изменение положения даже на один сантиметр может существенно повлиять на уровень сигнала. Так же можно включить звуковую индикацию мощности сигнала в меню «Network => Monitor Signal Strenght», в зависимости от уровня сигнала будет меняться тональность звука.
Сниффинг в откртых сетях
В сетях без шифрования весь траффик может быть свободно просмотрен. Для этого достаточно настроить карту на прослушивание частоты, на которой работает сеть (Main channel), и собирать весь трафик в файл. После чего дамп можно просматривать анализатором пакетов.
Вот, например, за соседним столиком в кафе Вася !*SuPeR-ViP*! Пупкин залогинился вконтактик:
В нагруженных сетях дампы наполняются очень быстро, и чтобы ускорить открытие дампа wireshark-ом можно применять фильтры. Например делать выборку только по протколу или IP. Так же можно отключить резолв адресов.
Взлом WEP
Суть состоит в том, чтобы собрать большое количество служебных пакетов, содержащих вектор инициализации (Initial Vector), и из них дешифровать ключ сети. Векторы инициализации передаются для контроля соеднинения точки с клиентом, соответсвенно, атака осуществима только при налии подключений к точке.
Для успешного нахождение ключа необходимо собрать более 70 тысяч пакетов (на практитке достаточно и 20 тысяч). Собрать такое количество, пассивно слушая эфир, не представляется возможным. Для ускорения процесса существует метод инъекции пакетов, чтобы заставить хосты генерировать большое количество IV-пакетов. Для начала инъекции необходимо иметь какое-то количество Initial Vectors, поэтому можно просто подождать или же нагнать трафик флудом авторизации: Network => Authentication Flood (Подобие DoS-атаки. Будьте осторожны с этой опцией, точка доступа может зависнуть). После этого можно начинать инъекции: Network => Reinject Packets.
Если попытка иньекций была удачной, количество нужных нам пакетов (Unique IV’s) начнет резко увеличиваться.
Запустим паралельно дешифровку ключа, используя программу aircrack-ng.
В терминале вводим:
Если не указывать mac-адрес атакуемой точки доступа, программа предложить выбрать из всех точек найденных в дампе. Указать mac-адрес можно опцией -b:
aircrack-ng -b 00:00:00:00:00:00 /path/to_dump.file
Взлом WPA/WPA2
На сегодняшний день алгоритм WPA является достаточно надежным. Единственная возможность взлома — брутфорс (перебор по словарю).
Задача состоит в перехвате «handshake» (рукопожатия) в момент авторизации клиента на точке доступа и последующего перебора паролей по словарю. Для этого нам необходимо либо дождаться момента когда клиент придет логиниться либо попытаться разорвать уже имеющиеся соединения для того чтобы спровоцировать повторное подключение:
Важно поймать обе части рукопожатия: Challenge и «Response. В случаи успеха красная точка Ch/Re станет зеленой.
Часто случается, что удается поймать только ответ точки (Challenge), а ответ маломощного клиента (например мобильного телефона) не удается. В таком случае нужно найти положение антенны, в котором будет максимальным сигнал клиента
Перебор ключа выглядит так:
aircrack-ng -w keys.txt -b 00:00:00:00:00:00 dump.file
где keys.txt — путь к словарю, 00:00:00:00:00:00 — mac-адрес атакуемой точки, dump.file — путь к файлу с хендшейком.
Имея ключ шифрования, можно прослушивать весь трафик проходящий в сети. Для этого используется декриптор дампа:
для WEP шифрования ключ задается опцией -w:
airdecap-ng -w 12345678 /path/to/wep.dump.file
для WPA/WPA2 опцией -e имя_сети -p ключ_сети:
airdecap-ng -e ‘Cool-WiFi’ -p 12345678 /path/to/wpa.dump.file
В результате будет создан дешифрованный дамп-файл который уже можно просматривать анализатором пакетов.
Источник