Перехват рукопожатия wifi на андроид

Обновлено: 01.07.2024

В этой статье речь пойдет о том, как взломать Wi-Fi сеть с шифрованием WPA/WPA2 путем перехвата handshake. Но для начала теория.

Теория WPA/WPA2

WPA (или как иногда называют WPA v1) обычно использует алгоритм шифрования TKIP. TKIP был разработан для повышение шифрования WEP, не требующий изменения железа для работы. WPA2 в обязательном порядке использует алгоритм шифрования AES-CCMP, который более мощный и надежный по сравнению с TKIP.

WPA и WPA2 позволяют использовать либо EAS-bases аутентификацию (RADIUS Server “Enterprise”) или Pre-Shared Key (PSK) “Personal”-based аутентификацию.

Шифрования WPA/WPA2 PSK уязвимы к атакам по словарю. Для осуществления этой атаки, необходимо получить 4-way WPA handshake между wifi-клиентом и точкой доступа (АР), а также словарь содержащий парольную фразу.

WPA/WPA2 PSK работает следующим образом: он вытекает из ключа предварительной сессии, которая называется Pairwise Transient Key (PTK). PTK, в свою очередь использует Pre-Shared Key и пять других параметров — SSID, Authenticator Nounce (ANounce), Supplicant Nounce (SNounce), Authenticator MAC-address (MAC-адрес точки доступа) и Suppliant MAC-address (МАС-адрес wifi-клиента). Этот ключ в дальнейшем использует шифрование между точкой доступа (АР) и wifi-клиентом.

Злоумышленник, который в этот момент времени прослушивает эфир, может перехватить все пять параметров (см. предыдущий параграф). Единственной вещью, которой не владеет злодей это – Pre-Shared key. Давайте выясним, как создается Pre-Shared key.

Pre-Shared key получается/создается благодаря использованию парольной фразы WPA-PSK, которую отправляет пользователь, вместе с SSID. Комбинация этих двух параметров пересылается через Password Based Key Derivation Function (PBKDF2), которая выводит 256-bit’овый общий ключ.

В обычной/типичной WPA/WPA2 PSK атаке по словарю, злоумышленник будет использовать словарь с программой/инструментом. Программа будет выводить 256-bit’овый Pre-Shared Key для каждой парольной фразы и будет использовать ее с другими параметрами, которые были описаны в создании PTK. PTK будет использоваться для проверки Message Integrity Check (MIC) в одном из пакетов handshake. Если они совпадут, то парольная фраза в словаре будет верной, в противном случае наоборот (неверной). Именно так работает WPA/WPA2 PSK.

Практика

Важно: Не забываем о том, что нужно выбрать правильный wifi-клиент! Для этого внимательно смотрим питыподдерживаемых чипсетов. В качестве клиента я использую ALFA AWUS036H.

После того как куплено/выбрано “правильное” железо, приступаем к его настройке. Для начала выполним команду airmon-ng, чтобы узнать какие интерфейсы имеются в системе:

У меня ALFA определяется, как интерфейс wlan2. Переводим wifi-клиента в режим монитора:

Создался виртуальный интерфейс mon0, с ним мы и будем работать.

Теперь сканируем эфир с помощью airodump-ng:

Так как мы все “хорошие”, будем тестировать все на наших АР. В моем случае это TestWireless. Переключаемся на нее:

  • -w – название дамп-файла
  • -c – номер канала
  • –bssid – MAC-адрес точки доступа

Видим, что к АР подключен клиент. Это то, что нам нужно, потому знаем – перехват handshake возможен тогда и только тогда, когда к АР подключен клиент.

Теперь оставляем окно терминала где работает airodump-ng открытым. Открываем новое окно, в котором пишем:

  • -0 — деаутентификация
  • 3 — количество пакетов
  • -a — MAC-адрес точки доступа (АР)
  • -c — MAC-адрес клиента, к которому применяется деаутентификация

Когда команда выполнилась, переходим в первое окно терминала (airodump-ng). Красным выделен перехваченныйhandshake. У вас должно быть тоже самое.

Все, теперь можно работать с aircrack-ng.

Для того, чтобы расшифровать handshake нам нужен будет словарь. Помним о том, что если пароля в словаре не будет, то и расшифровать не получится. Очень часто “домашние” пользователи ставят численные пароли. Так что начинайте с них.

Итак, словарь создали или скачали. Теперь приступаем к расшифровке. Но сначала еще раз проверим, перехватили ли мы handshake. Для этого вводим след. команду:


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

Арсенал

Все, что потребуется для быстрого старта, — минимально подготовленный смартфон или планшет с ОС Android. Если не стоит задача взломать определенную и хорошо защищенную сеть, а хочется просто подключиться к закрытому вайфаю поблизости, этого будет достаточно.

Первичную разведку эфира можно проводить на устройствах с Android 2.3–4.4, а начиная с Android 5.0 появилась возможность выполнять простейшие WPS PIN атаки даже без рута. Просто ставишь пару приложений и нажимаешь кнопку «сделать как надо». Но самое интересное, как всегда, кроется в деталях.

Готовимся к атаке

Существует множество типовых атак на точки доступа Wi-Fi и специфических эксплоитов для определенных моделей с конкретными версиями прошивок. К типовым относятся методы подбора WPS PIN, вычисление ключей WEP и WPA2 по анализу перехваченных пакетов, а также принудительное переключение AP на более слабый алгоритм шифрования (WEP вместо WPA).

Особняком стоят методы социального инжиниринга: создание поддельных AP (идентичных атакуемой) для получения пароля от настоящей или же для проведения различных MitM-атак, а также деавторизация/глушение беспроводных клиентов и DoS как самостоятельные цели.

За редким исключением предустановленные в смартфон драйверы не позволяют даже запускать режим мониторинга, да и альтернативные драйверы для встроенных чипов есть не всегда. Поэтому для взлома чаще используют внешние 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

Аудит в WiFinspect

Дополняет WiFinspect другое популярное приложение — Wifi Analyzer. Оно умеет сканировать диапазоны 2,4 и 5 ГГц и работает без прав суперпользователя. Wifi Analyzer отображает кучу данных, включая номер канала выбранной AP, ее MAC-адрес, производителя (вычисляется по MAC), и так же детально расписывает типы шифрования. Для этого достаточно отметить в настройках «Показывать полный уровень безопасности». Минус у программы один — навязчивая реклама во всех окнах Wifi Analyzer. Ее можно убрать при помощи AdAway (но тогда все равно понадобится root) или купив платную версию.

Wifi Analyzer показывает AP и их параметры

Wifi Analyzer показывает AP и их параметры

Оба приложения отлично дополняют друг друга, работая практически на любом девайсе с Android 2.3 и новее. Они удобны для разведки эфира и предварительного выбора целей. Все найденные AP можно отсортировать по уровню сигнала и степени защиты. Так сразу определяются наиболее доступные AP.

В Google Play есть и опенсорсный WiFiAnalyzer. Он бесплатный, без рекламы, умеет фильтровать AP по типу защиты и даже пытается вычислить расстояние до них в метрах (как если бы они все вещали прямой наводкой). Однако в нем нет режима «охоты на лис» — непрерывного измерения уровня сигнала выбранной точки доступа. В остальном программа идентична.

Интересно, что некоторые владельцы просто скрывают SSID своей беспроводной сети, не утруждая себя настройкой авторизации. Другие настраивают строгую авторизацию в диапазоне 2,4 ГГц, но напрочь забывают о параллельно работающем 5 ГГц. Среди двухдиапазонных точек доступа встречаются и такие «полузакрытые».

Продолжение доступно только участникам

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Не секрет, что на Android можно запускать Aircrack-ng и Reaver. До недавних пор для этого нужен был внешний Wi-Fi-адаптер. Но оказывается, что WiFi-модули bcm4329 и bcm4330, которые стоят на многих популярных Android-девайсах (а это такие бестселлеры, как Nexus 7, Nexus One, Galaxy S1, Galaxy S2), тоже поддерживают Monitor Mode, но он отключен на уровне драйвера. Группа хакеров тут же занялась разработкой альтернативных версий драйверов.

1. Готовим орудия

2. Разведка

Во-первых, нужно получить информацию о потенциальной жертве. Тип шифрования можно узнать из стандартной WiFi-оснастки Android. В случае WPA нужно узнать, включен ли на точке WPS. Давай воспользуемся для этого утилитой wash, которая идет в комплекте с Reaver (заодно проверим, работает ли у нас Monitor Mode). Для этого запускаем только что установленный bcmon, выбираем Enable Monitor Mode и в появившемся меню Run wash (смотри скриншот). Утилита выводит только точки с включенным WPS и дополнительную информацию, из которой тебе нужно запомнить МАС-адрес.


3. Лобовой штурм

Приступаем непосредственно к взлому. Для этого в меню bcmon выбираем пункт меню Run bcmon terminal — это откроет окно терминала и произведет все предварительные настройки окружения. Нам остается только запустить одну из предоставляемых утилит. В случае WEP или WPA (без WPS) точки доступа воспользуемся известными утилитами из набора Aircrack-ng. Их использование ничем не отличается от использования в полноценной Linux-системе. WEP-ключи можно расшифровывать и на девайсе, а вот перехваченные WPA handshake рекомендую переносить на устройство помощнее.


4. Бьем ниже пояса

Если же у нас на точке доступа включен WPS, то будет разумно воспользоваться его уязвимостью. Но для эффективного взлома на базе WPS-уязвимости нам нужно хорошее качество связи с нашим устройством. Весьма кстати будет, например, походить вокруг да около с запущенным приложением, которое отображает в реальном времени качество сигнала (WifiAnalizer, например), и найти место с лучшим. Теперь можно запускать специализированную утилиту Reaver.

5. Накрываем всех вокруг

В список доступных приложений включена интересная утилита под названием besside-ng. Запустить ее можно как из bcmon-терминала, так и из меню bcmon. Утилита в автоматическом режиме пытается отловить WPA handshake со всех WPA-точек в зоне видимости и собрать достаточное количество пакетов для WEP-точек.

Используй перечисленные приемы только для пентеста своих Wi-Fi-устройств: точек доступа и роутеров.

image

В сети стала появляться информация о сниффере под любой рутованный смартфон или планшет на Андроиде (от 2.1), позволяющий ходить под чужими аккаунтами многих веб-сайтов, в том числе Facebook и Vkontakte в общественных сетях Wi-Fi.
Речь идет о программе DroidSheep.
О механизме ее работы и использовании поговорим подробнее.

Итак, что вообще делает программа?

Она перехватывает пакеты, ходящие в Wi-Fi сети, одним нажатием кнопки на Android-устройстве.

А причём тут пароли?

Как это произошло?

Когда Иннокентий использует Wi-Fi-сеть, его ноутбук или смартфон отправляет все данные, предназначенные для Facebook, по воздуху на беспроводной маршрутизатор кафе. «По воздуху» в нашем случае означает «видимые всеми», Вы можете прочитать все данные, передаваемые Иннокентием. Поскольку некоторые данные шифруются перед отправкой, пароль от Facebook вы прочитать не сможете, но чтобы Иннокентий не вводил свой пароль после каждого клика, Facebook посылает Иннокентию так называемый «идентификатор сессии» после входа в систему, которое Иннокентий посылает сайту при взаимодействии с ним. Как правило, только Иннокентий знает этот идентификатор, так как он получает его в зашифрованном виде. Но когда он использует Wi-Fi в кафе, он распространяет свой идентификатор сессии по wi-fi для всех. Вы принимаете это идентификатор сессии и используете его: facebook не может определить, если и Иннокентий, и Вы используете один идентификатор.

DroidSheep делает этот механизм простым в использовании, нужно просто запустить DroidSheep, нажать «Пуск» и подождать, пока кто-то начнет пользоваться одним из поддерживаемых веб-сайтов. «Прыгнуть» в чужую сессию можно лишь одним кликом по экрану. Вот и все.

Что нужно для запуска DroidSheep?

— Android-устройство версии старше 2.1
— Root-доступ
— DroidSheep (QR-код и ссылка на загрузку в конце статьи)

image

Какие сайты DroidSheep поддерживает по умолчанию?

Но есть ещё и «общий» режим! Просто включите его, и DroidSheep будет фиксировать все аккаунты в сети! Успешно протестирована с огромным количество уже поддерживаемых аккаунтов и многих других (даже с WordPress и Joomla должны работать!)

Запароленные Wi-Fi сети

Для защищенных WPA/WPA2 Wi-Fi-сетей программа использует DNS-Spoofing атаки.
ARP-Spoofing означает, что она заставляет все устройства в сети думать, что DroidSheep — маршрутизатор, и пропускает все данные через себя. Это может оказать существенное влияние на скорость работы сети, так что пользуйтесь с осторожностью.

Итак, как пользоваться?

Перед началом убедитесь, что ваш телефон поддерживает root, без него программа работать не будет!

Использование:

Убедитесь, что ваш телефон подключен к WiFi-сети, запустите DroidSheep и нажмите кнопку «Start». Теперь DroidSheep будет прослушивать сеансы. Как только он перехватил маркер сеанса, он покажет его как запись в списке.

image

Если вы перехватили хождение по нескольким сайтам, вы увидите список как на картинке. Аккаунты, определяемые DroidSheep по умолчаню окрашены в зеленый, перехваченные в общем режиме — в желтый.

В общем режиме появятся и не нужные вам сайты, типа рекламных, их можно добавить в черный список, чтобы не видеть их в программе. Для очистки всего черного списка перейдите в главное меню, нажмите меню и выберите «очистить черный список».

Вот и всё!
Как использовать программу (видео): droidsheep.de/?page_id=14

И последнее.
Быстро все подняли руку и сказали: «Я клянусь, что буду пользовать программу только для исследования работы протоколов сети»

Читайте также: