Уязвимость в протоколе 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.
    1. Isica

      Isica Active Member

      Joined:
      17 Oct 2018
      Messages:
      197
      Likes Received:
      130
      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 не умел определять подробности?
       
      1. 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.
        1. Isica

          Isica Active Member

          Joined:
          17 Oct 2018
          Messages:
          197
          Likes Received:
          130
          Reputations:
          1
          Может стоит в ProbeResp заглядывать по возможности?
           
          1. 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:
              351
            • 2.PNG
              2.PNG
              File size:
              18.2 KB
              Views:
              381
            • 3.PNG
              3.PNG
              File size:
              19.8 KB
              Views:
              351
            • 5.PNG
              5.PNG
              File size:
              17.8 KB
              Views:
              347
            binarymaster and 4Fun like this.
            1. 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.
              1. 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
                1. 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:
                    405
                  • 2.jpg
                    2.jpg
                    File size:
                    43.8 KB
                    Views:
                    443
                  #4688 Monohrom, 6 Jul 2020
                  Last edited: 6 Jul 2020
                  Isica and 4Fun like this.
                  1. 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.
                    1. Isica

                      Isica Active Member

                      Joined:
                      17 Oct 2018
                      Messages:
                      197
                      Likes Received:
                      130
                      Reputations:
                      1
                      Любопытно, откуда взят этот список:
                      Code:
                          tenda_static = ('03436080', '03436165', '03974247', '06966409',
                                          '09278325', '19967899', '25086164', '25563818',
                                          '25777390', '27334737', '35806691', '45304347', '50542208',
                                          '63410372', '63491838', '71294988', '74250226')
                      
                       
                      1. 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.
                        1. Isica

                          Isica Active Member

                          Joined:
                          17 Oct 2018
                          Messages:
                          197
                          Likes Received:
                          130
                          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.
                          1. Isica

                            Isica Active Member

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

                                    Isica Active Member

                                    Joined:
                                    17 Oct 2018
                                    Messages:
                                    197
                                    Likes Received:
                                    130
                                    Reputations:
                                    1
                                    Рабочий генератор можно пощупать?
                                     
                                    Monohrom likes this.
                                    1. 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, функции в точности те же.
                                       
                                      1. 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.
                                        1. Isica

                                          Isica Active Member

                                          Joined:
                                          17 Oct 2018
                                          Messages:
                                          197
                                          Likes Received:
                                          130
                                          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";
                                          }