Уязвимость в протоколе Wi-Fi Protected Setup

Discussion in 'Беспроводные технологии/Wi-Fi/Wardriving' started by gpuhash, 30 Dec 2011.

  1. 4pips

    4pips Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    529
    Likes Received:
    1,421
    Reputations:
    40
    4381291 в ривер, а 8-ю цифру он сам автоматически подставит.
     
    1. binarymaster

      binarymaster Elder - Старейшина

      Joined:
      11 Dec 2010
      Messages:
      4,717
      Likes Received:
      10,195
      Reputations:
      126
      Давно читал этот пост на хабре, интересная пища для размышления. Но решения так и не нашёл :)
       
      1. Algierd

        Algierd Member

        Joined:
        21 Sep 2013
        Messages:
        405
        Likes Received:
        16
        Reputations:
        0
        Роутер ZTE CC:7B:35:15:F5:78 на пине 04819981 ривер подвис на 99.99%. Попробовал второй раз запустить атаку прогнал все 11 тысяч пинов и выдал ошибку восстановления wpa-ключа. Есть ли какие-то варианты в этом случае? Хотел было прогнать с помощью bully, но тне смог им подключится к точке доступа. Как им правильно пользоватся?
         
        1. SlNik

          SlNik Active Member

          Joined:
          7 Feb 2014
          Messages:
          322
          Likes Received:
          136
          Reputations:
          1
          Попробуй прогнать через ривер 1.3
          reaver-1.3 -i mon0 -b CC:7B:35:15:F5:78 -vv
          bully далеко не ко всем точкам подключается.
           
          1. Algierd

            Algierd Member

            Joined:
            21 Sep 2013
            Messages:
            405
            Likes Received:
            16
            Reputations:
            0
            Попробовал. Ривером 1.3 перебрать больше 1-2% так и не удалось на этой ТД. Пины вроде перебираются, но идут Warning: Receive Timeout occurred, потом была надпись Warning: Last message not processed properly reverting state to previous message. Warning: out of order received re-transmitting last message. В итоге перебор пинов остановился и стали бежать постоянные Warning: Receive Timeout occurred. С bully так толком не разобрался, пробовал 2 скрипта к нему из wifislax, но они не смогли подключится и начать перебор выдавая error. При том, что уровень сигнала там отличный -55-57dBm... Жаль терять этот роутер, может есть какие-то ещё варианты действий?
             
            #2185 Algierd, 1 Dec 2014
            Last edited: 1 Dec 2014
            1. Vikhedgehog

              Vikhedgehog Elder - Старейшина

              Joined:
              24 Jul 2013
              Messages:
              367
              Likes Received:
              162
              Reputations:
              19
              Добрый день,

              Хочу сообщить, что в WPS нашли новую дыру, однако это касается только устройств с чипсетом broadcom. Такие встроены в роутеры asus на сколько знаю :) Есть предположения, что уязвимы и другие точки доступа с другими чипсетами в первые секунды после загрузки системы.
              Источник: http://www.slideshare.net/0xcite/offline-bruteforce-attack-on-wifi-protected-setup

              Даже есть какой-то алгоритм, ток я ничего не понял)
              Code:
              int rand_r( unsigned int *seed ) { unsigned int s=*seed; unsigned int uret; s = (s * 1103515245) + 12345; // permutate seed uret = s & 0xffe00000;// Only use top 11 bits s = (s * 1103515245) + 12345; // permutate seed uret += (s & 0xfffc0000) >> 11;// Only use top 14 bits s = (s * 1103515245) + 12345; // permutate seed uret += (s & 0xfe000000) >> (11+14);// Only use top 7 bits retval = (int)(uret & RAND_MAX); *seed = s; return retval; }
               
              #2186 Vikhedgehog, 4 Dec 2014
              Last edited: 4 Dec 2014
              dopetik, 4Fun, user100 and 3 others like this.
              1. binarymaster

                binarymaster Elder - Старейшина

                Joined:
                11 Dec 2010
                Messages:
                4,717
                Likes Received:
                10,195
                Reputations:
                126
                Это алгоритм ГПСЧ из какого-то роутера какого-то производителя :D
                За ссылку спасибо, идея действительно очень интересная!

                Более менее простым языком суть описана на слайде 15:
                1. Получаем пакет M3 от точки доступа, подбирая 1 пин
                2. Считываем значение Nonce из пакета M1
                3. Брутфорсим состояние ГПСЧ
                4. Вычисляем значения E-S1 и E-S2, используя полученное состояние ГПСЧ
                5. Дешифруем E-Hash1 и E-Hash2
                6. Брутфорсим первую и вторую часть пина
                7. ...
                8. PROFIT!!!
                 
                4Fun likes this.
                1. Vikhedgehog

                  Vikhedgehog Elder - Старейшина

                  Joined:
                  24 Jul 2013
                  Messages:
                  367
                  Likes Received:
                  162
                  Reputations:
                  19
                  Решил попробовать разобраться. Проверил пин код 12345670 на точке асус, одновременно перехватывая трафик с wireshark, выбрал пакет М1, значение Enrollee Nonce: 6b:47:74:67:d0:1e:a0:62:e8:a7:f3:7b:df:61:eb:f5

                  В М3 - Enrollee hash 1: 09:e7:39:23:0c:90:b7:84:45:cd:32:88:b8:71:ef:eb:6a:af:de:bd:36:57:5d:64:37:46:90:be:f9:2c:df:51

                  Enrollee hash 2: 9d:60:c2:01:5e:00:52:33:66:65:3c:3d:20:5a:cc:be:d5:ed:59:ea:5c:2f:a1:c4:96:c3:65:bf:65:a7:68:a1

                  С состоянием ГПСЧ чего-то не понял как его вычислять по этой формуле на практике, может кто нибудь разобрался? Вроде бы выше упомянутый алгоритм един для всех устройств на чипсете broadcom.
                   
                  #2188 Vikhedgehog, 4 Dec 2014
                  Last edited: 4 Dec 2014
                  1. kosmaty

                    kosmaty Elder - Старейшина

                    Joined:
                    26 Sep 2011
                    Messages:
                    292
                    Likes Received:
                    38
                    Reputations:
                    27
                    Ну, с переводом разобрались, а технически как это проделать?
                    1. Брутим ГПСЧ - как/чем?
                    2. Вычисляем значения E-S1/E-S2 - как/чем?
                    3. Дишифровка хешей - как/чем?

                    Остальное уже более-менее понятно, но до него еще надо дойти. Может кто-то толково объяснить, какими инструментами выполнить эти вычисления?
                     
                    1. binarymaster

                      binarymaster Elder - Старейшина

                      Joined:
                      11 Dec 2010
                      Messages:
                      4,717
                      Likes Received:
                      10,195
                      Reputations:
                      126
                      Здесь во-первых надо определиться с алгоритмом ГПСЧ, он может быть разным. Под брутом состояния, как я понял, имеется ввиду получение той же последовательности случайных чисел, что сгенерировал роутер для значения Nonce. Когда нам удалось получить ту же цепочку, мы знаем состояние генератора.

                      Здесь необходимо обратиться к документации протокола WPS, в котором есть функции вычисления. В этих же функциях будет использоваться наш ГПСЧ с нужным состоянием.

                      Я полагаю, готовых инструментов пока нет.

                      Если прикинуть, нужен будет инструмент, состоящий из двух модулей:
                      1. Сетевой модуль (получатель/парсер пакетов)
                      2. Криптографический модуль (генератор/брутфорсер)

                      Может быть кто-то осилит написание сего на питоне, будем надеяться. :rolleyes:
                       
                      dopetik, 4Fun, kosmaty and 1 other person like this.
                      1. TOX1C

                        TOX1C Elder - Старейшина

                        Joined:
                        24 Mar 2012
                        Messages:
                        1,135
                        Likes Received:
                        1,931
                        Reputations:
                        24
                        Насколько я понял всю эту канитель, генератор псевдослучайных чисел использует в качестве входных данных пин код wps? И в этом заключается уязвимость?
                         
                        1. VladimirV

                          VladimirV Well-Known Member

                          Joined:
                          1 Apr 2013
                          Messages:
                          1,130
                          Likes Received:
                          6,150
                          Reputations:
                          57
                          Полный перебор 32 бит
                          [​IMG]
                           
                          1. VladimirV

                            VladimirV Well-Known Member

                            Joined:
                            1 Apr 2013
                            Messages:
                            1,130
                            Likes Received:
                            6,150
                            Reputations:
                            57
                            Нет конечною.
                            Этот генератор работает с момента запуска роутера.
                            Просто после перезапуска генератор стартует с нуля.
                             
                            1. TOX1C

                              TOX1C Elder - Старейшина

                              Joined:
                              24 Mar 2012
                              Messages:
                              1,135
                              Likes Received:
                              1,931
                              Reputations:
                              24
                              То есть, при раскрутке текущего значения в генератое, у нас появляется возможность прокрутить процесс подбора пинка без участия точки доступа, да?

                              пысы: может кто кинуть ликбез по тому, как работает впс, и на каком шаге там появляется зашифрованный пин-код, а то я не врубаюсь немного.
                               
                              1. VladimirV

                                VladimirV Well-Known Member

                                Joined:
                                1 Apr 2013
                                Messages:
                                1,130
                                Likes Received:
                                6,150
                                Reputations:
                                57
                                Да. По сути мы должны получить текущий пин а с помощью него PASS.
                                Code:
                                12. a) Отловить в WPS протоколе сообщения 'M1', 'M2', 'M3'. 
                                    b) Получаем 'Nonce' из M1. 
                                    c) Подбираем состояние ПГСЧ. 
                                    d) Вычисляем состояние E-S1 и E-S2.
                                    e) Расшифровать E-hash1 и E-hash2.
                                    f) Подобрать Pin1 и PIN2.
                                    g) Получить пароль с помощью WPS протокола.
                                
                                 
                                #2195 VladimirV, 5 Dec 2014
                                Last edited: 5 Dec 2014
                                4Fun likes this.
                                1. TOX1C

                                  TOX1C Elder - Старейшина

                                  Joined:
                                  24 Mar 2012
                                  Messages:
                                  1,135
                                  Likes Received:
                                  1,931
                                  Reputations:
                                  24
                                  Вот на этом хотелось бы поподробнее. На предыдущей странице был код генератора, для начала с ним бы разобраться. Что он делает с входящими данными, какие именно входящие данные используются (время в юникс формате / количество тактов процессора / стихи матерных песен группы красная плесень / линейные числа ? ), что делается с данными на выходе.

                                  И самое главное - где используется :)
                                   
                                  #2196 TOX1C, 5 Dec 2014
                                  Last edited: 5 Dec 2014
                                  1. VladimirV

                                    VladimirV Well-Known Member

                                    Joined:
                                    1 Apr 2013
                                    Messages:
                                    1,130
                                    Likes Received:
                                    6,150
                                    Reputations:
                                    57
                                    1: Что он делает с входящими данными
                                    2: Какие именно входящие данные используются
                                    3: Что делается с данными на выходе.

                                    1 - Генерирует псевдо-случайное число.
                                    2 - $00000000 - $FFFFFFFF (32 бита). После перезапуска роутера все начинается с $00000000. На картинке выше я показал что из 128 битового числа совпадения прошли только по 32 старшим битам после полного перебора 32 бит.
                                    3 - наверно использовать для дешифрования.

                                    P.S. Брут 32 бит на Phenom II X64 в один поток занимает 10-20 секунд.
                                     
                                    #2197 VladimirV, 5 Dec 2014
                                    Last edited: 5 Dec 2014
                                    1. binarymaster

                                      binarymaster Elder - Старейшина

                                      Joined:
                                      11 Dec 2010
                                      Messages:
                                      4,717
                                      Likes Received:
                                      10,195
                                      Reputations:
                                      126
                                      Основная сложность здесь не столько в бруте, сколько в поиске нужного алгоритма для нужного роутера, а также вовремя поймать нужные пакеты...

                                      Залоченные роутеры в этом плане не подходят. :)
                                       
                                      1 person likes this.
                                      1. Vikhedgehog

                                        Vikhedgehog Elder - Старейшина

                                        Joined:
                                        24 Jul 2013
                                        Messages:
                                        367
                                        Likes Received:
                                        162
                                        Reputations:
                                        19
                                        Так вроде же у роутеров с одинаковым чипсетом одинаковый стандартный алгоритм? Например у роутеров с чипсетом Ralink алгоритм hex-2-dec (zyxel, asus rt-g32). А в данном случае выложили алгоритм для роутеров на чипе broadcom.
                                         
                                        1. TOX1C

                                          TOX1C Elder - Старейшина

                                          Joined:
                                          24 Mar 2012
                                          Messages:
                                          1,135
                                          Likes Received:
                                          1,931
                                          Reputations:
                                          24
                                          Это алгоритм генерации пинка или генерации псевдослучайных чисел? Не надо мух с котлетами мешать. Алго ГПСЧ можно вытащить, просто разобрав прошивку декомпилятором, и воссоздав код. При большем везении можно найти и генератор пин-кодов на основе мак-адреса. Но я что-то сомневаюсь, что на ачате есть люди, которым это под силу.