Исследование IPTV приставки

Discussion in 'Песочница' started by CryptoZorg, 29 Jul 2021.

  1. CryptoZorg

    CryptoZorg New Member

    Joined:
    17 Dec 2019
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    Не наживы ради, а с целью получения знаний решил исследовать IPTV/DVB-S2 приставку одного известного провайдера. Опыта в этих делах у меня не много, но я стараюсь учиться. Вот и здесь пишу, чтобы услышать ваши советы.

    Что я сделал и что нашёл.
    Приставка может работать как в спутниковом режиме, так и в OTT режиме. Эксплуатировал я её как раз в OTT режиме.
    Сетевое сканирование показало что стандартных открытых портов нет. Есть порядка 10 открытых портов выше 40000. Что-то типа 40080, 40443, 40123, 45080 Предполагаю, что стандартные порты 80 и 443 были перенесены на "верх".
    Nmap определил ОС как Linux kernel 3.X
    пытался просканировать порты 80 на наличие стандартных директории, но везде 404.
    443 порты отвечают, видно данные сертификата, но опять же дальше дело не пошло.
    Попытка вытянуть что-то из открытых портов не удалась. Наверное, я делал что-то не так.
    Далее, подключил приставку, настроил зеркалирование портов на микротике(приставка подключена к нему по меди). Большая часть трафика шифрована TLS v1.2. Есть не шифрованный траффик по которому происходят запросы плейлистов с сервера. Сервер также передаёт плейлисты в открытом виде. Что-то вроде того:
    GET /server_dir_match_sd/plst.m3u8 HTTP/1.1\r\n
    Сервер отвечает:
    #EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-TARGETDURATION:10
    #EXT-X-MEDIA-SEQUENCE:162754230
    #EXT-X-KEY:METHOD=AES-128,URI="https://crypto_key_link/cek_key/crypto/cek_key/f1f7cb3c-ffff-4205-8519-5d352985fe73",IV=0x00000000000000000000000009b36eb6
    #EXT-X-PROGRAM-DATE-TIME:2021-07-29T07:05:00+00:00
    #EXTINF:10.0000,
    c_54230.ts
    #EXT-X-KEY:METHOD=AES-128,URI="https://crypto_key_link/cek_key/cek_key/f1f7cb3c-ffff-4205-8519-5d352985fe73",IV=0x00000000000000000000000009b36eb7
    #EXTINF:10.0000,
    c_54231.ts
    #EXT-X-KEY:METHOD=AES-128,URI="https://crypto_key_link/cek_key/f1f7cb3c-ffff-4205-8519-5d352985fe73",IV=0x00000000000000000000000009b36eb8
    #EXTINF:10.0000
    ....

    Провёл атаку MITM на шифрованный трафик. Приёмник сразу заткнулся. Сертификаты прописаны жёстко, тут похоже ничего не сделаешь????
    MITM на не шифрованный трафик работает. Можно подсовывать приставке любые линки http hls открытые или же закрытые с сервера провайдера, он их воспроизводит. То есть можно заставить приставку показывать один канал на любом другом канале. Типа первый вместо всех оставшихся. Приставка при этом работает корректно и показывает epg от канала указанного у него в списке.
    Также были замечены пакеты от приставки
    GET /generate_204 HTTP/1.1\r\n на гугловские ипишники
    возможно это проверка доступности интернета, так как если их дропать приставка затыкается.
    Приставка периодически запрашивает обновление. Запрос в открытом виде. Ответ с линком на прошивку от сервера, также приходит в открытом виде. Мне повезло и вышла новая версия прошивки, я её скачал по перехваченной ссылке. Запросы можно от приставки редактировать и поэтому в теории, наверное, можно приставку заставить принять левую прошивку. Хотя тут тоже всё не просто.
    Прошивка открывается архиватором(в конце архива есть цифровая подпись вида:
    -----BEGIN SIGNATURE-----
    длинной 256 байт
    -----END SIGNATURE-----
    ).
    Там несколько файлов в одном из файлов стандартная линуксовая структура папок(если опять же открыть архиватором). Полазил по папкам, выяснил что в приставке как-то используется BusyBox, D-Bus, удалось вытащить какой-то сертификат ssl подписанный как раз производителем прошивок.
    По имеющимся файлам стало понятно, что проц какой-то ARM. Ещё один файл по сигнатуре распознаётся как образ ubifs. Но примонтровать его под debian не вышло. Остальные файлы не имеют публичных сигнатур. Думаю, что всё самое интересное находиться там.
    Нашёл также конфиги для COM порта с указанием скорости, чётности и тд. Вскрытие приставки показало, что распаянного COM там нет. Даже нет пятачков для распайки.

    Подскажите в каком направлении дальше двигаться? Какой вектор применить?
     
  2. DartPhoenix

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

    Joined:
    15 Sep 2013
    Messages:
    1,102
    Likes Received:
    8,454
    Reputations:
    25
    Ты не смотрел что это за цифровая подпись ? Может это просто md5 в текстовом виде или типа того ?
     
  3. CryptoZorg

    CryptoZorg New Member

    Joined:
    17 Dec 2019
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    Нет, не md5. Архив как zip распознаётся. По одной из спецификаций ZIP в конце может быть цифровая подпись. беглое гугление на эту тему даёт много всяких вариантов реализации Rsa_sha256.
    на всяких сайтах по распознаванию хешей - ничего
    Хотя там может быть что угодно.
    Вот кстати как раз тема по подписи сборок https://source.android.com/devices/tech/ota/sign_builds
     
    #3 CryptoZorg, 29 Jul 2021
    Last edited: 29 Jul 2021
  4. DartPhoenix

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

    Joined:
    15 Sep 2013
    Messages:
    1,102
    Likes Received:
    8,454
    Reputations:
    25
    В любом случае есть какие-то исходники. Если не получается в лоб и не надо очень срочно - можно просто удить. Они полюбому обновят что-то более интересное чем D-Bus.
    В принципе можно и так зарыться но головной боли будет много а профита не очень... (ИМХО)
    ==================
    UPD: я в том смысле что если цель сломать - легче подождать. Если научиться - тут черт его знает... нужен кто-то кто это гуан* ковырял сам. Просто так по репортам нмапа никто я думаю нихрена не может веско сказать.
     
  5. DartPhoenix

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

    Joined:
    15 Sep 2013
    Messages:
    1,102
    Likes Received:
    8,454
    Reputations:
    25
    Влом даже погуглить ключи зипа и посмотреть что он там показывает...
    Но вообще насколько я помню - не было у него в жизни никогда нормальной зощиты кроме пасса.

    Есть мнение что зощита эта навесная. А ушь что она хеширует - другой вопрос. Она может просто хешировать хидер архива или список файлов.

    Надо спросить бы у кого, кто архивы щелкает...
     
  6. CryptoZorg

    CryptoZorg New Member

    Joined:
    17 Dec 2019
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    Цель - научиться. Обновляют они и ПО модуля условного доступа. Только файлы эти шибко зашифрованы. Пока вскрыл корпус и изучаю спеки на микробы на плате. на обратной стороне платы нашёл таки 3 пятачка с надписями rx tx и ground сразу их не заметил. Буду припаиваться... Не спалить бы))) Может кто есть на форуме с опытом по таким делам?
     
  7. DartPhoenix

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

    Joined:
    15 Sep 2013
    Messages:
    1,102
    Likes Received:
    8,454
    Reputations:
    25
    Не ну смотри. У каждого зип-архива будет свой хеш. Тоесть архиватор да, он может что-то заshitить. Этим хешем. Но тогда ты не должен пропускать ни одного обновления. Одно пропустишь - и гаплык.
    Сам по себе зип по-мойму не умеет нормально подписываться цифрой.

    Есть вероятность что это просто добавочная вставка. Я этих архивов в глаза не видел х/з сколько лет, могу ошибаться... но кажись не. Не могет.
     
  8. DartPhoenix

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

    Joined:
    15 Sep 2013
    Messages:
    1,102
    Likes Received:
    8,454
    Reputations:
    25
    Давай будем рассуждать логически.

    Пользователь твоего девайса может обновляться когда хочет а не обязательно последовательно. На месте крупной компании я бы не стал зашивать туда цифровую подпись ибо это может быть чревато возвратами.
    Я думаю это не цифровая подпись а хеш хуй его знает чего. Списка файлов, их размеров или пес его знает. Так проще и безопаснее.
     
  9. CryptoZorg

    CryptoZorg New Member

    Joined:
    17 Dec 2019
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    Там же цифровая подпись в конце архива. Архив сам по себе не зашифрован, ну то есть часть архива с линуксовой структурой открыта. Остальные файлы которые имеют отношение ко всяким шифрованиям, похоже, хранятся как раз в отдельных файла. У которых сигнатура не распознаётся. Прошивки передаются в открытом виде, то есть можно скачать и отркыть. Можно модифицировать и заархивировать, но если ты не знаешь по какому алгосу считается подпись и вообще от чего она зависит( ну может там от размера архива, от хеша архива, от хеша от хеша от этого архива ну и тд))) то подписать архив не сможешь или подпишешь криво. А приставка примет прошивку и зная алгос вычислит сама подпись и сравнит с той что в архиве. Совпадёт - ура прошиваемся, нет - лососнём тунца. Я думаю от такой защиты возвратов не будет.
    ps да, тут в терминологии вопрос. можно называть хоть подписью, хоть хэшем. смысл такой как описано выше.
     
    #9 CryptoZorg, 29 Jul 2021
    Last edited: 29 Jul 2021