Уязвимость в протоколе 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-ю цифру он сам автоматически подставит.
     
  2. binarymaster

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

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    Давно читал этот пост на хабре, интересная пища для размышления. Но решения так и не нашёл :)
     
  3. 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, но тне смог им подключится к точке доступа. Как им правильно пользоватся?
     
  4. SlNik

    SlNik Active Member

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

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

    Joined:
    24 Jul 2013
    Messages:
    367
    Likes Received:
    163
    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.
  7. 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.
  8. Vikhedgehog

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

    Joined:
    24 Jul 2013
    Messages:
    367
    Likes Received:
    163
    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
  9. kosmaty

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

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

    Остальное уже более-менее понятно, но до него еще надо дойти. Может кто-то толково объяснить, какими инструментами выполнить эти вычисления?
     
  10. 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.
  11. TOX1C

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

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

    VladimirV Well-Known Member

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

    VladimirV Well-Known Member

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

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

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

    пысы: может кто кинуть ликбез по тому, как работает впс, и на каком шаге там появляется зашифрованный пин-код, а то я не врубаюсь немного.
     
  15. 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.
  16. 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
  17. 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
  18. binarymaster

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

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

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

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

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

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

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