Показать сообщение отдельно

  #2  
Старый 09.07.2020, 21:40
Monohrom
Active Member
Регистрация: 26.01.2020
Сообщений: 83
Провел на форуме:
29878

Репутация: 2
По умолчанию

Под влиянием открытий последних дней мы с @4Fun занялись изучением генерации пин-кодов в роутерах TP-LINK по специальной кнопке в веб-интерфейсе и сделали несколько выводов:

1) Мак адрес не участвует в генерации пин-кодов

2) Пин-коды генерируются на основе текущего времени, и более ни на чём не основываются, кроме времени;

3) время, на котором они основываются, локальное, то есть timestamp, но зависящий от часового пояса (в старых прошивках) — в новых прошивках (с голубой веб-мордой) за основу взят самый обычный UTC timestamp.

Для потверждения наших выводов мы провели эксперимент:

Взяли две разные модели роутеров от TP-LINK на базе Atheros: TL-WR740N v6 и TL-WR741ND v4.

Синхронизировали на них время, часовые пояса и начали генерировать пин-коды через веб-морды с помощью кнопок "Создать новый пин-код", при этом нажимая их одновременно. Так проделали три раза и получили 3 пары совпадающих пин-кодов. Вы можете наблюдать их ниже, котрольные суммы пин-кодов отброшены.

Код:
TL-WR740N v6   TL-WR741ND v4
2752101         2752101
3120642         3120642
9544919         9544919
После мы решили проделать аналогичные действия на новых роутерах TP-LINK на базе Mediatek (с голубыми веб-мордами): TL-WR840N v4 и TL-WR841N v13

И тоже получили 3 пары совпадающих пин-кодов:

Код:
TL-WR840N v4     TL-WR841N v13
2786309           2786309
2067563           2067563
3089540           3089540
За этими двумя экспериментами последовал ряд других, в ходе которых мы заметили, что:

1) у старых роутеров TP-LINK на базе чипов Atheros timestamp, который участвует в генерации пинкода, привязан к часовому поясу;

2) у новых роутеров TP-LINK на базе MediaTek для генерации пин-кода используется классический юниксовый timestamp, не привязанный к часовому поясу, то есть количество секунд с 1 января 1970 года по UTC.

Для того чтобы окончательно удостовериться в увиденном, мы написали пару скриптов для синхронной генерации пин-кодов на двух роутерах TP-Link (работают как нажатие кнопки в веб-морде, по сути): https://mega.nz/file/fnpU1SDS#2RpEv2vk-OJBoQrEgbuMKuPmCJ1tiWOTFqVSo9uqLIU

В архиве:

main_green_basic.py — для роутеров TP-LINK с зелёным веб-интерфейсом и базовой аутентификацией

main_blue.py — для роутеров TP-Link с голубым веб-интерфейсом и форм-авторизацией

Оба скрипта работают только с парой идентичных роутеров. IP-адреса и авторизация роутеров настраивается в файле config.json. Для запуска требуется Python 3.6 и выше и модуль requests.
 
Ответить с цитированием