"Отважные герои всегда идут в обход": атакуем клиентские устройства на Wi-Fi сетях. Часть 1.

"Отважные герои всегда идут в обход": атакуем клиентские устройства на Wi-Fi сетях. Часть 1.

Даже если ИТ инфраструктура регулярно проверяется на предмет установки несанкционированных устройств, ключ к закрытой с помощью WPA-PSK 802.11 сети невозможно подобрать атакой по словарю, либо же применена конфигурация WPA-802.1х (WPA-Industry) с использовнием безопасных типов EAP (например, EAP-TLS или EAP-FAST) и частой сменой ключей, всё равно остается возможность успешных "латеральных" беспроводных атак. И наиболее угрожающим типом подобных "атак в обход" являются атаки против неассоциированных клиентских хостов.

Андрей Владимиров (andrew arhont.com), соавтор книг  Wi-фу: "боевые" приемы взлома и защиты беспроводных сетей и Hacking Exposed Cisco Networks (Hacking Exposed)

Принятие стандарта безопасности 802.11i и постепенное распространение сетей на основе WPA-сертифицированных устройств придало многим уверенность в высокой степени защищенности их беспроводной инфраструктуры. И действительно, при продуманной и тщательной настройке безопасности  WPA-защищенной сети, её взлом "в лоб" практически невозможен, если не считать взломом атаки по отказу в обслуживании (DoS) на первом и втором уровнях OSI модели. Тем не менее, расслабляться не следует. Даже если ИТ инфраструктура регулярно проверяется на предмет установки несанкционированных устройств, ключ к закрытой с помощью WPA-PSK 802.11 сети невозможно подобрать атакой по словарю, либо же применена конфигурация WPA-802.1х (WPA-Industry) с использовнием безопасных типов EAP (например, EAP-TLS или EAP-FAST) и частой сменой ключей, всё равно остается возможность успешных "латеральных" беспроводных атак. И наиболее угрожающим типом подобных "атак в обход" являются атаки против неассоциированных клиентских хостов.

Общая идея данного подхода очень проста и заключается в следующем:

  1. Находим неассоциированное клиентское устройство, либо используем затопление сети фреймами деассоциации или деаутентификации для его получения.
  2. Эмулируем точку доступа специфически для подсоединения этого хоста.
  3. Выдаем ему IP адрес, а также IP адреса фальшивых шлюза и DNS сервера через DHCP.
  4. Атакуем устройство (возможные вектора атак описаны далее во второй части статьи).
  5. Если это необходимо, и удаленный доступ к устройству был успешно получен, "отпускаем" хост обратно на "родную" беспроводную сеть, предварительно запустив на нем трояна.

В 2007-ом году все выпускаемые лаптопы и ноутбуки будут иметь встроенную поддержку Wi-Fi. Та же судьба вскоре ждет большинство, если не все наладонники и смартфоны. Да и сейчас очень многие клиентские устройства (вспомним Интел Центрино) имеют такую поддержку включенной и постоянно ищущей сеть для ассоциации, часто - без ведома их владельцев. Данный факт игнорируем большинством системных администраторов организаций и компаний, и даже профессионалы в сфере ИТ безопасности подчастую ищут исключительно несанкционированные точки доступа и ад-хок сети, не уделяя достаточное внимание этим "скучным" Probe Request фреймам от "потерянных" клиентов. Казалось бы, "отлов" таких клиентских хостов атакующими до невероятности прост. Но есть ряд практических ньюансов, которые необходимо знать кракеру или пентестеру для успешного осуществления подобного рода атак. Именно рассмотрению этих ньюансов и посвящена данная статья.

Для начала нам необходимо знать, согласно какому алгоритму клиентские устройства автоматически ищут сети для подсоединения. Будут ли они ассоциироваться с любой обнаруженной 802.11 сетью с достаточно мощным сигналом ? А если таких сетей несколько ? На чем будет основан их выбор ? Kaк насчет сетей с "закрытым" ESSID и сетей, защищенных с помощью WEP или WPA ? Ответы на эти вопросы зависят как от операционной системы клиентского хоста, так и от испольуемой им беспроводной аппаратной части, её драйверов и пользовательских настроек. Здесь мы рассмотрим две самые распространенные операционные системы под которыми работает большинство подобных устройств - Майкрософт Windows и MacOS X.

"Алгоритм беспроводной самонастройки" (АБС, Wireless Auto Configuration Algorithm) в Windows XP и Windows Server 2003.

Данный алгоритм оперирует с двумя списками 802.11 сетей - Списком Доступных Сетей (СДС) и Списком Предпочитаемых Сетей (СПС). СДС представляет из себя список сетей, ответивших на широковещательные Probe Request фреймы при последнем активном скане. СПС есть список сетей, к которым было установлено полноценное соединение в прошлом. Последние сети, с которыми было ассоциировано устройство, идут в данном списке первыми. Описание сети в обоих списках содержит её ESSID, канал и метод шифрования - "открытый текст", WEP или WPA. Итак, как же используются эти списки в процессе работы АБС ?

  1. Клиентское устройство составляет СДС путем посылки широковещательных Probe Request фреймов с пустым полем ESSID по одному на каждый из используемых 802.11 каналов и параллельной обработки ответов на эти фреймы.
  2. Если обнаруживаются сети, находящиеся в СПС, то происходит ассоциация с такими сетями в порядке их расположения в этом списке. То есть клиентское устройство ассоциируется с самой верхней сетью СПС, которая присутствует в СДС.
  3. Если таких сетей не обнаруживается, или же успешной ассоциации с ними не произошло по причине различия в 802.11 стандартах или проблем аутентификации, АБС "заходит на второй круг", посылая Probe Request фреймы специфически для поиска сетей, перечисленных в СПС. На практике это означает, что данные фреймы посылаются на каналы СПС сетей и содержат их ESSID. При этом, отсылка этих фреймов от содержания СДС абсолютно не зависит. Смысл наличия "второго круга" АБС заключается в поиске сетей с "закрытым" ESSID.
  4. Предположим, что подходящих Infrastructure сетей всё равно не найдено. Следующим этапом поиска является нахождение ад-хок сетей. Для этого проводится сопоставление ад-хок сетей СДС и СПС.
  5. Если в СПС имеется хотя бы одна ад-хок сеть, но в СДС она не найдена, АБС устанавливает клиентское устройство в режим ад-хок и присваивает беспроводному интерфейсу IP адрес, принадлежащий к 169.254.0.0/16 диапазону (RFC 3330). Таким образом, хост становится первым узлом потенциальной новой ад-хок сети и алгоритм заканчивает свою работу.
  6. Если же ад-хок сетей в СПС нет, то АБС проверяет флаг "Подсоединиться к Непредпочитаемым Сетям" ("Connect To Nonpreferred Networks"). Если этот флаг равен единице, то клиентское устройство будет пытаться ассоциироваться с каждой сетью СДС в порядке их очередности в списке. К сожалению для атакующих, по умолчанию данный флаг равен нулю.
  7. Если вышеупомянутый флаг не включен пользователем, то беспроводная карточка "запарковывается" как клиент с установленным псевдослучайным 32-хзначным ESSID. В таком состоянии она функционирует 60 секунд, после чего алгоритм поиска сетей перезапускается. Те из читателей, кто занимался вардрайвингом, не раз встречали и без труда узнают такие "странные и длинные" Probe Request ESSID значения, время от времени обнаруживаемые Кисметом или другим пассивным 802.11 сканнером.    

Таким образом, установка атакующим программной точки доступа с произвольным ESSID имеет мало шансов на успех даже при большой мощности её сигнала. "Мы пойдем другим путем."(С)  

Атаки против АБС в Windows XP и Windows Server 2003.

В первую очередь рассмотрим очевидные слабости данного алгоритма. В первую очередь, во время "второго раунда" АБС (пункт 3 выше), клиентское устройство фактически раскрывает содержание СПС. Представим себе ситуацию, когда такой хост находится вне досягаемости его "родной" сети. Например, корпоративный лаптоп взят сотрудником на дом или в коммандировку (и используется в аэропорту, самолете, гостинице и так далее). Для обнаружившего такой лаптоп атакующего не составит особого труда определить первую сеть в СПС по ESSID посылаемых устройством Probe Request фреймов, и установить именно это значение ESSID на своей точке доступа. То же самое относится и к поиску ад-хок сетей СПС. Если первая сеть СПС защищена и требует WEP или WPA ключ для подключения, идем далее по списку и ищем в нем открытую сеть, включая ад-хок WLANы. Вероятность нахождения такой сети достаточно велика. К примеру, большинство Wi-Fi хотспотов используют методы защиты беспроводной передачи данных на более высоких уровнях OSI модели, обычно на седьмом (можно также вспомнить и NoCat шлюз, иногда используемый в сообществах любителей Wi-Fi). Подключение к таким сетям оставит описание "незащищенной" (на 2-ом уровне) сети в СПС, которым без проблем может воспользоваться атакующий. Или, ещё один пример. Два пользователя устанавливают ад-хок соединение на несколько минут для передачи единственного файла. Вероятность того, что они будут защищать подобное соединение используя WEP или WPA-PSK достаточно низка. И действительно, кто обнаружит и успеет атаковать это соединение в течении двух - трех минут, особенно если передаваемый файл не имеет никакой конфиденциальности? Однако, в СПС обоих устройств останется описание незащищенной ад-хок сети!

Подобное описание ведет ко второй слабости. При отсутствии такой ад-хок сети поблизости (крайне вероятный сценарий, учитывая то, что ад-хок соединения обычно ставятся на короткие промежутки времени и часто - с новым ESSID каждый раз), Windows клиент установится в постоянном режиме работы как ад-хок узел, ожидающий других клиентов (пункт 5 выше). Так почему бы не стать таким клиентом, взяв себе один из RFC 3330 адресов, и не провести широковещательный пинг или послать ARP запросы (или же просто "посниффать" эфир на предмет NetBIOS пакетов) для обнаружения IP адреса жертвы и проведения дальнейших атак ? Причём, для подобного подключения не требуется никакого взаимодействия со стороны пользователя. Оно является полностью автоматическим.

Наконец, при отсутствии незащищенных и ад-хок сетей в СПС, и включенного флага "Подсоединиться к Непредпочитаемым Сетям", наш алгоритм достигнет установки клиентской карточки в "режим ожидания" с посылкой Probe Request фреймов с длинным псевдослучайным ESSID (пункт 7 выше). Проблема в том, что эти "загадочные" ESSID значения являются вполне "рабочими". То есть, достаточно установить по соседству точку доступа с таким ESSID, и клиент благополучно на нее "клюнет", чтобы получить IP адрес через DHCP и подвергнуться дальнейшим атакам. Следует сказать, что данная проблема уже устранена в Longhorn, но до тотального перехода на эту операционную систему ещё далеко. А теперь самое интересное: так как сеть с длинным псевдослучайным ESSID отсутствует в СПС, подсоединение к такой сети не только не требует никакого взаимодействия со стороны атакуемого пользователя, но даже и не будет показано как существующее индикатором беспроводной связи Windows XP. Данный индикатор будет говорить, что устройство не ассоциировано с какой-либо Wi-Fi сетью, и только контрольная панель установки сетевых опций Windows покажет наличие соединения и присвоенного IP адреса. Чтобы охладить пыл беспроводных кракеров, следует упомянуть, что последние версии драйверов 802.11a/b/g карточек с Atheros чипсетом хоть и отсылают Probe Request фреймы с псевдослучайными ESSID, но не поддерживают автоматическое соединение с точками доступа, настроенными с такими ESSID значениями.     

Что же делать атакующему если, как было сейчас упомянуто, автоматическая ассоциация используя псевдослучайные ESSID невозможна, а СПС не содержит незащищенных на втором уровне сетей ? Если сети, к которым подсоединялось атакуемое устройство, защищены с помощью неподбираемого по словарю WPA-PSK либо WPA-802.1х с использованием EAP-TLS, то на данный момент перспектив успешного взлома не видно. Если по крайней мере одна такая сеть была защищена с помощью WPA-802.1х с использованием EAP-TТLS или EAP-PEAP, то существует возможность проведения атак на данные протоколы согласно алгоритмам, описанным в презентации небезызвестной хак-группы Shmoo "Тhe Radical Realm of Radius, 802.1x, and You" (вы можете загрузить эту замечательную презентацию с http://www.layerone.info/2005/presentations/Radical%20Realm%20of%20RADIUS.pdf). В то время как в задачу данной статьи не входит описание атак против EAP-TТLS и EAP-PEAP, предложенных в данной презентации, следует отметить, что рассматриваемый нами случай охоты (а вернее "рыбалки") на клиентские устройства идеален для проведения таких Shmoo атак, как PAP-PULL и PAP-PEEK. Почему? В первую очередь из-за того, что атакующему не мешает легитимная точка доступа и нет никакой нужды в проведении постоянных затоплений фреймами деассоциации или деаутентификации, поскольку атакуемое клиентское устройство по определению ни с чем не ассоциированно! Последний момент значительно облегчает проведение этих атак с Windows платформ. Впридачу, подобного рода атаки весьма "шумные", а в нашем случае атакуемые клиентские устройства находятся вне пределов досягаемости корпоративной системы обнаружения несанкционированного беспроводного доступа (wIDS). А везучий кракер может напороться и на клиентский хост, содержащий в СПС сеть, защищенную устаревшим EAP-MD5. Для успешного присоединения такого устройства достаточно поднять hostapd демон, приходящий с HostAP драйвером Jouni Malinen'a для карточек с Prism 2 - 3 чипсетом, при этом включив его ограниченную RADIUS-функциональность с автоматической аутентификацией суппликантов вне зависимости от присылаемых ими пакетов квитирования. Эта классическая атака против EAP-MD5 была детально описана нами в "Wi-Фу". 

Говоря об устаревших механизмах защиты 802.11 сетей, невозможно не упомянуть избитый всеми WEP. И атаки на него могут быть применены и против отдельных клиентских устройств, сети в СПС которых "защищены" с помощью WEPа. Если все ад-хок сети в СПС имеют WEP в своих установках, то и произвольная ад-хок конфигурация с RFC 3330 адресом, как описано в пункте 5 выше, будет использовать WEP. Проблема в том, что такой ад-хок узел не будет "соблюдать тишину" - достаточно вспомнить хотя бы отсылку NetBIOS HELLO пакетов каждые 2 секунды. Соответственно, подобного рода трафик может быть успешно утилизирован для взлома WEP ключа различными методами, от простого перебора по словарю с помощью WepAttack до акселерации взлома путем иньекции пакетов используя Christopher Devine's aireplay (модифицированная атака ложной аутентификации либо интерактивная реиньекция пакетов, с помощью которых можно заставить одиночный ад-хок клиент послать зашифрованный ARP пакет для последующей ARP реиньекции).

Ещё более интересный пример - клиенты с псевдослучайным ESSID (пункт 7) и WEPом, которые "возникают" в тех случаях, когда все сети, перечисленные в СПС, являются защищенными. Сам факт того, что при наличии в этом списке и WPA-защищенных сетей, всё равно используется  WEP - это уже уязвимость. Но, более того, так как установки подобной сети нигде не определены и "самоконфигурируются" без участия пользователя, атакующая точка доступа способна навязать таким клиентам небезопасный метод 802.11 аутентификации с использованием распределенного WEP ключа. Навязывая этот метод, кракер может послать клиентскому устройству challenge строку с известным текстом и получить обратно её же, заXORенную с частью RC4 потока. Таким образом, заXORив полученное с первоначальным текстом, атакующий узнает 144 байта RC4 потока для заданного вектора инициализации (IV). У этой атаки много возможных применений. В частности:

  • можно посылать всё новые и новые challenge запросы, пока не откроется поток RC4 шифра для всех векторов инициализации 24-битного WEP IV пространства. Это громоздко и может занять значительное количество времени 
  • можно атаковать полученный ответ перебором по словарю испольуя WepAttack и сходные утилиты
  • можно использовать известные 144 байта потока для реиньекции пакетов к клиентскому устройству с помощью старого доброго WepWedgie Антона Рэйджера. Удачная реиньекция заставит атакуемый хост послать зашифрованный ARP пакет, который легко перехватить и использовать с aireplay.

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

В следующей части статьи мы обсудим атаки на клиентские Wi-Fi устройства, работающие под МacOS Х, а также имеющиеся Linux - имплементации, дальнейшие возможности и методы защиты от подобных атак. 

Курс Защита беспроводных сетей читается ведущими экспертами в области беспроводного нападения и защиты, и охватывает последние разработки в области безопасности стандартов 802.11a/b/g, включая новые беспроводные протоколы и стандарты безопасности, а также продвинутые методы нападения и взлома беспроводных сетей, используемые как профессиональными аудиторами по безопасности, так и хакерами. Oбьясняются нестандартные методики защиты беспроводных локальных сетей и методы физического нахождения нападающего. Курс также обеспечивает интенсивное введение в работу с 802.11 сетями и охватывает аспекты управления беспроводной защиты, такие как разработку беспроводной политики безопасности.

 

Антивирус для мозга!

Лечим цифровую неграмотность без побочных эффектов

Активируйте защиту — подпишитесь