Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
u3000py — Python-клиент для локального WiFi-протокола управления видеорегистратором Thinkware U3000, полученный обратной разработкой официального Android-приложения. Инструментарий PoC для CVE-2026-101053, CVE-2026-101054 и CVE-2026-101055. | Kitploit
Инструменты/GitHubGitHub/turretsec/u3000py
Безопасность встроенных системБезопасность IoTАнализ уязвимостейЭксплуатацияОбратная инженерияСбор информацииСетевая безопасностьУтилиты и фреймворкиБезопасность оборудования и IoTСтатьи и Исследования
GitHubturretsec/u3000py

u3000py

Python-клиент для локального WiFi-протокола управления видеорегистратором Thinkware U3000, полученный обратной разработкой официального Android-приложения. Инструментарий PoC для CVE-2026-101053, CVE-2026-101054 и CVE-2026-101055.

Репозиторий
5 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

u3000py

Python-клиент для локального WiFi-протокола управления видеорегистратором Thinkware U3000, восстановленный реверс-инжинирингом из официального Android-приложения, подтверждённый на реальном оборудовании, а не из какой-либо публичной спецификации (которой не существует).

У этого проекта две цели: пригодная для использования библиотека для выгрузки записей с вашего собственного видеорегистратора и вспомогательные материалы для завершённого раскрытия CVE (см. Безопасность ниже).

Прежде чем использовать это

  • Протокол управления камеры не имеет ни аутентификации, ни шифрования. Любой, кто находится в одной сети с камерой, может отправить любую команду, доступную этой библиотеке.
  • Каждое поведение в этой библиотеке либо подтверждено на реальном оборудовании, либо явно помечено как непроверенное в её docstring. См. docs/protocol-reference.md для полного разбора того, что надёжно, а что является предположением.
  • Несколько методов защищены параметром confirm=True, потому что они деструктивны (форматирование SD-карты) или потому что они могут отключить камеру от сети, через которую вы к ней обращаетесь (set_wifi_mode, connect_to_ap и т. д.). Прочитайте docstring, прежде чем передавать confirm=True для любого из них.

Установка

Релиза на PyPI нет. Устанавливайте напрямую с GitHub:

pip install "u3000py[cli] @ git+https://github.com/turretsec/u3000py.git"

Или без CLI, только библиотеку:

pip install git+https://github.com/turretsec/u3000py.git

Или привяжитесь к помеченному релизу:

pip install git+https://github.com/turretsec/[email protected]

Быстрый старт

from u3000py import ThinkLinkClient, VideoCategory

with ThinkLinkClient("192.168.1.100") as cam:  # your camera's actual IP
    print(cam.get_device_info())
    print(cam.get_system_status())

    files = cam.list_files(VideoCategory.CONTINUOUS)
    latest = files[-1]

    def show_progress(received, total):
        print(f"\r{received / total:.0%}", end="")

    cam.download(latest.path, dest="latest_clip.mp4", progress=show_progress)

Или из командной строки, после установки с дополнением [cli]:

u3000py --host 192.168.1.100 info device
u3000py --host 192.168.1.100 files download --latest --category cont_rec

--host обязателен при каждом вызове — либо в виде флага, показанного выше, либо через переменную окружения U3000PY_HOST, если вы предпочитаете не повторять его.

Что она умеет

  • Статус: информация об устройстве, состояние системы, свободное место, GPS, WiFi-учётные данные (да, камера выдаст их любому, кто попросит, см. Безопасность), телеметрия в реальном времени, количество точек доступа
  • Файлы: просмотр любого каталога, список/категоризация записей, загрузка с прогрессом, генерация миниатюр
  • Конфигурация камеры: переключение канала предпросмотра, включение/выключение записи звука, сброс GPS/ADAS, сброс к заводским настройкам, форматирование SD-карты
  • Управление WiFi/точкой доступа: подключение к сетям, управление сохранёнными точками доступа, управление собственной точкой доступа камеры, переключение режима WiFi
  • Диагностика: данные о событиях парковки, история состояний, информация о модеме (у этого устройства, судя по всему, его нет)

Подробное описание каждого метода, включая то, какие результаты получены из реальных аппаратных тестов, а какие являются обоснованными предположениями, ожидающими проверки, находится в справочном документе по протоколу.

Чего здесь намеренно нет

  • PUT_FILE: подтверждено, что позволяет неаутентифицированную запись произвольных файлов по любому абсолютному пути в файловой системе камеры. Это одна из трёх находок CVE; включение в публичную библиотеку универсального метода записи куда угодно было бы выдачей готового к использованию инструмента атаки. Полности в disclosure-thinkware-u3000.
  • Прошивка firmware: это не вопрос безопасности, а вопрос «пожалуйста, не превратите свой видеорегистратор в кирпич». На этом уровне не происходит ни проверки подписи, ни валидации от производителя.
  • Демон keepalive/автосинхронизации: WiFi-соединение камеры, судя по всему, требует либо открытого официального приложения, либо периодического heartbeat, чтобы оставаться доступным. Реальная, полезная функция, намеренно вне рамок этого репозитория, запланирована как отдельный проект.
  • Всё, что ведёт себя как универсальная удалённая оболочка: каждый метод здесь соответствует одной конкретной, именованной операции камеры. Здесь нет ничего, что было бы параметризованным примитивом «выполнить произвольную команду».

Тестирование

pip install -e ".[dev]"
pytest -v                                  # unit tests, no camera needed
pytest -m hardware --host 192.168.1.100    # real-camera tests, opt-in only

Отдельный скрипт дымового тестирования для самого CLI находится в scripts/smoke_test_cli.py. Он не является частью набора pytest (он вызывает реально установленную команду u3000py против реальной камеры) для проверок работоспособности после изменений.

Документация

  • docs/protocol-reference.md: полный восстановленный протокол; формат передачи данных, каждая подтверждённая команда, что всё ещё не проверено, и известные открытые загадки (пара вещей действительно ведёт себя не так, как предсказывали бы собственные соглашения протокола).

Безопасность

Этот протокол не имеет аутентификации. Из этого исследования вышли три находки, полностью задокументированные и раскрытые в отдельном репозитории: disclosure-thinkware-u3000.

  1. Неаутентифицированная запись произвольных файлов через PUT_FILE (CVE-2026-101053 (VulDB #410915)), подтверждена записью в реальный каталог /tmp камеры. Намеренно не предоставляется этой библиотекой (см. Чего здесь намеренно нет выше).
  2. Неаутентифицированное чтение произвольных файлов через LS/GET_FILE (CVE-2026-101054 (VulDB #410916)), без каких-либо ограничений пути. Метод download() этой библиотеки демонстрирует этот примитив напрямую, например cam.download("/tmp/wpa_supplicant.conf") читает живой файл конфигурации WiFi устройства.
  3. Раскрытие WiFi-учётных данных в открытом виде через GET_STATUS "wifi_info" (CVE-2026-101055 (VulDB #410917)). Метод get_wifi_info() этой библиотеки демонстрирует этот примитив напрямую (с паролем, скрытым по умолчанию в любом печатаемом выводе, см. repr() у WifiInfo).

Thinkware была уведомлена 2026-06-21. 30-дневное окно раскрытия закрылось 2026-07-21 с лишь нетехническим подтверждением получения и без подтверждения исправления. Все три находки остаются воспроизводимыми на текущей производственной прошивке. Связанное предыдущее исследование другой модели Thinkware (F800 Pro) от geo-chen упоминается в репозитории раскрытия для контекста.

Лицензия

MIT, см. LICENSE.

Скачать инструмент