Содержание статьи
Еще не так давно для взлома ключа к беспроводной сети потребовалось бы следующее: откомпилировать и установить под Linux необходимый софт, отыскать редкий беспроводной адаптер на строго определенном чипсете и еще, как минимум, пропатчить для него драйвера, чтобы можно было инжектировать пакеты в сеть. Так ли это сложно сейчас?
Беспроводная азбука
Прежде чем начать, напомню несколько важных основ пентеста беспроводных сетей, чтобы освежить их в памяти для тех, кто с этой темой уже знаком, и ввести в курс дела тех, кто раньше с этим вопросом не сталкивался. Последним повезло больше всех, потому как подобрать пароль для беспроводной сети, при условии, что он вообще подбираемый, сейчас стало как никогда просто. Все упирается только в то количество времени, которое потребуется на это потратить.
Итак, беспроводные сети могут быть открытыми, к которым может подключиться любой желающий, и закрытыми, для подключения к которым необходимо ввести ключ. В закрытых беспроводных сетях по-прежнему, хотя и редко, используется защита WEP (Wired Equivalent Privacy), которая безнадежно устарела, и, в большинстве случаев, технология WPA/WPA2 (Wi-Fi Protected Access). Применение WEP — это своего рода приговор, потому что такая защита со 100% вероятностью взламывается из-за фундаментальных уязвимостей.
Ключ к WPA/WPA2, напротив, возможно подобрать с помощью брутфорса, причем успех напрямую зависит от того, есть ли используемый ключ в словаре для подбора или нет. Несмотря на концептуально разные подходы к взлому этих защит есть одно общее звено — для проведения атаки необходимо перехватить беспроводной трафик в сети. С этой задачей справляются специально заточенные для работы с Wi-Fi-снифферы, в том числе утилита airodump, которая является своего рода стандартом де-факто. Правда, просто запустить сниффер и сохранить в дамп зашифрованные данные из эфира недостаточно.
Обязательным требованием является перехват пакетов, которыми клиент обменивается с точкой доступа в момент подключения. В случае с WEP — это так называемые вектора инициализации IV, а в случае с WPA/WPA — последовательность «WPA Handshake». Только эти и другие пакеты, отвечающие за аутентификацию и поддержание соединения, передаются в эфир в открытом виде без шифрования.
Загвоздка заключается в том, что клиент авторизуется на точке доступа довольно редко, и этого момента в общем случае пришлось бы ждать очень долго. Однако если отправить в сеть специально составленный пакет деаунтетификации, то он с большой вероятностью отключит клиента от AP и вынудит его подключиться к ней вновь. Для этого есть специальные утилиты. Авторитетная aireplay — одна из них.
Тут надо сказать, что инжектировать фреймы возможно, если перевести беспроводной адаптер в так называемый режим мониторинга (monitor mode), а под виндой сделать это практически невозможно.
По этой причине и сложилось, что стандартной платформой для игр с Wi-Fi являются *nix-системы. Проще всего эксперименты даются с помощью небезызвестного Backtrack, в который изначально включено все необходимое. Причем для запуска потребуется лишь сделать из дистрибутива загрузочную флешку с помощью утилиты UNetbootin (unetbootin.sourceforge.net). Возвращаясь к теории: когда на руках есть дамп с перехваченными пакетами, в бой вступает утилита непосредственно для взлома ключа. Тут есть разные варианты, но среди прочих выделяется классическая тулза aircrack, которая использует несколько алгоритмов для взлома WEP, а также метод брутфорса для WPA/WPA2. Если все проходит хорошо, на выходе программы пентестер получает ключ для беспроводной сети. Примечательно, что все три утилиты airodump, aireplay и aircrack входят в один пакет утилит Aircrack-ng (aircrack-ng.org).
WI-FI cracker
Из всего этого вырисовывается вполне понятная схема для взлома ключа к беспроводной сети (для определенности, пусть она будет защищена WPA2). Предварительно беспроводной адаптер переводится в режим мониторинга. После этого запускается airodump, чтобы в целом изучить эфир и определить доступные сети. Далее в ход идет сниффер для перехвата данных беспроводных клиентов и строго определенной точки доступа (она указывается по MAC-адресу) на заданном канале, а в сеть с помощью aireplay отправляется deuthпакет, чтобы отключить от точки доступа какого-нибудь пользователя (опять же, по MAC'у). Как только сниффер сообщает о перехвате последовательности WPA Handshake, дамп сниффера скармливается крякеру aircrack, который в свою очередь пытается подобрать ключ по словарю. Все очень просто, но довольно муторно и не очень удобно.
Все утилиты консольные, поэтому постоянно приходится ковыряться с передаваемыми ключами для запуска, копировать туда-сюда нужные MAC-адреса, названия дампов. Перед атакой еще неплохо изменить свой собственный MAС с помощью тулзы macchanger, а чтобы отсоединить пользователя от точки доступа, тулзу aireplay зачастую приходится запускать несколько раз. И если раньше приходилось делать все вручную, то сейчас процесс можно без труда автоматизировать с помощью готовых решений.
- AUTOMATIC WPA HANDSHAKE CAPTURE (code.google.com/p/svtoolz). Это очень простой, написанный на Python'е скрипт, который ты легко мог бы набросать и сам. Все, что он делает — это последовательно выполняет те самые действия для получения WPA hanshake'а, которые я только что описал. Запускает одну программу с нужными параметрами, обрабатывает ее вывод, формирует ключи для запуска следующей утилиты и т.д. От пользователя требуется только указать название интерфейса (например, mon0), канал, MAC-адреса точки доступа и клиента, а на выходе получить dump-трафика с Handshake'ом.
- SPOONWEP/SPOONWPA (forums.remote-exploit.org). Эти две утилиты впервые появились в Backtrack3 и тут же стали популярными. Что легко понять: с этого момента для подбора ключа к беспроводной сети вообще пропала необходимость ковыряться в консоли. По сути, все, что позволяют делать SpoonWep/SpoonWpa — это удобно управлять тулзами из набора aircrack-ng с помощью графического интерфейса и выполнять часть действий автоматически. Но это ни в коем случае не отнимает необходимости понимать, что происходит во время атаки. Пользователю точно так же необходимо вручную указывать тот же самый канал, на котором работает точка доступа, правда, не в виде параметра для запуска приложения, а с помощью графического ползунка.
- GERIX WIFI CRACKER (forums.remote-exploit.org). Большое количество недоработок, которые оказались в SpoonWep/SpoonWpa, заставила составителей Backtrack'а отказаться от них в четвертом релизе дистрибутива. Но свято место, как известно, пусто не бывает, и на замену пришла замечательная тулза Gerix Wifi cracker. Это не автоматический взломщик сети, но очень профессиональный помощник, упрощающий многие моменты. Что нужно делать самому пользователю: на вкладке «Configuration» вручную выбрать беспроводной интерфейс (не забыв перевести его в режим мониторинга с помощью специальной опции) и далее в списке, где приведен вывод сниффера, указать беспроводную сеть для взлома. После этого, в общем-то, остается нажать кнопки «Start Sniffing and Logging» и «Perform a test of injection AP» на вкладках WEP или WPA, в зависимости от используемой в сети защиты. Еще одна вкладка — Fake AP — позволяет мигом создать на нужном канале фейковую точку доступа — это фронтед для консольной утилиты airbase-ng.
Властелин беспроводных устройств
Важной составляющей любой атаки, как уже было сказано, является отключение беспроводного клиента от точки доступа, чтобы он заново подконнектился и обменялся пакетами авторизации. Утилиты aireplayng, mdk3, Void11 — все, по сути, предназначены для одного и того же — отправки в беспроводную сеть пакета деаутентификации, чтобы разорвать коннект между клиентом и AP. Они написаны несколько лет назад, и до сих пор активно используются. Концептуально новая разработка была представлена в начале года в Вашингтоне на конференции Shmoocon — это тулза Airdrop-ng. Что она позволяет сделать? Сказать по правде — почувствовать себя маленьким властелином. Дело тут не ограничивается только отключением клиента от точки доступа. Нет. Вместо этого ты можешь полностью управлять подключениями пользователей, разрешая или полностью запрещая им подключения к точке доступа. Политика задается с помощью правил, вроде тех, которые используются в файер воле.
Причем это могут быть очень гибкие правила, позволяющие реализовать все что угодно. Начиная от того, что разом отключить всех пользователей от любых точек доступа (и препятствования их подключению вновь), и заканчивая сложными правилами, когда коннект разрешается только для строго определенной точки доступа, но и то только для конкретных клиентов (скажем, для ноутбуков компании Dell). Это очень круто.
Правила записываются в текстовом виде в специальный файл и считываются программой последовательно от первого до последнего. Каждое правило состоит из трех полей: action/ap/client. С помощью поля action правила разделяются на разрешающие (a — allow) и запрещающие (d — deny). Параметры «ap» и «client» указывают соответственно на точку доступа и клиентов, к которым это правило применяется. Общий синтаксис такой:
a(allow)/bssid mac(or 'any')|client mac(or 'any')
или
d(deny)/bssid mac(or 'any')|client mac(or 'any')
По умолчанию Airdrop-ng пропускает весь беспроводной трафик, что не сильно весело.
Возьмем для примера простое правило: d/00-11-22-33-44-55|any. Оно будет запрещать любым (any) клиентам подключаться к точке доступа, у которой MAC-адрес — 00:11:22:33:44:55. Вместо целого MAC'а можно было указать только первые три составляющие, которые, как известно, закрепляются за конкретными производителями. Более того, можно даже задать название вендора в строковом виде (d/Linksys|any): программа в этом случае сама заглянет в базу Company OUI, где найдет соответствие «производитель — MAC-адрес» и подставит нужное значение. Те же самые правила относятся и клиенту. К примеру, так можно ограничить возможность Wi-Fi для всей продукции Apple: d/any|Apple. Еще одна особенность: в параметре client может быть указан список из разных MAC-адресов, например, 11:22:33:44:55:66,00: 11:22:33:44:55,55:44:33:22:11:0. Теперь посмотрим, как это выглядит на практике.
Как пользоваться AIRDROP-NG
Airdrop-ng написан на Python и требует для работы установленный airodump-ng и библиотеку Lorcon 1. Но если использовать Backtrack, то все необходимое и сама утилита без проблем установится из стандартного репозитория:
apt-get update
apt-get install airdrop-ng
Схема использования мало чем отличается от знакомых нам атак:
1) Первым делом надо перевести Wi-Fi-карту в режим мониторинга:
airmon-ng start wlan0
2) Далее запустить беспроводный сниффер airodump, сконфигурировав его вывод в .csv-файл:
airodump-ng -w dumpfile --output-format csv mon0
3) После этого создаем файл с правилами для AirDrop. Возьмем для примера описанное выше правило, запрещающее соединения с AP, у которой mac = 00-11-22-3344-55, и запишем его в файл rules:
nano rules
d/00-11-22-33-44-55|any
4) Все, осталось запустить сам airdrop-ng, прилинковавшись к csv-выводу сниффера и конфигу с правилами:
airdrop-ng -i mon0 -t dumpfile.csv -r rules
Утилита начнет свою работу, выводя сообщения об отправленных в сеть пакетах. Если помимо прочего указать ключ "-b", дополнительно будет выводиться подробный отчет. В результате на консоль будут выводиться сообщения, каким клиентам и где было разрешено или запрещено соединение. Как я уже сказал, условия могут быть намного более гибкими, это достигается с помощью каскада правил:
#Allow-правило
a/00-11-22-33-44-55|55-44-33-22-11-00
#Deny-правило
d/00-11-22-33-44-55|any
Таким образом, мы разрешаем доступ к точке клиенту с MAC-адресом 55-44-33-22-11-00, в то время как для всех остальных соединение по-прежнему останется недоступным. Получается, Airdrop-ng можно использовать как простейшую систему контроля доступа :). И это без какоголибо доступа к админке точки!
EVIL TWINS V2.0
Опытные умы, наверное, уже догадались, какие возможности предоставляет Airdrop-ng в плане проведения MITMатаки. Раз мы можем влиять на то, с какими AP имеет возможность работать беспроводной клиент, никто не мешает направлять его подключения к нашей особенной точке доступа, а на ней снифать весь проходящий трафик.
Человек видит на ноутбуке сеть «Free Wi-Fi», подключается к ней и никогда не подозревает, что это вовсе не точка доступа заведения, в котором он находится, а подставная AP-шка, развернутая на ноутбуке с соседнего стола. Атака Evil Twins (или Rogue AP) известна еще с 2004 года и основывается на небезопасном поведении беспроводных клиентов. В людном месте с помощью специального софта поднимается точка доступа, которая отвечает на все probe-запросы, в которых клиент просит отозваться точки доступа с указанными параметрами. Фальшивой точке, как правило, устанавливается ESSID той беспроводной сети, которая легитимно развернута внутри помещения, поэтому клиент, ничего не подозревая, подключается к ней. Раньше многое зависело от уровня сигнала, который ты можешь предложить: чем он выше, тем больше шансов, что клиент подключится именно к твоей точке доступа. Сейчас же, когда появился способ насильно подключить клиента к своей AP, эта атака выводится на совершенно новый уровень. Для последнего потребуется Airdrop-ng и два правила, запрещающие соединение с любыми AP, кроме фейковой (пусть у нее IP будет равен 00:aa:bb:cc:dd:ee):
a/00:aa:bb:cc:dd:ee|any
d/any|any
Далее дело за традиционным софтом для проведения атаки Rogue AP. Методика впервые была реализована в тулзе KARMA еще в 2004 году. Позже проект был реализован как модуль Metasploit, и получившийся Karmetasploit (bit.ly/Karmetasploit) сейчас является одним из наиболее удачных решений для проведений атаки. Подробности использования доступны на сайте проекта. Пригодится также опыт разработчиков Airdrop-ng, который можно почерпнуть из их презентации на Shmoocon (www.shmoocon.org/2010/slides/wifibomb.zip). Хотя есть и другой, более простой и изящный способ — воспользоваться специальным девайсом, о котором ты можешь прочитать во врезке. Но он по понятным причинам и более дорогой.
Комплекты для взлома WI-FI для ленивых
Дистрибутив Backtrack –это, по большому счету, готовый сборник софта для тех, кто не хочет париться с поиском утилит для пентеста. Но если говорить о взломе Wi-Fi, то сборники бывают не только программ, но и оборудования.
- В MegaNews прошлого номера мы упоминали о готовых комплектах девайсов для взлома Wi-Fi, которые активно продаются в Китае под лозунгом «Интернет должен быть бесплатен». Собственно, сам комплект состоит из дешевой узконаправленной антенны, Wi-Fi USB-модуля, к которому можно подключить антенну, диска с записанным Backtrack’ом и подробной иллюстрированной инструкции о том, как подобрать ключ с помощью утилит Spoonwep/Spoonwpa. Собрать такой комплект ничего не стоит самому. Главное — приобрести беспроводный модуль; дешевле всего он обойдется, если покупать на известной китайской онлайн-барахолке dealextreme.com. Что касается антенны, то ее вообще можно сделать самому по схемам с сайтов nag.ru и lan23.ru.
- Не в пример Китаю, в Штатах продается девайс, который намного более технологичен — это WiFi Pineapple (WiFi Pineapple). В двух словах — это хардварная реализация атаки Rogue AP. Внутри небольшого игрушечного ананаса размещается точка доступа с хитрым софтом, который «заманивает» клиентов и снимает трафик. Автономная работа «ананаса» достигается за счет 4-х пальчиковых батареек. Стоимость такой игрушки составляет $144, но разработчиками только приветствуется, если люди собирают девайс сами. В качестве основы взята дешевая точка доступа Fon 2100 (www.fon.com) с беспроводной картой на чипсете Atheros, держатель для батареек из онлайнмагазина радиотехники (bit.ly/onoffswitch), а в качестве ПО используется специальная версия утилиты KARMA — Jasager (www.digininja.org/jasager). На сайте www.hak5.org/w/index.php/Jasager даже приведена подробная инструкция по сборке и настройке.
Какой беспроводной адаптер нужен для взлома?
Перед тем, как экспериментировать, нужно убедиться, что беспроводной адаптер может работать в режиме мониторинга. Лучший способ — свериться со списком поддерживаемого оборудования на сайте проекта Aircrack-ng (bit.ly/wifi_adapter_list). Если же встанет вопрос о том, какой беспроводный модуль купить, то начать можно с любого адаптера на чипсете RTL8187L. USB’шные донглы легко найти в интернете за $20.