Ломаем Wi-Fi со смартфона. Разведка и первый бой
Наверняка ты уже занимался взломом беспроводных сетей с ноутбука и замечал, что таскать его не слишком удобно, да и внимание он привлекает. Но зачем ноутбук, если у тебя есть настоящий карманный компьютер, с помощью которого вардрайвингом можно заниматься, не палясь вообще! В этой статье мы выполним подготовку и разберем простые атаки, а в следующей перейдем к действительно тяжелой артиллерии.
WARNING
Практика показывает, что большинство взломов совершается самыми примитивными методами. Автор лишь рассуждает о технических возможностях взлома и не призывает тебя так действовать. Есть только один способ научиться эффективно отражать сетевые атаки — это выполнять их самому и ставить себя на место атакующего. Иначе любой аудит превращается в фиктивную проверку на соответствие стандартам.
Арсенал
Все, что потребуется для быстрого старта, — минимально подготовленный смартфон или планшет с ОС Android. Если не стоит задача взломать определенную и хорошо защищенную сеть, а хочется просто подключиться к закрытому вайфаю поблизости, этого будет достаточно.
Первичную разведку эфира можно проводить на устройствах с Android 2.3–4.4, а начиная с Android 5.0 появилась возможность выполнять простейшие WPS PIN атаки даже без рута. Просто ставишь пару приложений и нажимаешь кнопку «сделать как надо». Но самое интересное, как всегда, кроется в деталях.
Готовимся к атаке
Существует множество типовых атак на точки доступа Wi-Fi и специфических эксплоитов для определенных моделей с конкретными версиями прошивок. К типовым относятся методы подбора WPS PIN, вычисление ключей WEP и WPA2 по анализу перехваченных пакетов, а также принудительное переключение AP на более слабый алгоритм шифрования (WEP вместо WPA).
Особняком стоят методы социального инжиниринга: создание поддельных AP (идентичных атакуемой) для получения пароля от настоящей или же для проведения различных MitM-атак, а также деавторизация/глушение беспроводных клиентов и DoS как самостоятельные цели.
Самый универсальный способ атаки на точку доступа — вычисление ее ключа WPA2 по отдельным сообщениям (M1-M4) из перехваченных хендшейков. Он срабатывает практически всегда, но требует больших затрат (особенно времени). Перехват «рукопожатий» всегда выполняется в режиме мониторинга, который поддерживает далеко не каждый Wi-Fi-чип и драйвер. Для ускорения сбора хендшейков потребуется функция инжекта пакетов, которая деавторизует подключенных к AP клиентов и заставляет их чаще отправлять «рукопожатия». Она и вовсе встречается у единичных Wi-Fi-модулей.
За редким исключением предустановленные в смартфон драйверы не позволяют даже запускать режим мониторинга, да и альтернативные драйверы для встроенных чипов есть не всегда. Поэтому для взлома чаще используют внешние USB Wi-Fi адаптеры с hacker friendly чипами (преимущественно от Atheros и Ralink). Подробнее смотри в статье «Выбираем бюджетный адаптер для взлома Wi-Fi».
Однако есть и обходной путь, не требующий покупки оборудования или мучений с драйверами. У многих точек доступа с надежной защитой (вроде WPA2 PSK CCMP) порой оказывается разрешен WPS — дополнительный вариант авторизации по пин-коду. Этот пин часто остается дефолтным и легко вычисляется.
Теоретически у восьмизначного WPS-пина всего 100 миллионов комбинаций, из которых уникальны только 10 миллионов, так как последняя цифра — контрольная и зависит от других семи. На практике же достаточно перебрать только 11 тысяч вариантов из-за уязвимостей самого алгоритма (концептуально подобных найденным в LM-хеше, подробнее здесь).
Брутфорс 11 тысяч PIN-кодов при хорошем уровне сигнала займет примерно полдня, поскольку на проверку одного пина тратится от двух до десяти секунд. Поэтому на практике используются только самые быстрые атаки на WPS — по дефолтным значениям пинов и по их сниженной энтропии (pixie dust). Для противодействия брутфорсу пин-кодов и подключению к фейковой точке доступа между AP и клиентскими устройствами предусмотрен обмен хешами. По задумке они должны вычисляться на основе WPS PIN и двух случайных чисел. На практике многие роутеры либо генерируют предсказуемые числа, либо вовсе оставляют их нулевыми. Энтропия резко снижается, а механизм, задуманный для усиления защиты, из-за некорректной реализации лишь ослабляет ее. Также некоторые производители задают WPS-пин как производное от других известных значений (в частности, MAC-адреса). Такие точки доступа вскрываются практически мгновенно.
Актуальность WPS-атак состоит еще и в том, что в некоторых точках доступа функция Wi-Fi Protected Setup включена по умолчанию и не отключается штатными средствами. Из-за кривой прошивки девайса либо в его меню настроек нет соответствующего пункта, либо положение переключателя Enable/Disable в нем не играет роли. Видимо, это одна из причин того, почему в любом городе среди множества «защищенных» беспроводных сетей до сих пор хватает легких целей.
Разведка
Весь процесс вардрайвинга можно разделить на два этапа: сбор информации о точках доступа и непосредственно их взлом. Существует множество способов просканировать беспроводные сети со смартфона, но по информативности они сильно отличаются. Одни программы показывают просто SSID и уровень сигнала подобно системному приложению, а другие отображают все параметры найденных AP. В частности, указывают тип защиты и позволяют фильтровать список по разным критериям.
Среди таких приложений я бы рекомендовал использовать WiFinspect. Он написан под руководством доктора Тома Клосиа (Tom Clothia) из Бирмингемского университета в 2012 году. Текущая версия 1.2 позволяет выполнять аудит согласно стандарту безопасности данных PCI DSS 2. С ней ты получишь исчерпывающую информацию о режимах работы найденных точек доступа Wi-Fi, сможешь сразу же выполнить их простейший пентест по дефолтным паролям и многое узнать о подключенных устройствах. Приложение бесплатное и не содержит рекламы, однако для большинства его функций потребуется root.
Дополняет WiFinspect другое популярное приложение — Wifi Analyzer. Оно умеет сканировать диапазоны 2,4 и 5 ГГц и работает без прав суперпользователя. Wifi Analyzer отображает кучу данных, включая номер канала выбранной AP, ее MAC-адрес, производителя (вычисляется по MAC), и так же детально расписывает типы шифрования. Для этого достаточно отметить в настройках «Показывать полный уровень безопасности». Минус у программы один — навязчивая реклама во всех окнах Wifi Analyzer. Ее можно убрать при помощи AdAway (но тогда все равно понадобится root) или купив платную версию.
Оба приложения отлично дополняют друг друга, работая практически на любом девайсе с Android 2.3 и новее. Они удобны для разведки эфира и предварительного выбора целей. Все найденные AP можно отсортировать по уровню сигнала и степени защиты. Так сразу определяются наиболее доступные AP.
В Google Play есть и опенсорсный WiFiAnalyzer. Он бесплатный, без рекламы, умеет фильтровать AP по типу защиты и даже пытается вычислить расстояние до них в метрах (как если бы они все вещали прямой наводкой). Однако в нем нет режима «охоты на лис» — непрерывного измерения уровня сигнала выбранной точки доступа. В остальном программа идентична.
INFO
Интересно, что некоторые владельцы просто скрывают SSID своей беспроводной сети, не утруждая себя настройкой авторизации. Другие настраивают строгую авторизацию в диапазоне 2,4 ГГц, но напрочь забывают о параллельно работающем 5 ГГц. Среди двухдиапазонных точек доступа встречаются и такие «полузакрытые».
Подводные камни
Успешность разведки зависит от установленного в смартфоне модуля беспроводной связи. Он может иметь как аппаратные, так и программные ограничения. Аппаратные касаются чувствительности приемника и поддержки им различных стандартов из набора IEEE 802.11. Далеко не во всех смартфонах есть двухдиапазонный Wi-Fi. Программные же часто зависят от используемого драйвера и установленного региона.
Про драйверы поговорим в следующей части, а пока обрати внимание на один не самый очевидный момент: в разных регионах земного шара выделены свои диапазоны частот в рамках единого стандарта. Например, для 802.11b/g/n это 2412–2484 МГц или 14 частотных каналов с шагом базовой частоты 5 МГц. Однако в России 14-й канал использовать запрещено, а 12-й и 13-й — не рекомендуется из-за того, что при ширине канала в 20–40 МГц слишком велик риск возникновения помех на запрещенной частоте. Сходная ситуация сложилась на Украине и в других странах бывшего СССР. Поэтому практически все оборудование с поддержкой Wi-Fi, предназначенное для региона СНГ, де-факто работает только на каналах 1–11 или даже 1–10.
Этим осторожно (и не всегда законно) пользуются продвинутые технари в своих интересах. К примеру, одна фирма подключает на каналах 12–13 беспроводное оборудование для видеонаблюдения, чтобы минимизировать помехи от соседних AP. Вардрайверы же просто меняют региональные настройки и получают доступ к «закрытым» каналам. Подсказка: в Японии пока разрешены все 14.
INFO
Технически беспроводную связь по стандартам 802.11b/g/n можно организовать и на нестандартных частотах (ниже 2412 МГц), но для этого потребуется специфическое оборудование и лицензия, а не просто разрешение местного радиочастотного центра. Шанс получить такой пакет документов у частного лица практически нулевой.
Первый бой
В Google Play полно программ для перебора WPS-пинов, поскольку это единственная атака, работающая на любом рутованном телефоне (до версии Android 4.4) и даже без рута (начиная с Android 5.0). Однако большинство из этих приложений написаны абы как, и их практическая польза очень сомнительна. К примеру, WPSbr Free зачем-то пытается перебирать все 100 миллионов пин-кодов, проверяя их по два раза даже при хорошем уровне сигнала. Полный перебор таким способом займет примерно 16 лет, но большинство AP заблокируют лобовую атаку гораздо раньше. После очередного неверного пин-кода клиентское устройство попадет в черный список, и для продолжения брута придется менять MAC-адрес.
Более корректный подбор пинов выполняет программа WPSApp. Она позволяет отфильтровать все найденные точки доступа. Оставляет в списке только имеющие активный WPS и сортирует их по убыванию SNR.
Все потенциально уязвимые точки доступа в WPSApp отображаются знаком вопроса. Для них предлагается попробовать один из пяти дефолтных пин-кодов. Автор программы не стал заморачиваться со скриптом перебора и предложил сделать это вручную, зато двумя способами — с рутом и без.
Если же дефолтный пин-код заранее известен (вычисляется как производное от MAC-адреса по алгоритму ComputePIN), то такая точка доступа отмечается зеленой галочкой.
Если пин-код подошел, то ты сразу получишь пароль к Wi-Fi (WPA-PSK), каким бы сложным и длинным он ни был. Пароль можно сохранить и перейти к следующей точке доступа. Спустя какое-то время твой телефон сможет использовать Wi-Fi там, где раньше ловил только 3G/4G.
Чуть более продвинутая утилита — WiFree WPS. По сути это гибрид WPS PIN и Router Keygen. В нее зашито больше дефолтных пинов и паролей доступа к маршрутизаторам, а также есть функция их автоматического перебора. Плюс она показывает сохраненные пароли Wi-Fi и все настройки текущего подключения.
Интерфейс у программы аляповатый, но довольно информативный. Она анализирует тип защиты, производителя и уровень сигнала всех найденных точек доступа. Зеленым отображаются AP с наиболее высокой вероятностью взлома. Серым — те AP, на которых стоит перебрать 10–20 стандартных пинов, а красным — те, которые быстро вскрыть не удастся. Например, у них очень низкий уровень сигнала или вовсе отсутствует авторизация по WPS PIN. В WiFree WPS доступно два режима атаки: с рутом (требуется патч и BusyBox) и без рута (работает на Android 5.0 и выше, причем быстрее, чем в аналогичных программах).
Если в базе данных программы нет дефолтных пин-кодов для устройств данного производителя, такая точка доступа будет отображаться красным. Ты можешь попробовать подключиться к ней, вводя WPS PIN вручную. Помешать успешному взлому могут и другие факторы: низкий уровень сигнала, режим WPS-авторизации по нажатию кнопки, изменение дефолтного пина, фильтрация по MAC-адресу.
После того как ты подобрал WPS PIN и узнал пароль точки доступа, можно подключаться к ней и изучать беспроводную сеть. Для этого рекомендую использовать бесплатный набор утилит Fing — Network Tools.
Приложение имеет аккуратный и наглядный интерфейс, а все пункты меню говорят сами за себя. Например, можно просканировать точку доступа и узнать о ней массу деталей.
Затем разослать ARP-пакеты и обнаружить все подключенные хосты в этой беспроводной сети (в том числе и твой смартфон).
Посмотреть доступные сервисы и открытые порты на любом узле в этой сети.
Fing даже предлагает сразу же подключиться к любому из них, например по Telnet.
Простор для фантазии здесь открывается очень большой. Можно даже удаленно включить спящее устройство, если оно поддерживает технологию Wake-on-LAN, или устроить общую побудку широковещательным запросом WOL.
Ищем зону уверенного приема
Вероятность успеха любой атаки на точку доступа зависит от мощности ее сигнала. Точнее, от соотношения сигнал/шум (SNR), которое ты регистрируешь в конкретном месте. На практике если уровень сигнала ниже –75 дБи, то лучше найти зону более уверенного приема или поискать другие цели. Не всегда стоит пытаться приблизиться к AP в надежде получить более стабильную связь. Иногда ты оказываешься ближе к источнику помех (микроволновке или другой AP на соседнем канале), а отраженный сигнал достаточной мощности ловится за углом или в совершенно неожиданном месте. Найти его поможет режим непрерывного измерения уровня сигнала в Wifi Analyzer.
Что дальше?
В следующей статье мы расскажем, как обойти некоторые ограничения, и займемся более продвинутыми атаками с помощью серьезных инструментов. Для продвинутых атак потребуется root, установленный набор консольных утилит (BusyBox), ручная доустановка не вошедших в BusyBox программ, собственно эмулятор терминала, USB-OTG (софтовый + кабель), внешние USB Wi-Fi адаптеры на определенных чипах, драйверы модулей беспроводной связи с поддержкой режима мониторинга (обязательно) и инжекта пакетов (желательно), патчи ядра, подготовленные дистрибутивы Linux, смонтированные в chroot, и побольше терпения.