
Как можно догадаться, на этот раз речь пойдёт об очередном поделии китайского IoT-гения, а именно о цифровой камере для третьего "глаза" микроскопа (можно ли назвать камеру для микроскопа IoT-ом?). Не знаю, может у них там сверху наказ такой: в каждую камеру по бэкдору (и чем больше, тем лучше), но это в самом деле треш.
За какую камеру ни возьмись: будь она для видеонаблюдения, либо, как в моём случае, для вывода картинки с микроскопа на монитор/смартфон - по факту вы получаете не только девайс, выполняющий свои основные функции, но и как "премиум-фичу" - следящее (конечно же, за Вами) устройство. Об одном таком девайсе я и хочу рассказать.
Зачем
На рабочих проектах, да и в качестве хобби, я люблю покопаться в кишочках различных железок. И, как правило, я преследую при этом следующие цели:
- найти недокументированный функционал и выяснить, можно ли его эксплутировать 
- предостеречь текущих, либо будущих владельцев этих девайсов от небезопасного использования 
- выработать с вендором исправления безопасности (и исправить баги по возможности). Бывает, конечно, что вендор не идёт на контакт, тогда приходится публиковать инструкцию по ручному закрытию таких дыр = теоретической эксплуатации нехорошими дядями) 
Так вот, ковыряние железок часто подразумевает подпаивание к различным мелким дорожкам/ножкам компонентов, отладочным площадкам, а с моим орлиным зрением без микроскопа там зачастую делать нечего. Поэтому я и купил себе в домашнюю лабу (по-факту, филиал работы на лоджии) микроскоп.
Хорошо, конечно, да маловато будет - фотку платы для красивого отчёта/статейки не сделаешь, а искать объективом телефона "дырочку" окуляра можно, но презентабельность не та. Так я и купил камеру.
О самой камере
Модель устройства: SCAM4K8MPB (да, с неймингом вообще топ! Надеюсь, "S" здесь не про Security). Выглядит буквально так, как на превьюшках на сайте:


Имеет массивный алюминиевый корпус, внутри сенсор Sony IMX585. Получать изображение с камеры можно через совершенно разные интерфейсы:
- через USB WiFi-свисток и подключение к создаваемой камерой WiFi-точке доступа (софт от вендора умеет находить камеру и получать с неё изображение) 
- через USB WiFi-свисток и подключение к вашей точке доступа (точно также, через софт вендора) 
- через USB-Video (по-факту, подключается камера как устройство) 
- HDMI (через него к тому же становится доступным внутренний GUI камеры, где можно тыкать мышкой) 

В моём случае, последние два варианта получались совсем неудобными - кабели USB и HDMI толстые, жёсткие, да и стол с микроскопом далековато от ПК, поэтому я рассматривал только работу по WiFi. Тем более, есть возможность использовать в том числе и Android-приложение.
Софт для моей камеры, на самом деле, та ещё тема: судя по всему, есть какой-то основной вендор и он предоставляет не только услугу по вкорячиваю вашего софта в камеру, но и собирает красивый инсталлятор с названием и логотипом заказчика. Как говорится, найдите 10 отличий:


В первом случае SDK (поставлялся на диске к моей камере) называется MiiCamSdk, а во втором (скачал с официального сайта touptek) - ToupCamSdk. По начинке - один в один.
Разобравшись с тем, как подключить камеру к моей домашней сети я запустил nmap. Не спрашивайте, зачем - просто проф-деформация. Надежда была на то, что "ну уж на камере для микроскопа-то не должно быть никакого лишнего торчащего говна порта". И не обнаружив бы лишних портов я работал бы себе спокойно и бед не знал. Но...
Как всегда
... и на что я там надеялся, наивный. Уже само наличие в списке открытых портов (на пару с какими-то сервисным барахлом) скучающего без конекта из поднебеснойtelnet на 23/TCP шепчет: "ты пользуйся, братишка, пользуйся, но и не забывай с вендором делиться".

И проблема ведь не только в том, что китайский брат иногда будет посматривать в твою камеру как ты паяешь. Но и запросто может быть, что пароль от телнета твоей "слишком умной" камеры уже давно во всех словарях для брута лежит. Какая-нибудь малварь залогинится к тебе и начнёт майнить бетховены. Оно тебе надо?
Вскрывать?
"Порт надо закрыть", решил я, и... ничего не сделал, побоялся. На самом деле, камера ведь не дешёвая: вскрывать, паяться к ней - запачкаю/поцарапаю матрицу, и всё - деньги на ветер. Неохота было во всё это лезть. Но и оставлять всё так как есть нельзя. Что же делать?
Приоткрою, посмотрю одним глазком
В итоге, я решился. Детали корпуса камеры держатся на винтах, которые откручиваются шестигранником, поэтому, подумал я, можно будет аккуратно вскрыть, без необратимых последствий. А там уж решу: легко ли будет подобраться к необходимым контактам и что-либо сделать.
После того, как все четыре винта были откручены, я без труда снял верхнюю крышку с надписями. А там меня ожидала следующая картина:

Видим две платы, соединённых шлейфом. На одной из плат виднеется камень от SigmaStar. Странно, но флешку с прошивкой сходу обнаружить не удалось, либо она мелкая и BGA. Что хорошо, голого сенсора тоже не видно, так что запачкать его с порога не выйдет.

Приятным удивлением для меня оказались три штырька интерфейса UART, которые располагались прямо у снятой крышки - выглядело всё так, что паять ничего не придётся (по крайней мере, если с UART можно взаимодействовать).

Работать с открытой крышкой (как у дозиметров, по-взрослому) мне не хотелось, поэтому я не придумал ничего умнее, кроме как просверлить в алюминиевой крышке отверстие и протащить через него три провода.
К сожалению, высота конектора (чёрного пластика) у обычного dupont-провода оказалась слишком большой, пришлось раскурочивать и снимать пластик, гнуть металлический коннектор и закрывать термоусадкой. Зато, как по мне, получилось отлично:



Дальше я протащил провода, собрал корпус, подключился к UART через USB-TTL и включил камеру. Сразу же после запуска, по традиции, я усиленно принялся жать Enter в надежде попасть в меню наподобие U-Boot. Так и получилось.

Программные внутренности
Что делать дальше я плюс-минус уже представлял:
- 
получить список разделов, которые доступны системе через вызов команды mtdparts Список разделов nand 
- 
через команду чтения nand read.eпрочитать в оперативную память содержимое интересующего меня раздела Согласно докам, read.eчитаетnandс учётом кодов коррекции ошибок ECC
- 
через команду чтения оперативной памяти md.bсдампить содержимое памяти по UART в файл Первые 0x100байтrootfs
Адрес оперативной памяти у SigmaStar SSD268G (основной SoC), как говорит Github - 0x22000000. Итого, у меня получился следующий скрипт для получения дампа:
Исходный код дампера
import binascii
import serial
import re
from tqdm import tqdm
MTD_PAT = re.compile(r'^(?: +)?(\d+): (\w+)(?: +)?(0x[0-9a-f]+)\t(0x[0-9a-f]+)\t0$')
HEX_PAT = re.compile(r'[0-9a-f]{8}: ((?:[0-9a-f]{2} ){16}).+')
def exec_cmd(s, cmd):
    # print('executing %s' % cmd.decode())
    s.write(b'%s\n' % cmd)
    lines = []
    line = ''
    while True:
        b = s.read()
        if b == b'\n':
            line = line.rstrip('\r\n')
            lines.append(line)
            line = ''
            continue
        elif b == b'' and line.startswith('SigmaStar # '):
            break
        line += b.decode()
    return lines
def read_mtdparts(s):
    lines = exec_cmd(s, b'mtdparts')
    lines = lines[4:]
    res = []
    for line in lines:
        m = MTD_PAT.match(line)
        if m is None:
            continue
        idx, name, size, offset = m.groups()
        size = int(size, 16)
        offset = int(offset, 16)
        res.append((name, offset, size))
    return res
def parse_hex_dump(lines):
    buf = bytearray()
    for line in lines:
        m = HEX_PAT.match(line)
        if m is None:
            continue
        bb = binascii.unhexlify(m.group(1).replace(' ', ''))
        buf.extend(bb)
    return bytes(buf)
def read_nand_offset(w, s, offset, size, pb):
    bs = min(size, 0x1000)
    exec_cmd(s, b'nand read.e 0x22000000 0x%x 0x%x' % (offset, size))
    off = 0
    while size > 0:
        size -= bs
        lines = exec_cmd(s, b'md.b 0x%x 0x%x' % (0x22000000 + off, bs))
        off += bs
        buf = parse_hex_dump(lines)
        w.write(buf)
        pb.update(bs)
def read_part(s, part):
    name, offset, size = part
    with open('%s.bin' % name, 'wb') as w:
        off = 0
        with tqdm(total=size) as pb:
            while size > 0:
                bs = min(size, 0x100000)
                size -= bs
                read_nand_offset(w, s, offset+off, bs, pb)
                off += bs
def main():
    s = serial.Serial('COM29', 115200, timeout=0.001)
    parts = read_mtdparts(s)
    for part in parts:
        read_part(s, part)
    s.close()
if __name__ == '__main__':
    main()
Наиболее интересным для старта мне показался раздел rootfs. На нём, как я предполагал, должен храниться файл /etc/shadow (/etc/passwd) прочитав который я смогу извлечь хэш и отправить его на брут в hashcat.
Уже не помню за сколько часов, но дамп файловой системы я получил, извлёк тамошний squashfs и отправил в брутилку лежавший там хэш:
root:$1$5I0IijLd$hE844yBxBeWIy1CvW3elD/:::::::Пароль оказался простой: wheatfa, и с ним я смог успешно подключиться к камере.
На удивление, очень часто встречаемый в IoT-устройствах заменитель bash - busybox оказался ничуть не урезанным: в нём была доступна нужная мне команда ftpd. Через неё я в итоге и сдампил всё содержимое камеры целиком.


Конец?
По идее, на этом можно было бы и закончить этот мини-проект, но я за каким-то чёртом взялся смотреть что же там на других открытых TCP/UDP портах делается. И, опять же, лучше бы не брался - только настроение портить...
- во-первых, у протокола передачи видео-потока RTSP, который поддерживается камерой, напрочь отсутствует аутентификация (а может и не нужна она на микроскоп-камере?) 
- во-вторых, открытые сервисные порты, у которых, по-видимому, одно предназначение - быть бэкдорными (получение изображений, запись видео), правда без возможностей удалённого исполнения команд 

Более детально я не копался, решив ограничиться выключением заменой пароля на telnet. Но, к сожалению, просто так заменить пароль не удалось: squashfs - файловая система, которая монтируется только на чтение. И единственный способ в данном случае - переписать rootfs. План действий приблизительно такой:
- 
Сделать дамп раздела rootfsс помощью команды:nanddump -o -b -f /tmp/mtd8.bin /dev/mtd8
- 
Скопировать файл /tmp/mtd8.binна ПК с линуксом (WSL пойдёт) и распаковать его командой:unsquashfs ./mtd8.bin
- 
Сгенерировать новый безопасный пароль (не используйте хэш из примера) и заменить старый хэш на новый: openssl passwd -1 -salt 12345678 12345678 $1$12345678$f8QoJuo0DpBRfQSD0vglc1 vi ./squashfs-root/etc/shadow
- 
Посмотреть информацию о дампе командой file mtd8.bin, записатьblocksizeи тип сжатия (compressed)file mtd8.bin mtd8.bin: Squashfs filesystem, little endian, version 4.0, xz compressed, 1944296 bytes, 420 inodes, blocksize: 131072 bytes, created: Sat Dec 2 06:33:06 2023
- 
Упаковать файловую систему в новый файл: mksquashfs squashfs-root/ rootfs_new.bin -noappend -always-use-fragments -comp xz -b 131072
- Выровнять - rootfs_new.binдо 8 байт FF-байтами
- Зайти в U-Boot и стереть - rootfsкомандой- nand erase.part rootfs
- Записать (удобнее всего скриптом) в оперативную память содержимое файла - rootfs_new.binс помощью команд- mw.q 0x22000000 aabbccddaabbccdd.
 У меня данный процесс занял где-то час - писать по 8 байт дело небыстрое.
- Записать содержимое оперативной памяти в nand командой - nand write.e 0x22000000 rootfs
Код обратного дампера
import binascii
import struct
import time
import serial
import re
from tqdm import tqdm
MTD_PAT = re.compile(r'^(?: +)?(\d+): (\w+)(?: +)?(0x[0-9a-f]+)\t(0x[0-9a-f]+)\t0$')
HEX_PAT = re.compile(r'[0-9a-f]{8}: ((?:[0-9a-f]{2} ){16}).+')
def exec_cmd(s, cmd):
    print('executing %s' % cmd.decode())
    s.write(b'%s\n' % cmd)
    lines = []
    line = ''
    while True:
        b = s.read()
        if b == b'\n':
            line = line.rstrip('\r\n')
            lines.append(line)
            line = ''
            continue
        elif b == b'' and line.startswith('SigmaStar # '):
            break
        try:
            line += b.decode()
        except:
            pass
    return lines
def write_part(s, name, buf):
    exec_cmd(s, b'nand erase.part %s' % name.encode())
    lb = len(buf)
    with tqdm(total=lb) as pb:
        for i in range(lb // 8):
            val = struct.unpack_from('<Q', buf, i * 8)[0]
            xx = b'mw.q 0x%x %016x' % (0x22000000 + i * 8, val)
            exec_cmd(s, xx)
            pb.update(8)
    exec_cmd(s, b'nand write.e 0x22000000 %s 0x%x' % (name.encode(), lb))
def main():
    s = serial.Serial('COM29', 115200, timeout=0.001)
    with open('mtd8_new.bin', 'rb') as f:
        buf = f.read()
        write_part(s, 'rootfs', buf)
    s.close()
if __name__ == '__main__':
    main()
Всё вышеописанное можно было бы сделать быстрее, будь на устройстве утилита стирания флеша. Простой записью в /dev/mtd8 файла с FF-ками я также просто ушатал раздел.
Заключение
В общем, как-то так. Разгорячившись, я расковырял ещё одну свою камеру (видеонаблюдения) от TP-Link, и всё, что в итоге сделал - выбросил её в мусорку. Ситуация там примерно та же. Но об этом уже как-нибудь в другой раз.
Комментарии (115)
 - SlavikF09.01.2025 19:10- Насколько я разбираюсь в защите, открытый порт - это конечно нехорошо, но это не самая большая проблема, потому что вероятность того, что камера будет торчать в Интернет всеми портами - небольшая. - Более серьёзная проблема - это если камера сама начнёт подключаться к серверам в Интернете и сливать туда что-нибудь... - Обе эти проблемы легко решаются, если поместить их в VLAN, изолированную от Интернета. 
 - JBFW09.01.2025 19:10- Да господи, обычная китайская камера. И скорее всего - она как раз и полезет подключаться во внешний мир, к своему облаку. 
 А вот через это облако (пугающим загробным голосом) она-то и может перепрошиться на вариант с бекдорами!- Это не баг, это фича - с какого-нибудь родного приложения подключаться и смотреть, через то облако. - Отрубите ей выход в интернет, и всё.  - Popadanec09.01.2025 19:10- Не факт что она будет работать без интернета, видя что подключена по wi-fi.  - Kanut09.01.2025 19:10- Её же можно подключать через её собственный Wi-Fi. Какой смысл делать так чтобы она не работала без интернета? - Более того ну вот купит кто-то такую камеру, отключит ей доступ в интернет. Она не будет работать. Ну сдадут её по гарантии и всё. И будет у камеры относительно много возвратов и куча магазинов перестанет её продавать. Отличный план.  - kenomimi09.01.2025 19:10- Какой смысл делать так чтобы она не работала без интернета? - У меня 2 камеры валяются, которые без интернета через 3-4 минуты отключаются. Причем проверяет коннект до облака xmeye - нет ответа, всё, уходит в спящий режим. Причем есть возможность подключения к регистратору, но опять же только при наличии интернета...  - Kanut09.01.2025 19:10- И что помешало вам их вернуть по гарантии?  - Popadanec09.01.2025 19:10- Тех поддержка продавца/онлайн магазина не поняла кейс с отключением интернета? "Камера нормально работает если доступ к интернету у неё есть? Значит она исправна, ваш возврат отменяем." Как то так. - То что облако через какое то время умрёт и камера станет бесполезной, производителя не волнует. Всё равно купят.  - Kanut09.01.2025 19:10- "Включил. Она не работает. Возврат". Как-то так. - А если они начинают рассказывать про необходимость подключения к интернету, то тогда я спрашиваю где это было написано в описании продукта при покупке. И если это не было написано где-то в требованиях, то это их проблемы. По крайней мере так это работает у нас.  - Popadanec09.01.2025 19:10- Проверили, всё работает - недобросоветный покупатель, снизили рейтинг. Как то так.  - Kanut09.01.2025 19:10- Вы мне сейчас серьёзно хотите начать рассказывать что продавец проверяет возвраты на работоспособность? Особенно крупные маркетплейсы? Не смешите меня.  - Popadanec09.01.2025 19:10- А что он с ней сделает? Выкинет? У него денег куры не клюют? Проверка на исправность в любом случае идёт на каком то этапе.  - Kanut09.01.2025 19:10- Вернёт производителю чтобы тот сам разбирался. Продаст со скидкой всяким "посредникам", которые специализируются на возвратах. Или действительно просто выкинет. 
 
  - NutsUnderline09.01.2025 19:10- вобще то да. мне несколько раз звонили переуточняли разные моменты - явно перепроверяли работу  - NutsUnderline09.01.2025 19:10- в моем случае было "работает, но не понравился". а спрашивали например - не я ли поставил пароль на bios ноута, т.е. включали, проверяли - только да, не маркетплейс, а федеральная сеть 
  - Kanut09.01.2025 19:10- в моем случае было "работает, но не понравился" - А это вообще отдельная тема. У нас вообще по закону если покупаешь онлайн, то можно в течении двух недель вернуть без всякой причины. - И многие магазины и тем более маркетплейсы разрешают и дольше возвращать без причины. У Amazon например 30 дней и при этом ещё и возврат полностью за счёт Amazon'a. 
  - Irgen09.01.2025 19:10- И купленные дистанционно товары в таких случаях можно вернуть даже те, что не подлежат возврату в оффлайн-магазинах (нижнее бельё, ювелирка и т.д.) 
  - NutsUnderline09.01.2025 19:10- У нас вообще по закону если покупаешь онлайн, то можно в течении двух недель вернуть без всякой причины. - Именно этим я и воспользовался, хотя и в другом "у нас". Но суть в том что мало того что проверяли возвратный товар, так еще и перезванивали, и даже несколько странно потому что в bios я не лазил, мне не понраилось как win10 масштабирует в HD разрешение экрана 
  - Tomasina09.01.2025 19:10- Маркетплейс такие мелочи не интересуют (МП лишь витрина-посредник между поставщиком и покупателем). В лучшем случае связываться с вами будут те самые продавцы, чей товар, с целью понять можно ли его снова запустить в продажу (новый покупатель не будет такой привередливый), или дешевле списать. 
  - Tomasina09.01.2025 19:10- Рейтинг покупателя зависит от многих факторов, и продавец на него не сильно может повлиять. 
  - Astroscope09.01.2025 19:10- Рейтинг покупателя зависит от многих факторов, и продавец на него не сильно может повлиять. - А вы можете, пожалуйста, раскрыть тему подробнее? Довольно любопытно, как и по каким критериям они нас оценивают за наши же деньги. 
  - Tomasina09.01.2025 19:10- Смотря какой маркетплейс. Если взять самый крупный - WB, то там из факторов на рейтинг покупателя влияют: - -количество отказов от товара на ПВЗ (маркетплейсу невыгодно возить товар обратно, переупаковывать и снова везти другому покупателю), - -сумма покупок (не заказов! зато можно в ЛК нарисовать красивую крупную сумму "Вы за год заказали товаров на 485 586 р., ваша персональная скидка +7%", и мало кто полезет высчитывать действует ли эта скидка, зато количество заказов увеличится), - -гендерность заказов (женщины покупают больше и чаще импульсивно), - -соотношение количества заказов из проводимых акций (внушаемость покупателя), - -возрастной класс товаров (если покупает пеленки, можно в рекомендации подсунуть крема и игрушки - вероятность заказа высокая), - -соотношение количества плохих и хороших отзывов (привередливый и вечно недовольный покупатель невыгоден - мало заказов, много возвратов, много негативных отзывов - что тоже влияет на прибыль от последующих покупателей этого товара), - -регион заказов (в июне на летние товары можно понизить скидку маркетплейса и/или повысить комиссию продавца в этой категории, что увеличит прибыль МП), - -регион получения (если меняется слишком часто - это плохо), - -частота смены адресов ПВЗ и IP адреса, - -привязка заказов к геолокации приложения, - -модель смартфона, из которого делается заказ (более 85% заказов идут с мобильных устройств, у кого iPhone - можно выдать товары подороже), - -частота смены источников оплаты, - -связь имени покупателя в ЛК и имени с привязанной карты (если совпадает - такому доверия больше), - -предрасположенность к категориям товаров (например, косметика или товары для дома), - -частота заказа датовых товаров (если в феврале много заказала подарков из категории "подарки для мужчин", то в следующем январе можно чаще выдавать персональные рекомендации из этой же категории - просто чтобы "засело в голове", а ближе к дате показывать более дорогие товары из этой категории), - -предрасположенность к порогу скидок (если покупатель чаще заказывает товары где скидки 70-85%, то ему можно подсунуть товар с итоговой ценой 7990 р., хотя по тому же поисковому запросу можно было и показать тот же товар другого продавца со скидкой 35-50% и итоговой ценой 6849 р.), и пр. - Все факторы оцениваются в условных баллах и влияют на общий рейтинг покупателя. - В любом случае, тут все заточено на извлечение прибыли и минимизацию затрат - постоянному покупателю можно дать персональные скидки, он в приоритете перед новорегами, так как принесет больше денег. - BigData и цифровая аналитика во всем великолепии. - Сами видите, продавцу тут почти не на что влиять. 
  - Astroscope09.01.2025 19:10- Смотря какой маркетплейс. - Aliexpress, Amazon, Ebay - вот эти в первую очередь. 
  - Kanut09.01.2025 19:10- Я не знаю как это точно работает у Amazon. Но они 100% этим занимаются. - У нас относительно большой "оборот" на Амазоне(подписки на товары, покупки лоя моих родителей и родителей жены). Плюс мы относительно мало отсылаем назад и в целом не особо "проблемные" клиенты. - И у меня примерно половину времени Prime бесплатный. То есть я беру его на год. Потом отменяю подписку и Амазон дарит мне полгода. Плюс регулярно даёт бесплатный доступ к платному контенту в стриминге. - Кроме того они мне регулярно предлагают "напишите рецензию и мы вернём деньги за этот товар". - Плюс постоянно всякие скидки и купоны на товары. - И это однозначно не всем клиентам одинаково предлагают. Ну или по крайней мере если я общаюсь со своими знакомыми, то это у всех по разному. 
 
 
 
 
 
 
  - kenomimi09.01.2025 19:10- Какая гарантия у б\у крутящихся камер по 300 рублей штука? В приличном же девайсе такое никто не сделает, это явно баг, а не фича - куча других камер xmeye и yoosee, которые попадали мне в руки, такой дурью не страдали.  - Tomasina09.01.2025 19:10- Гарантия, что оно выдержит пару включений, т.е. заводское ОТК пройдет и у покупателя заработает. Насколько долго будет работать - производителю уже совсем неважно, главное продать побольше. 
 
 
 
 
 
 - Naves09.01.2025 19:10- Выглядит как прошивка от обычной камеры видеонаблюдения, просто вместо камерного объектива штуцер на внешний объектив микроскопа. И HDMI вместо Ethernet. - Обычно у китайских камер в комплекте идет QR-код для подключения к камере через китайское облако с дружбой и опекой от старшего брата. - А открытый RTSP это даже хорошо и удобно. Сохранили ссылку для VLC и больше никакого софта от братьев не нужно. 
 - N1X09.01.2025 19:10- Записать (удобнее всего скриптом) в оперативную память содержимое файла - rootfs_new.binс помощью команд- mw.q 0x22000000 aabbccddaabbccdd.
 У меня данный процесс занял где-то час - писать по 8 байт дело небыстрое.
 - Там же слот для карточки памяти виднеется, в UBoot должна быть команда fatload, которая умеет с fat32 раздела лить в ОЗУ, и tftp клиент обычно тоже, если его специально не вырубили  - DrMefistO Автор09.01.2025 19:10- Да, просто привычка так лить, в условиях ограничений которые мне обычно попадались 
  - JBFW09.01.2025 19:10- ну так оно всякое бывает, вплоть до удаления оттуда всего кроме md. 
 Не пробовали через md память по 256 байт считывать? )
 
 - Dynasaur09.01.2025 19:10- а почему разъём для снятия видеосигнала кабелем (USB VIDEO) стандарта USB 3, а через Wi-Fi свисток - USB 2.0? скорость первого значительно выше. Почему через свисток хватает меньшей скорости, в этом есть какой-то смысл? А нельзя свисток воткнуть в USB VIDEO? Ведь оба порта одновременно не будут задействованы, зачем их вообще, два?  - DrMefistO Автор09.01.2025 19:10- Он попросту не маунтит девайсы типа свистка на других портах - судя по всему, это захардкожено. 
 
 - daggert09.01.2025 19:10- Вы это называете бэкдором? Пф... - Берем пачку камер Tiandy/Besder или т.п. и втыкаем их в сеть. Каждую настраиваем. Каждой даем пароль, айпи. После чего подключаем регистратор одной из этих фирм в сеть и нажимаем кнопку "автонастройка" - и все ваши камеры сами подключаются в рег, все камеры берут свои пароли (им отдает рег), все камеры можно настраивать через этот регистратор.  - DrMefistO Автор09.01.2025 19:10- Ну я же не претендую на обнаружение "самого бэкдорного устройства":) - Мне кажется, тут нет предела "совершенству". 
  - Lordbander09.01.2025 19:10- Ну так они(камеры) все это делают по внутреннему протоколу вендора. Сделано для ламеров, для настройки аля plug&play. Что в этом плохого? Ну украл ты камеру, она без пароля заведется на другом регистраторе этого вендора. А вот к ONVIF, без хард-ресета ты ее не подключишь. А тут уже, как вендор замудрил - кнопочкой, или запросом через сайт, по серийнику камеры. - Вопрос можно ли через регистратор "мастер"-пароль камеры махнуть???  - daggert09.01.2025 19:10- Плохо то что оно перенастраивает айпи у камеры, даже если на ней был установлен пароль. Плохо что я могу с рега все параметры настроить по картинке. Мне не к чему даже пользователя на камере сбрасывать - бери и пользуйся. - Это и проблема для меня потому что пользователь может поставить устройство новое и я всю настроенную сесть потеряю. Проблема эта и в том что камеру есть смысл воровать - даже сбрасывать не надо. - Это дыра. Дыреень… тот-же хайвоч такого себе не позволяет - камеры видет, но без пароля ты их не добавишь.  - Lordbander09.01.2025 19:10- Это и проблема для меня потому что пользователь может поставить устройство новое и я всю настроенную сесть потеряю. Проблема эта и в том что камеру есть смысл воровать - даже сбрасывать не надо. - Ну да, прикольно )) пришел с мини региком, воткнулся вместо камеры и все подцепил в системе на себя. Если честно, то в такое даже не верится. 
  - LF69ssop09.01.2025 19:10- Вам плохо, другим хорошо. Дуализм мироустройства. - Лично я категорически против любых локов которые нельзя сбросить простым способом при физическом доступе к устройству.  - daggert09.01.2025 19:10- Т.е. вы считаете что это нормально что подключившись в вашу сеть каким либо образом - я могу все камеры скинуть с их адресов? Без физического доступа к самим камерам btw. - Лично я за простую кнопку reset. Пусть она будет внутри камеры, чтоб случайно не нажать. Но уж точно против такого.  - kvazimoda2409.01.2025 19:10- Используйте правильные управляемые коммутаторы, которые не позволяют подключившись вместо одной камеры получить доступ ко всем остальным.  - Astroscope09.01.2025 19:10- Используйте правильные управляемые коммутаторы - Ваш совет очень правильный в принципе, но плохо применимый на практике, потому что на практике пользователи таких камер и вообще всего такого подобного - не IT-специалисты (профессионалы или энтузиасты), а "просто пользователи", которые сейчас вообще не поняли, о чем вы, и даже не прочитали, потому что им ничего не понятно и неинтересно на Хабре - не их тема Ведите, по мере своих сил, разъяснительную работу среди них. Я серьезно, лучшего решения, чем "спасать" ближайших знакомых, я не вижу.  - kvazimoda2409.01.2025 19:10- Если человеку не хватает знаний понять, что он плохо разбирается в данном вопросе, и ему, как минимум, требуется консультация специалиста, то просветительская работа не поможет. А если человек придёт ко мне с вопросом про организацию безопасной и отказоустойчивой сети, то конечно я ему обьясню риски того или иного решения. Приходят только тогда, когда уже ничего не работает...  - muxa_ru09.01.2025 19:10- Ну вот в том то и суть, что эти камеры продаются с позициоинрованием как для тех кто не разбирается. И обсуждаемый функционал нужен именно для того, чтобы мог использовать человек который не разбирается. - В итоге имеем ситуацию "сделай так чтобы даже идиот мог этим пользоваться и только идиот сможет этим пользоваться", когда надо иметь достаточно высокую высокую квалификацию, чтобы нейтрализовать проблемы возникающие из-за вот этого "даже идиот сможет пользоваться".  - kvazimoda2409.01.2025 19:10- К сожалению, такова природа человека. Если можно где-то не думать, большинство там думать и не будет, т.к. думать — это довольно энергозатратный процесс. - Ну, а пытаться всех насильно научить — бесперспективное занятие.  - muxa_ru09.01.2025 19:10- Тут нет ситуации "надо научить", тут есть ситуация "делают заведомо проблемную хрень, якобы для ширнармасс, но рисков при этом не объясняют и ширнармассам, ни тем кто мог бы взять что-то другое". - Ну и вторая проблема в том, что на рынке просто может не быть этого другого, потому что все делают на одной плате и с одной прошивкой. - Нет такого, что пишут "это товар только для личного жилья, где есть только один регистратор и к сети которого не подключаются посторонние". 
  - kvazimoda2409.01.2025 19:10- Я не совсем понимаю, что вы хотите. Те, кто разбирается в вопросе, купят себе подходящее оборудование. Те, кто не разбирается и понимает это, проконсультируются с первыми. А те, что не хочет ничего решать, а хочет чтобы просто работало, купят облачную WiFi камеру. И пока это будет одна камера, оно может даже будет у них работать. Какое-то время. Пока либо "хакер" не начнёт через встроенный динамик пугать, либо камера не сдохнет из-за сомнительных технический решений и экономии на комплектующих, либо пока облако не выключат. - Я уже неоднократно наблюдал то, как вполне себе небедные люди то ли экономили, то ли в целом не задумывались, и в результате получали квартиру на 150+ кв.м. без какого-либо интернета. А всё потому, что они поверили в волшебство беспроводных техногий, и решили, что WiFi роутера размером с два спичечных коробка, замурованным в стену монолитного дома, будет достаточно для покрытия ВайФаем всех тех квадратных метров. И при этом скорость будет достаточная, чтобы смотреть 4К видео на трёх разных телевизорах, параллельно с просмотром ютубчика на смарфоне. - Когда же приходит осознание, что интернет у них теперь только в прихожей. А т.к. это высокий этаж, то и сотовая связь так себе. В квартире не проложено ни одного провода. Ну и начинаются извращения, типа цепочек точек доступа, зацепленных друг за друга по радиоканалу, с соответствующим падением скорости. Конечно, 4К видео если и посмотришь теперь, то только пережатое с Ютуба и только на одной устройстве единовременно. Зато хотя бы мессенджеры по всей квартире работают... - И этой истории уже лет 15. Тогда ещё не было облачных камер, не было быстрых ВайФаев на 5ГГц. И даже тогда народ умудрялся стрелять себе в ногу. Ничего не меняется, и неграмотные люди так и остаются неграмотными. Они так и думают, что всё работает на волшебстве. Что можно купить камеру в Китае за 1000 рублей с учётом доставки, и получить возможность писать и смотреть видео из любого места, где есть интернет. И пока будет спрос на такое, будет и предложение. - Что же до бизнеса, то тут уже хозяин этого бизнеса должен сам оценивать риски и цену облачного видеонаблюдения, облачной бухгалтерии, облачного сайта, облачного... 
  - Astroscope09.01.2025 19:10- В квартире не проложено ни одного провода. - Все давно уже беспроводное, даже наушники. /s 
  - Kanut09.01.2025 19:10- А всё потому, что они поверили в волшебство беспроводных техногий - У меня дом с двумя жилыми этажами, подвалом и чердаком. Везде всё работает через Wi-Fi и нет никаких проблем. - П.С. И да, куча вещей отлично работает "из коробки" без того чтобы нужно было в этом разбираться. Но да, это редко бывает в случае с условной китайской дёшевкой. 
 
 
 
 
 
 
 
 
 
  - JBFW09.01.2025 19:10- отключить на регистраторе DHCP сервер, и пусть ваш сервер (роутер?) адреса раздаст. А потом на нём же их и прибить гвоздями к маку камер. - Это как раз не проблема, если вы - хозяин сети.  - daggert09.01.2025 19:10- Это не так работает. Я ставлю клиенту сеть - еес-но я все прибиваю гвоздями и камеры в т.ч.. Проблема не в этом. Проблема в том что пользователь может нажать кнопку «автонастройка» и все настройки у камер пойдут по одному северному зверьку. - И это было-бы не так страшно, еслиб у меня на этих адресах, которые дает рег, не сидели кассовые места, и к каждой камере не было-б подключено до трех регов. - По итогу приезжаешь - а у тебя 40-50 камер сменили настройки… 
 
 
 - Vest09.01.2025 19:10- Мне было бы интересно почитать про TP-Link. Я как-то рассматривал их камеры для подключения к Synology. - Но так и не определился, поэтому подзабил пока.  - rostislav-zp09.01.2025 19:10- У меня к synology hickvision и tplink tapo подключены.все нормально работает.правда с tplink есть нюанс-при активной подписке tapo care - камера работает только через родное приложение и перестает отдавать rtsp  - Akr0n09.01.2025 19:10- В Tapo, судя по всему, ещё и на новых прошивках простейший детект движения отключили, теперь только через облако. Выход - даунгрейдить прошивку.  - rostislav-zp09.01.2025 19:10- Все как и прежде работает.без подписки и проброса портов,уведомление приходит.правда я его не проверяю.детекция через dva1622 идет и отправляется в телегу сразу.работает намного лучше 
 
 
  - Akr0n09.01.2025 19:10- К Synology можно подключить любую камеру с RTSP, потом просто зарезать ей доступ в интернет на роутере. Хоть с какими бэкдорами могут быть камеры, ничего слить они не смогут без интернета.  - Vest09.01.2025 19:10- Да. Я так и думал, просто не ожидал такого выражения, что tp-link с дырами. - У моих знакомых роутеры, свичи и точки от tp-link. Я теперь заинтересовался, что в них открыто. 
 
 
 - nikolz09.01.2025 19:10- «Судьба проказница шалунья, Определила так сама, Всем глупым-счастье от безумья. Всем умным-горе от ума» 
 - voldemar_d09.01.2025 19:10- Посмотрел на Алиэкспрессе - эта камера реально около 8 сотен баксов стоит?  - DrMefistO Автор09.01.2025 19:10- Плюс-минус.  - voldemar_d09.01.2025 19:10- Есть же какие-то радиолюбительские микроскопы, которые целиком в такую сумму укладываются? Сорри за чайниковский вопроc: для каких применений именно такая камера нужна? То, что у нее чувствительность хорошая, это понятно, но обычно в микроскопе света достаточно, нет?  - DrMefistO Автор09.01.2025 19:10- У меня был такой, за 37к когда-то на алике брал. Понял, что света как раз и не хватает. Насобирал и купил Лейку. 
  - DrMefistO Автор09.01.2025 19:10- Применение - ровно такое как описано было в статье. Конечно, без влияния Викона не обошлось - у него подсмотрел про Лейку)  - voldemar_d09.01.2025 19:10- Я вовсе не местный гуру :) где про это прочитать можно?  - DrMefistO Автор09.01.2025 19:10- На ютубе: vik-on / vik-off, микроскоп Leica. Видео: https://youtu.be/hShS566LIk4 
 
 
 
 
  - kenomimi09.01.2025 19:10- Там крутые матрицы стоят, без шакалов, диких шумов, и прочего. Большого размера, как в мыльницах. - Кстати, есть лайфхак - на многих зеркалках есть hdmi. Берем любую в пределах 10-15к на вторичке, докупаем копеечные макро-колечки на али и подставку, и получаем шикарный микроскоп.  - voldemar_d09.01.2025 19:10- У зеркалок большая матрица - в плане малошумности это плюс, но глубина резкости очень маленькая. Сам не пробовал такой микроскоп делать, но когда-то давно баловался с макрокольцами, реально меньше миллиметра ГРИП может быть при сильном увеличении. - А какую подставку можно для этих целей использовать, есть ссылка на пример?  - kenomimi09.01.2025 19:10- Мощная лампа из нескольких колечек светодиодной ленты (или готовое кольцо для круглых автомобильных фар) и закрученая наглухо диафрагма решат проблему малого ГРИП. Фоткать так не стоит, а вот для микроскопа самое то. - Есть мини-штативы со струбциной. К ним докупается один или пара гибких соединений. Легкие зеркалки отлично держит. Ну или напечатать подставку на 3д-принтере, если тот есть. 
 
 
 
 - peacemakerv09.01.2025 19:10- @DrMefistO, для вашей дейтельности, приглаглашаю стать beta-тестером моей утилиты PCBComparer2 для реверс-инжиниринга, которая позволит, я надеюсь, удобнее ковыряться в платах:  - одновременно с обеих сторон - Скрытый текст- Кстати, может неплохая идея встроить в программу окно просмотра с камеры (микроскопа), вместо одной из сторон платы...  - DrMefistO Автор09.01.2025 19:10- Идея прикольная. Только вряд ли у меня будет время её потестировать. 
 
 - ImagineTables09.01.2025 19:10- А есть тупые камеры на проводе без вайфая и без мозгов? Такие же по характеристикам? То, что толстый провод это неудобно, я прочитал, но не впечатлился. Жизнь вообще боль.  - NutsUnderline09.01.2025 19:10- конечно есть. более того, в эту камеру тоже можно не вставлять usb-wifi адаптер.  - DrMefistO Автор09.01.2025 19:10- Да, именно. Свисток - исключительно моей хотелкой для удобства был.  - madcatdev09.01.2025 19:10- Кстати, большинство телефонов сейчас поддерживают USB-OTG, и можно подключать стандартные USB (UVC) камеры без проблем, на маркетах есть приложения от разных вендоров. Камера при этот доступа в сеть иметь не будет :) 
 
  - ImagineTables09.01.2025 19:10- можно не вставлять usb-wifi адаптер - Если можно вставлять, это уже слишком умная, как по мне. - Мы все знаем, что делают слишком умные телевизоры, холодильники и пр. И для этого даже не надо порты перебирать. 
 
 
 - belostotskii09.01.2025 19:10- достать хеш пороль простыми командами и получить доступ к камере)) Спасибо за статью - прикольно 
 
           
 








aborouhin
Честно говоря, не понял, на чём строится предположение, что это бэкдор, а не раздолбайство разработчиков прошивки? Довольно странно делать бэкдор в виде открытого порта для устройства, которое в 99% случаев напрямую торчать в интернет с реальным IP не будет... Я бы тут всё же бритву Хэнлона применил :)
DrMefistO Автор
Другие порты, не рассмотренные детально в статье как довесок к telnet-у. Да и я смотрю на тенденцию. К тому же, пароль от telnet нигде не фигурирует в документации.
aborouhin
Ну в документации он не фигурирует потому, что этот функционал для пользователей не предназначен. А словарный пароль и открытые порты уже - из раздолбайства.
Меня такие "бэкдоры", наоборот, радуют. Вот есть, скажем, аляповатые пластиковые уличные камеры видеонаблюдения, которые работают через жутко кривое, набитое рекламой своего китайского облака и, наверняка, реальными бэкдорами и трекерами всего, чего только можно, приложение V380. Но сами камеры на удивление неплохи по качеству картинки и фичам (PTZ, подсветка, всё достойно) - по ходу, производитель зарабатывает на том самом облаке, а на железках демпингует. Но если в эту камеру вставить SD-карту, на которую положить магический INI-файлик, то неожиданно открывается стандартный ONVIF и RTSP, после чего про ужасное приложение можно забыть и завернуть камеры в свой VLAN, где им соединяться разрешено только с одним локальным сервером. В документации про это, естественно, ни слова. Но разве плохо? Хорошо же :) Наверняка там можно и шелл получить, кстати, только вот с учётом наличия более простого пути - не особо и нужно.
Lordbander
А можно содержимое .ini файлика? Не слышал про такое, и моя китайщина дома, очень плохо дружит с Onvif. Я умудрился конечно ее в свою сетку через iSpy без пароля подрубить, но что-то в ней не то.
aborouhin
Вот первоисточник, там два варианта по ходу обсуждения упоминаются, есть смысл попробовать оба. Но это именно для камер под облако V380, у которых никаких других интерфейсов, кроме родного мобильного приложения и облака, от рождения нет. Если у Вас камера просто "очень плохо дружит с ONVIF" (но в принципе оно есть) - вероятно, у Вас не оно.
DrMefistO Автор
По поводу не предназначенного функционала, кстати: спросил напрямую у вендора пароль от телнета, мол, в документации не нашёл. Так мне сказали: 12345678. Конечно же, этот пароль не подошёл.
N1X
Просто у сигмы есть SDK, под их соки, и это монструозная куча разношерстных исходников и всяких разных бинарей, слепленных в кучу малопонятными скриптами сборки, которое включает в себя IP, USB камеры, всякие наколенные утилитки для тюнинга видеотракта и т.д. Скорее всего из всего этого слепили проект, особо не заморачиваясь отключением ненужного...
В частности для работы с параметрами ISP у них есть сервер, который можно запустить (причем он сидит довольно глубоко в поставляемых в виде бинарей либах). Я уж не помню на каком порту он висит, но вполне возможно - на одном из этих...
Самое забавное кстати, если говорить про раздолбайство - в том SDK что я видел вся работа с IP ядрами видеотракта в SoC происходит через закрытые модули, при этом .ko скомпилен с отладочной информацией и гидра разворачивает это в неплохо читаемый исходник. Так что я поддерживаю цитату выше, про раздолбайство...
enamchuk
А потом вам провайдер подключает IPv6 и ваше устройство (возможно) начинает торчать голым портом в Интернет.
aborouhin
Если у Вас провайдер сам без Вашего ведома что-то подключает, а потом, видимо, ещё и Ваш роутер сам перенастраивает, отключая NAT, - бэкдоры в китайских камерах точно не главная проблема в Вашей ИБ :)
А вообще железки ограниченного функционала, типа IP-камер, должны сидеть в своём VLAN'е с доступом строго по белому списку. Потому как иначе они и без реального IP сами куда хотят соединятся и что захотят, сольют. О чём тут уже неоднократно правильно написали.
uranik
Это в каком роутере nat для ipv6 работает?
Mr_Boshi
Вроде же в микротиках на RouterOS 7 есть.
aborouhin
В OpenWRT есть ip6tables-mod-nat, хоть я его не использовал никогда. Но тут же не в этом суть, а в том, что даже если провайдер вдруг внезапно расщедрится выделить IPv6, нужны настройки - чтобы этот IPv6 на WAN принять (ну это, ОК, может по дефолту быть настроено), чтобы адреса IPv6 в локальной сети в принципе поддерживались, чтобы они автоматически назначались определённым образом. И я с трудом представляю себе роутер, который по факту "от провайдера неожиданно прилетел IPv6 адрес" сам без ручного изменения настроек раздаст адреса в локалку и пустит устройства из неё в сеть в обход ранее настроенного для IPv4 NAT'а. А если такой роутер вдруг существует (или, как некоторые провайдеры практикуют, роутер удалённо конфигурируется провайдером) - то см. выше, это само по себе дыра в безопасности такой величины, что на её фоне китайские бэкдоры - безобидная шалость.
sdore
Гуглите: SLAAC. Стандартная практика. Всё прилетит, всё само настроится, и всё, разумеется, включено на современных роутерах по умолчанию (как и должно быть).
Да, IPv6 — весьма оптимистичный с точки зрения ИБ протокол, имхо.
vladkorotnev
Большинство роутеров, которые я встречал в продаже в Японии, имели для IPv6 лишь одну галочку вкл/выкл, никаким натом там и не пахло, да и стояла она во включенном состоянии по умолчанию :-)
Aelliari
Если у вас включение IPv6 вызывает проблемы с безопасностью, значит у вас что-то не то с архитектурой сети и выбранными методами защиты
AllexIn
Думаете в каждом доме сидит квалифицированный сертифицированный админ, который может все дырки заранее заткнуть?
Да вы оптимист.
muxa_ru
Предлагаю ещё один вариант: это такая культура разработки, при которой данные пользователя не считаются чем-то важным и можно везде подряд вставлять доступ. На всякий случай. Мало ли что понадобится сделать или посмотреть.
Dm_Dm
Технический шпионаж
Tomasina
Все проще. Каждая прошивка собирается в SDK из готовых блоков "при помощи степлера и скотча". Китайцы живут сегодняшним днем, им важнее как можно быстрее сдать заказ и получить деньги, а вечером уже приступить к новому заказу. Поэтому стабильность, безопасность и поддержка где-то внизу списка приоритетов.