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

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

  1. Monohrom

    Monohrom Active Member

    Joined:
    26 Jan 2020
    Messages:
    83
    Likes Received:
    132
    Reputations:
    2
    Вот так выглядит реализация 24 бит пина в Тендах (https://github.com/drygdryg/Tenda-AC/blob/master/bcm/src/ecos/router/tenda_httpd_ucd/wps.c)
    Code:
    iPin = ptr[3] * 256 * 256 + ptr[4] * 256 + ptr[5];
    //printf("[%c][%c][%c]\n", ptr[3] , ptr[4] ,ptr[5] );
    iPin = iPin % 10000000;
    //printf("pin=%u\n", iPin);
    checksum = ComputeChecksum( iPin );
    iPin = iPin*10 + checksum;
    sprintf(devPwd, "%08u", iPin);
    printf("eth0 mac: %s\n", if_hw);
    printf("Generate new WPS PIN = %s, oldpin= %s\n", devPwd, nvram_get("wps_device_pin"));
    nvram_set("wps_device_pin", devPwd);
     
    TOX1C, 4Fun and CRACK211 like this.
  2. Isica

    Isica Active Member

    Joined:
    17 Oct 2018
    Messages:
    211
    Likes Received:
    149
    Reputations:
    1
    Ну, из этого я и исходил. Но статистика--вещь упрямая!
    Выходит, просто постеснялись переступить черту? А ведь подошли совсем близко:
    Code:
    MariaDB [Tenda]> select max(NIC10) from TendaAll where (PIN=NIC10);
    +------------+
    | max(NIC10) |
    +------------+
    |    9757206 |
    +------------+
    1 row in set (0.08 sec)
    
    Впрочем, некоторые модели и так уместились целиком:
    Code:
    MariaDB [Tenda]> select count(*) n24,t2.n nAll,Model from TendaAll join (select Model,count(*) n from TendaAll group by Model)t2 using(Model) where PIN=NIC10 group by Model order by n desc;
    +-------+-------+-------------------------------------------------+
    | n24   | nAll  | Model                                           |
    +-------+-------+-------------------------------------------------+
    | 13839 | 92571 | Tenda 11N Wireless Router                       |
    |  2001 |  2001 | Tenda Wireless-N Router                         |
    |  1230 |  1230 | Tenda Wireless-N Router (rebranded)             |
    |   175 |   175 | Tenda 3G 11N Router                             |
    |     7 |   141 |                                                 |
    |    72 |    74 | Tenda 11N wireless broadband router             |
    |    59 |    59 | Tenda Wireless-N Router (Pentagram rebranded)   |
    |     1 |    42 | Tenda Realtek Router, firmware: V11.13.01.11_en |
    |    29 |    29 | Tenda Wireless-N Router (Samsung rebranded)     |
    |     1 |     4 | GoAhead-Webs (proxy server)                     |
    |     1 |     1 | Seems to be TP-LINK TL-WR740N                   |
    +-------+-------+-------------------------------------------------+
    11 rows in set (0.42 sec)
    
    , но на счёт пресловутой 'Tenda 11N Wireless Router' есть сомнения.
    И вообще, что это за "модель" такая, в которую входит куча разношерстных устройств? Почему оно так? Ранний RS не умел определять подробности?
     
  3. TOX1C

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

    Joined:
    24 Mar 2012
    Messages:
    1,135
    Likes Received:
    1,931
    Reputations:
    24
    Потому что в этом китайском гуано, модели нет нигде. Косвенно можно было угадать только по версии прошивки, да и то не факт что точно. У тенда реалтек такая же болезнь.

    Быстрая гуглежка нашла вот что
    https://github.com/MikimotoH/DLink_Harvester/blob/master/tenda_filelist.csv

    Список прошивок, и устройств, к которым они предназначаются. Одинаковая версия для разных устройств оптимизма не внушает, так что и по версии прошивки сложно угадать, что есть что.
     
    #4683 TOX1C, 1 Jul 2020
    Last edited: 1 Jul 2020
    hydra, Monohrom, 4Fun and 1 other person like this.
  4. Isica

    Isica Active Member

    Joined:
    17 Oct 2018
    Messages:
    211
    Likes Received:
    149
    Reputations:
    1
    Может стоит в ProbeResp заглядывать по возможности?
     
  5. TOX1C

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

    Joined:
    24 Mar 2012
    Messages:
    1,135
    Likes Received:
    1,931
    Reputations:
    24
    RouterScan их если и увидит, то только через вкладку wireless audit, а не в классическом сканировании по сети. И увидит он там... То, что прикреплено, это 5 разных моделей, наверное, с разными OUI.
     

    Attached Files:

    • 1.PNG
      1.PNG
      File size:
      28.5 KB
      Views:
      362
    • 2.PNG
      2.PNG
      File size:
      18.2 KB
      Views:
      394
    • 3.PNG
      3.PNG
      File size:
      19.8 KB
      Views:
      361
    • 5.PNG
      5.PNG
      File size:
      17.8 KB
      Views:
      368
    binarymaster and 4Fun like this.
  6. Monohrom

    Monohrom Active Member

    Joined:
    26 Jan 2020
    Messages:
    83
    Likes Received:
    132
    Reputations:
    2
    Дефолтные настройки от Реалтека которые китайцы не поменяли(RTL8xxx и не только ) или общее название без конкретики(Tenda Wireless AP -Ecos - под этим названием куча моделей от Тенды скрываются).

    У самих китайцев из Тенды если верить исходным кодам. Рабочая среда выглядит примерно так;

    "http://192.168.100.233:18080/svn/EC...odes/Branches/NH325_old_platform/BCM5357_1X8/"

    Это примечание было найдено здесь;https://github.com/drygdryg/Tenda-AC/tree/master/rtk/userSpace

    Если кратко: у китайцев бардак.
     
    #4686 Monohrom, 1 Jul 2020
    Last edited: 1 Jul 2020
    TOX1C and 4Fun like this.
  7. Monohrom

    Monohrom Active Member

    Joined:
    26 Jan 2020
    Messages:
    83
    Likes Received:
    132
    Reputations:
    2
    Выгрузка с необработанными Тендами + инструменты для работы с необработанной выгрузкой(фильтрация, сортировка), а также инструменты для работы с алгоритмом(генерация дельт)
    https://mega.nz/file/TjhxjLTZ#5Jvs2WcN-krwQfhiR69_znW3JLw8GNMhhGGwkLOh2L0


     
    #4687 Monohrom, 5 Jul 2020
    Last edited: 6 Jul 2020
  8. Monohrom

    Monohrom Active Member

    Joined:
    26 Jan 2020
    Messages:
    83
    Likes Received:
    132
    Reputations:
    2
    Похоже что я нашёл локальную генерацию пин-кода в Тендах(не 24 бит пин), а также проверку пин-кода может натолкнет на какие то мысли. Ковырял дамп с Tenda AC9.
    Если кто захочет поковырять прошивку то проверка пина находится здесь: squashfs-root/lib/libcommon, локальная генерация пина здесь: squashfs-root/lib/libpti. На картинках псевдокод сформированный Гидрой, к нему привязыватся не стоит сильно.

    На всякий случай апну
     

    Attached Files:

    • 1.jpg
      1.jpg
      File size:
      31.2 KB
      Views:
      424
    • 2.jpg
      2.jpg
      File size:
      43.8 KB
      Views:
      456
    #4688 Monohrom, 6 Jul 2020
    Last edited: 6 Jul 2020
    Isica and 4Fun like this.
  9. binarymaster

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

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    Если вкратце, то эта функция просто генерирует рандомный пин через функцию srand().

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

    Лапша ниже из умножений на 3 и магических констант - это рассчёт контрольной суммы.
     
    hydra, V777, Isica and 2 others like this.
  10. Isica

    Isica Active Member

    Joined:
    17 Oct 2018
    Messages:
    211
    Likes Received:
    149
    Reputations:
    1
    Любопытно, откуда взят этот список:
    Code:
        tenda_static = ('03436080', '03436165', '03974247', '06966409',
                        '09278325', '19967899', '25086164', '25563818',
                        '25777390', '27334737', '35806691', '45304347', '50542208',
                        '63410372', '63491838', '71294988', '74250226')
    
     
  11. TOX1C

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

    Joined:
    24 Mar 2012
    Messages:
    1,135
    Likes Received:
    1,931
    Reputations:
    24
    Ручная выборка, эти точки сложно не заметить. Их как мусора, в буквальном смысле.
    123.PNG 456.PNG
    Больший интерес представляет то, что это за точки и почему так?
    Но они обработаны, с выгрузки удалены дубли bssid с разными wps pin.
     
    4Fun and Isica like this.
  12. Isica

    Isica Active Member

    Joined:
    17 Oct 2018
    Messages:
    211
    Likes Received:
    149
    Reputations:
    1
    Та вроде не удалены:
    Code:
    MariaDB [Tenda]> select count(*) from (select count(distinct(PIN)) nPINs from raw2020_2 group by MAC having nPINs>1) t;
    +----------+
    | count(*) |
    +----------+
    |     5265 |
    +----------+
    1 row in set (0.35 sec)
    
    MariaDB [Tenda]> select MAC,count(distinct(PIN)) nPINs from raw2020_2 group by MAC having nPINs>2;
    +-------------------+-------+
    | MAC               | nPINs |
    +-------------------+-------+
    | C8:3A:35:01:49:80 |     3 |
    | C8:3A:35:01:50:D8 |     3 |
    | C8:3A:35:02:91:A0 |     3 |
    | C8:3A:35:02:91:F0 |     3 |
    | C8:3A:35:02:BA:D8 |     3 |
    | C8:3A:35:02:BB:E8 |     3 |
    | C8:3A:35:02:C0:C0 |     3 |
    | C8:3A:35:02:C3:B0 |     3 |
    | C8:3A:35:02:DA:00 |     3 |
    | C8:3A:35:02:DB:40 |     3 |
    | C8:3A:35:03:09:C0 |     3 |
    | C8:3A:35:03:27:F0 |     3 |
    | C8:3A:35:03:28:B8 |     3 |
    | C8:3A:35:03:9A:A0 |     3 |
    | C8:3A:35:03:FA:C8 |     3 |
    | C8:3A:35:04:97:98 |     3 |
    | C8:3A:35:04:B5:40 |     3 |
    | C8:3A:35:04:EB:78 |     3 |
    | C8:3A:35:05:06:98 |     3 |
    | C8:3A:35:05:1C:70 |     3 |
    | C8:3A:35:05:3F:D8 |     3 |
    | C8:3A:35:05:4F:90 |     3 |
    | C8:3A:35:05:51:28 |     3 |
    | C8:3A:35:05:6E:B0 |     3 |
    | C8:3A:35:05:D2:98 |     3 |
    | C8:3A:35:06:CD:E8 |     3 |
    | C8:3A:35:08:47:F8 |     3 |
    | C8:3A:35:08:77:38 |     3 |
    | C8:3A:35:08:9B:F8 |     3 |
    | C8:3A:35:09:11:00 |     3 |
    | C8:3A:35:09:1D:28 |     3 |
    | C8:3A:35:09:4A:A0 |     3 |
    | C8:3A:35:0A:88:F8 |     3 |
    | C8:3A:35:0B:BD:60 |     3 |
    | C8:3A:35:0B:CF:18 |     3 |
    | C8:3A:35:0D:25:28 |     3 |
    | C8:3A:35:0D:A8:A8 |     3 |
    | C8:3A:35:0E:94:60 |     3 |
    | C8:3A:35:0E:DF:98 |     3 |
    | C8:3A:35:0F:A9:B8 |     3 |
    | C8:3A:35:15:43:F8 |     3 |
    | C8:3A:35:16:04:48 |     3 |
    | C8:3A:35:16:AA:38 |     3 |
    | C8:3A:35:16:D6:E0 |     3 |
    | C8:3A:35:17:90:C0 |     3 |
    | C8:3A:35:18:A3:E8 |     3 |
    | C8:3A:35:19:57:08 |     3 |
    | C8:3A:35:19:9C:90 |     3 |
    | C8:3A:35:19:AC:98 |     3 |
    | C8:3A:35:1C:69:10 |     3 |
    | C8:3A:35:1C:6C:70 |     4 |
    | C8:3A:35:1C:9E:50 |     4 |
    | C8:3A:35:1C:F5:90 |     3 |
    | C8:3A:35:1D:0B:D0 |     3 |
    | C8:3A:35:1D:4B:38 |     3 |
    | C8:3A:35:1D:5F:30 |     3 |
    | C8:3A:35:1D:77:38 |     3 |
    | C8:3A:35:1D:78:00 |     4 |
    | C8:3A:35:1F:3E:78 |     3 |
    | C8:3A:35:1F:F1:F8 |     3 |
    | C8:3A:35:20:39:90 |     3 |
    | C8:3A:35:22:09:F0 |     3 |
    | C8:3A:35:22:D9:60 |     3 |
    | C8:3A:35:24:EE:30 |     3 |
    | C8:3A:35:25:02:E0 |     3 |
    | C8:3A:35:25:0C:60 |     3 |
    | C8:3A:35:25:BB:38 |     3 |
    | C8:3A:35:26:06:10 |     3 |
    | C8:3A:35:26:0D:B0 |     3 |
    | C8:3A:35:26:67:30 |     3 |
    | C8:3A:35:26:7C:90 |     3 |
    | C8:3A:35:26:A3:D8 |     3 |
    | C8:3A:35:26:B9:68 |     3 |
    | C8:3A:35:26:C1:C0 |     3 |
    | C8:3A:35:26:FF:C8 |     3 |
    | C8:3A:35:26:FF:D8 |     4 |
    | C8:3A:35:27:15:A0 |     4 |
    | C8:3A:35:27:1B:58 |     3 |
    | C8:3A:35:27:23:90 |     3 |
    | C8:3A:35:27:2A:F8 |     3 |
    | C8:3A:35:27:9D:70 |     3 |
    | C8:3A:35:27:AB:60 |     3 |
    | C8:3A:35:27:DC:E0 |     3 |
    | C8:3A:35:27:F8:D0 |     3 |
    | C8:3A:35:2A:6D:B8 |     3 |
    | C8:3A:35:2A:8A:F8 |     3 |
    | C8:3A:35:2B:5C:C8 |     3 |
    | C8:3A:35:2B:69:68 |     3 |
    | C8:3A:35:2C:A2:48 |     3 |
    | C8:3A:35:2D:74:68 |     3 |
    | C8:3A:35:2D:F5:10 |     3 |
    | C8:3A:35:2E:85:E8 |     3 |
    | C8:3A:35:2E:9F:58 |     3 |
    | C8:3A:35:2E:D8:08 |     3 |
    | C8:3A:35:2E:DC:58 |     3 |
    | C8:3A:35:2E:E2:70 |     3 |
    | C8:3A:35:2E:F5:E0 |     3 |
    | C8:3A:35:2F:00:68 |     3 |
    | C8:3A:35:30:A9:38 |     3 |
    | C8:3A:35:30:E6:A0 |     3 |
    | C8:3A:35:31:05:48 |     3 |
    | C8:3A:35:31:A9:D8 |     3 |
    | C8:3A:35:32:2D:88 |     3 |
    | C8:3A:35:32:F3:C8 |     3 |
    | C8:3A:35:33:23:A8 |     3 |
    | C8:3A:35:33:85:98 |     3 |
    | C8:3A:35:33:96:A0 |     3 |
    | C8:3A:35:33:AF:B8 |     3 |
    | C8:3A:35:33:CA:58 |     3 |
    | C8:3A:35:33:EE:98 |     3 |
    | C8:3A:35:33:EF:70 |     3 |
    | C8:3A:35:33:F6:00 |     3 |
    | C8:3A:35:34:10:90 |     3 |
    | C8:3A:35:34:36:98 |     3 |
    | C8:3A:35:34:37:C0 |     3 |
    | C8:3A:35:34:3B:A8 |     3 |
    | C8:3A:35:34:69:90 |     3 |
    | C8:3A:35:34:F2:E0 |     3 |
    | C8:3A:35:35:04:C0 |     3 |
    | C8:3A:35:38:0C:68 |     3 |
    | C8:3A:35:38:53:F0 |     3 |
    | C8:3A:35:39:F4:80 |     3 |
    | C8:3A:35:3A:A9:A8 |     3 |
    | C8:3A:35:3A:CA:00 |     3 |
    | C8:3A:35:3A:E2:80 |     3 |
    | C8:3A:35:3A:F4:D8 |     3 |
    | C8:3A:35:3A:F4:E8 |     3 |
    | C8:3A:35:3A:F5:00 |     3 |
    | C8:3A:35:3A:FA:00 |     4 |
    | C8:3A:35:3A:FB:E0 |     3 |
    | C8:3A:35:3B:05:90 |     3 |
    | C8:3A:35:3B:19:90 |     3 |
    | C8:3A:35:3B:1D:28 |     3 |
    | C8:3A:35:3B:21:08 |     3 |
    | C8:3A:35:3B:3C:08 |     3 |
    | C8:3A:35:3B:3C:A0 |     4 |
    | C8:3A:35:3B:3D:40 |     3 |
    | C8:3A:35:3B:4F:20 |     3 |
    | C8:3A:35:3B:4F:28 |     3 |
    | C8:3A:35:3B:4F:48 |     3 |
    | C8:3A:35:3B:5F:10 |     3 |
    | C8:3A:35:3B:7D:B0 |     3 |
    | C8:3A:35:3B:A3:88 |     3 |
    | C8:3A:35:3D:42:C8 |     3 |
    | C8:3A:35:3D:EA:00 |     3 |
    | C8:3A:35:3E:2F:C0 |     3 |
    | C8:3A:35:3E:79:C0 |     3 |
    | C8:3A:35:3F:7A:98 |     3 |
    | C8:3A:35:41:43:78 |     3 |
    | C8:3A:35:41:BD:B8 |     3 |
    | C8:3A:35:44:FC:D0 |     3 |
    | C8:3A:35:45:12:A1 |     3 |
    | C8:3A:35:45:37:F0 |     3 |
    | C8:3A:35:45:7F:40 |     3 |
    | C8:3A:35:45:DE:38 |     3 |
    | C8:3A:35:45:EF:10 |     3 |
    | C8:3A:35:45:F1:58 |     3 |
    | C8:3A:35:45:F9:30 |     3 |
    | C8:3A:35:46:16:20 |     3 |
    | C8:3A:35:46:22:D0 |     3 |
    | C8:3A:35:46:22:E0 |     3 |
    | C8:3A:35:47:53:D8 |     3 |
    | C8:3A:35:47:94:D8 |     3 |
    | C8:3A:35:47:E8:D8 |     3 |
    | C8:3A:35:48:2D:80 |     3 |
    | C8:3A:35:48:BF:38 |     3 |
    | C8:3A:35:49:52:F0 |     3 |
    | C8:3A:35:49:C2:18 |     3 |
    | C8:3A:35:49:C5:30 |     3 |
    | C8:3A:35:49:F0:A0 |     3 |
    | C8:3A:35:49:F2:00 |     3 |
    | C8:3A:35:4A:51:C0 |     3 |
    | C8:3A:35:4A:53:98 |     3 |
    | C8:3A:35:4B:9A:C0 |     3 |
    | C8:3A:35:4E:2A:20 |     3 |
    | C8:3A:35:4E:BA:D0 |     3 |
    | C8:3A:35:4E:E0:80 |     3 |
    | C8:3A:35:4F:4B:C0 |     3 |
    | C8:3A:35:4F:5D:D8 |     3 |
    | C8:3A:35:50:3F:A1 |     7 |
    | C8:3A:35:50:AF:08 |     3 |
    | C8:3A:35:51:BC:F8 |     3 |
    | C8:3A:35:51:D5:B0 |     3 |
    | C8:3A:35:52:4E:20 |     3 |
    | C8:3A:35:52:58:58 |     3 |
    | C8:3A:35:52:F1:40 |     3 |
    | C8:3A:35:53:F5:B8 |     3 |
    | C8:3A:35:55:10:90 |     3 |
    | C8:3A:35:55:50:58 |     3 |
    | C8:3A:35:55:64:78 |     3 |
    | C8:3A:35:58:5A:28 |     3 |
    | C8:3A:35:58:B4:10 |     3 |
    | C8:3A:35:59:B3:58 |     3 |
    | C8:3A:35:5A:89:30 |     3 |
    | C8:3A:35:5A:B2:38 |     3 |
    | C8:3A:35:5B:6F:30 |     3 |
    | C8:3A:35:5B:80:B0 |     3 |
    | C8:3A:35:5B:DF:E8 |     3 |
    | C8:3A:35:5C:4D:F8 |     3 |
    | C8:3A:35:5C:63:F8 |     3 |
    | C8:3A:35:5C:9A:A8 |     3 |
    | C8:3A:35:5C:9D:98 |     3 |
    | C8:3A:35:5D:4E:E8 |     3 |
    +-------------------+-------+
    203 rows in set (0.34 sec)
    
    
    Или их должно быть больше?
     
    Vikhedgehog likes this.
  13. Isica

    Isica Active Member

    Joined:
    17 Oct 2018
    Messages:
    211
    Likes Received:
    149
    Reputations:
    1
    Если Вы или кто-то другой уже составили табличку с вероятными началами серий, было бы любопытно на неё взлянуть.
    Также приветствуются альтернативные базы, составленные по стикерам или из лично вскрытых устройств, пусть даже крохотного размера, но с высокой достоверностью того, что пин дефолтный.
     
    #4693 Isica, 6 Jul 2020
    Last edited: 6 Jul 2020
  14. Monohrom

    Monohrom Active Member

    Joined:
    26 Jan 2020
    Messages:
    83
    Likes Received:
    132
    Reputations:
    2
    Ручная выборка по базе.
    Выборку не обрабатывал. Так как она не очищена даже от паролей.

    Cтатика же. Или намёк на то что алгоритм используется и для генерации статичного пинкода ?
     
    #4694 Monohrom, 6 Jul 2020
    Last edited: 6 Jul 2020
  15. binarymaster

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

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    О сейчас будет весело... :rolleyes:
    Code:
    seed   rand      pin        unique   mostly
    4      1968078   19680781   3        ZyXEL VMG1312-B10B
    9      4444549   44445492   4        D-Link DSL-6740U
    10     1215069   12150694   2        D-Link DSL-6740U
    11     1989311   19893112   21       D-Link DSL-6740U, Micro DSL
    12     1687063   16870635   507      Micro DSL, Tenda ADSL2/2+, D-Link DSL-6740U
    13     1358590   13585907   950      Micro DSL, D-Link DSL-2750U, DSL-2650U, DSL-2640NRU
    14     2146406   21464065   7511     Micro DSL, DSL-2640NRU, DSL-2750U, DSL-2650U, DSL-2740NRU, DSL-2640U
    15     7622990   76229909   15940    ! Broadcom 3
    16     4626484   46264848   19872    ! Broadcom 2
    17     1227918   12279180   4078     Micro DSL, D-Link DSL-2640U, DSL-2640NRU, DSL-2600U, DSL-2740U, DSL-2740NRU, DSL-2750U
    18     1995168   19951683   7424     Micro DSL, D-Link DSL-2640U, DSL-2640NRU, DSL-2600U, DSL-2740U, NETGEAR JDGN1000 ADSL Router
    19     6232714   62327145   14761    ! Broadcom 4
    20     3195719   31957199   4342     ! Broadcom 6
    21     1086411   10864111   8232     ! Broadcom 5
    22     1857631   18576313   3612     Micro DSL, D-Link DSL-2640NRU, DSL-2640U, DSL-2600U, DSL-2650NRU, DSL-2740NRU
    23     1562469   15624697   17884    Micro DSL, D-Link DSL-2640NRU, DSL-2640U, DSL-2600U, DSL-2650U, DSL-2740U
    24     1883648   18836486   10682    Micro DSL, D-Link DSL-2650U, DSL-2640U, DSL-2750U, DSL-2640NRU
    25     2017252   20172527   15105    ! Broadcom 1
    26     1708421   17084215   9501     Micro DSL, D-Link DSL-2640U, DSL-2740U, DSL-2650U, DSL-2750U
    27     1416980   14169809   3587     Micro DSL, D-Link DSL-2640U, DSL-2740U, DSL-2650U, DSL-2650NRU
    28     1110582   11105824   1467     Micro DSL, D-Link DSL-2640U, DSL-2650NRU, DSL-2740U, DSL-2750U
    29     1881172   18811728   4418     Micro DSL, D-Link DSL-2640U, DSL-2650NRU, DSL-2740U, DSL-2650U
    30     4938505   49385052   7986     Micro DSL, D-Link DSL-2640U, DSL-2740U, DSL-2650U, DSL-2640NRU
    31     1271565   12715657   3946     Micro DSL, D-Link DSL-2640U, DSL-2650U, DSL-2640NRU, DSL-2750U
    32     9656711   96567111   2064     Micro DSL, D-Link DSL-2640U, DSL-2740U, DSL-2650U
    
    Теперь мы знаем, откуда берутся статичные Broadcom пины! :D Из этих данных также можно понять, какие модели доходят до генерации пин кода быстрее (за меньшее кол-во секунд от начала загрузки при сбросе настроек), а какие медленнее.
     
    TOX1C, 4Fun, Isica and 1 other person like this.
  16. Monohrom

    Monohrom Active Member

    Joined:
    26 Jan 2020
    Messages:
    83
    Likes Received:
    132
    Reputations:
    2
    Я подобный алгоритм видел не только у Тенд но и на TP-Link от старых на Атеросе до новых на Медиатеке. Для роутера
    D-LINK DSL-2640U2

    Как раз D-LINK DSL-2640U попал под твою выборку
     

    Attached Files:

    4Fun, binarymaster and Vikhedgehog like this.
  17. Isica

    Isica Active Member

    Joined:
    17 Oct 2018
    Messages:
    211
    Likes Received:
    149
    Reputations:
    1
    Рабочий генератор можно пощупать?
     
    Monohrom likes this.
  18. binarymaster

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

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    Псевдокод на php:
    PHP:
    function genChecksum($pin)
    {
        
    $pin %= 10000000;
        
    $a 0;
        
    $t $pin;
        while (
    $t)
        {
            
    $a += * ($t 10);
            
    $t = (int)($t 10);
            
    $a += $t 10;
            
    $t = (int)($t 10);
        }
        return (
    $pin 10) + ((10 - ($a 10)) % 10);
    }

    for (
    $seed 1$seed 1000$seed++)
    {
        
    srand($seed);
        
    $r rand();
        
    /* Алгоритм подразумевает использование старших разрядов числа */
        
    while ($r 10000000$r = (int)($r 10);
        
    $pin genChecksum($r);

        
    $res QuerySql("SELECT id FROM base WHERE WPSPIN = $pin GROUP BY BSSID ORDER BY id DESC");
        if (
    $res->num_rows 0)
        {
            echo 
    "$seed   $r   $pin   " $res->num_rows "\r\n";
        }
        
    $res->close();
    }
    При желании можно переписать на C, функции в точности те же.
     
  19. Monohrom

    Monohrom Active Member

    Joined:
    26 Jan 2020
    Messages:
    83
    Likes Received:
    132
    Reputations:
    2
    Но это ещё не всё. Старые туполинки с ssid TP-LINK_XXXXXX. К таким роутерам в комплекте ишла программа(EasySetupAssistant) которая генерировала рандомный пароль для них. В 2013 году один человек восстановил примерный алгоритм генерации пароля. Алгоритм оказался не очень уж и рандомным.
    Этот алгоритм очень похож на алгоритм генерации пинкода в туполинках который я нашёл в http сервере туполинка

    Вполне возможно что китайцы из TP-LINK использовали или используют один и тот же алгоритм для генерации пароля и пинкода.
    ссылка ниже разбор генератора, разбор короткий и лаконичный
    https://github.com/AlexAltea/blog/blob/master/posts/2013-03-08-wpa2-vulnerability-tplink/_main.md
     
    4Fun and binarymaster like this.
  20. Isica

    Isica Active Member

    Joined:
    17 Oct 2018
    Messages:
    211
    Likes Received:
    149
    Reputations:
    1
    У меня получается совсем не та последовательность:
    seed=1, rand=32422
    seed=2, rand=19731
    seed=3, rand=7040
    seed=4, rand=27117
    seed=5, rand=14426
    seed=6, rand=1735
    seed=7, rand=21812
    seed=8, rand=9121
    seed=9, rand=29198
    seed=10, rand=16507
    seed=11, rand=3816
    seed=12, rand=23893
    seed=13, rand=11202
    seed=14, rand=31279
    seed=15, rand=18588
    seed=16, rand=5897
    seed=17, rand=25974
    seed=18, rand=13283
    seed=19, rand=592
    seed=20, rand=20669
    ....
    php 5.3; код:
    Code:
    for ($seed = 1; $seed < 1000; $seed++)
    {
        srand($seed);
        $r = rand();
        /* Алгоритм подразумевает использование старших разрядов числа */
        while ($r > 10000000) $r = (int)($r / 10);
        echo "seed=$seed, rand=$r<br>\n";
    }