Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
u3000py — Client Python pour le protocole de contrôle WiFi local du dashcam Thinkware U3000, rétro-ingénieré à partir de l'application Android officielle. Outillage PoC derrière CVE-2026-101053, CVE-2026-101054 et CVE-2026-101055. | Kitploit
Outils/GitHubGitHub/turretsec/u3000py
Sécurité des Systèmes EmbarquésSécurité IoTAnalyse des VulnérabilitésExploitationRétro-ingénierieCollecte d'InformationsSécurité RéseauUtilitaires et FrameworksSécurité Matériel et IoTArticles et Recherche
GitHub
5il y a 6 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
turretsec/u3000py

u3000py

Client Python pour le protocole de contrôle WiFi local du dashcam Thinkware U3000, rétro-ingénieré à partir de l'application Android officielle. Outillage PoC derrière CVE-2026-101053, CVE-2026-101054 et CVE-2026-101055.

Voir le dépôt

u3000py

Un client Python pour le protocole de contrôle WiFi local du tableau de bord Thinkware U3000, rétro-ingénieré à partir de l'application Android officielle, confirmé sur du matériel réel, et non à partir d'une spécification publique (il n'y en a pas).

Ce projet a deux objectifs : une bibliothèque utilisable pour extraire les séquences vidéo de votre propre tableau de bord, et du matériel de support pour une divulgation de CVE complétée (voir Sécurité ci-dessous).

Avant de l'utiliser

  • Le protocole de contrôle de la caméra n'a ni authentification ni chiffrement. Toute personne sur le même réseau que la caméra peut émettre n'importe quelle commande que cette bibliothèque peut émettre.
  • Chaque comportement de cette bibliothèque est soit confirmé sur du matériel réel, soit explicitement signalé comme non vérifié dans sa docstring. Voir docs/protocol-reference.md pour le détail complet de ce qui est solide et de ce qui est une supposition.
  • Une poignée de méthodes sont protégées par confirm=True parce qu'elles sont destructrices (formatage de la carte SD) ou parce qu'elles peuvent déconnecter la caméra du réseau que vous utilisez pour l'atteindre (set_wifi_mode, connect_to_ap, etc.). Lisez la docstring avant de passer confirm=True sur l'une d'elles.

Installation

Pas de publication PyPI. Installez directement depuis GitHub :

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

Ou sans le CLI, juste la bibliothèque :

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

Ou épinglez à une version taguée :

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

Démarrage rapide

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)

Ou depuis la ligne de commande, une fois installé avec l'extra [cli] :

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

--host est requis à chaque invocation, soit via le flag montré ci-dessus, soit via la variable d'environnement U3000PY_HOST si vous préférez ne pas le répéter.

Ce qu'il peut faire

  • Statut : informations sur l'appareil, statut système, espace libre, GPS, identifiants WiFi (oui, la caméra les renverra à quiconque les demande, voir Sécurité), télémétrie en direct, nombre de hotspots
  • Fichiers : parcourir n'importe quel répertoire, lister/catégoriser les enregistrements, télécharger avec progression, générer des vignettes
  • Configuration de la caméra : changer de canal de prévisualisation, activer/désactiver l'enregistrement audio, réinitialiser le GPS/ADAS, réinitialisation d'usine, formater la carte SD
  • Gestion WiFi/hotspot : se connecter à des réseaux, gérer les points d'accès enregistrés, gérer le hotspot propre à la caméra, changer de mode WiFi
  • Diagnostics : données d'événements de stationnement, historique d'état, informations modem (cet appareil semble n'en avoir aucun)

Le détail complet méthode par méthode, y compris quels résultats proviennent de tests sur matériel réel et lesquels sont des suppositions éclairées en attente de vérification, se trouve dans le document de référence du protocole.

Ce qui est délibérément absent

  • PUT_FILE : confirmé comme permettant des écritures de fichiers arbitraires non authentifiées vers n'importe quel chemin absolu du système de fichiers de la caméra. C'est l'une des trois découvertes de CVE ; livrer une méthode générique d'écriture n'importe où dans une bibliothèque publique reviendrait à fournir un outil d'attaque prêt à l'emploi. Détails complets dans disclosure-thinkware-u3000.
  • Flasher le firmware : ce n'est pas une décision de sécurité, c'est une décision « s'il vous plaît, ne briquez pas votre propre tableau de bord ». Aucune vérification de signature ni validation du fabricant n'a lieu à ce niveau.
  • Un démon keepalive/auto-sync : la connexion WiFi de la caméra semble nécessiter soit l'application officielle ouverte, soit un battement de cœur périodique pour rester joignable. Fonctionnalité réelle et utile, délibérément hors périmètre de ce dépôt, prévue comme projet séparé.
  • Tout ce qui se comporte comme un shell distant générique : chaque méthode ici correspond à une opération de caméra spécifique et nommée. Rien ici n'est une primitive paramétrée de type « exécuter une commande arbitraire ».

Tests

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

Un script de smoke-test autonome pour le CLI lui-même se trouve dans scripts/smoke_test_cli.py. Il ne fait pas partie de la suite pytest (il invoque la vraie commande u3000py installée contre une vraie caméra) pour des vérifications de bon fonctionnement après modifications.

Documentation

  • docs/protocol-reference.md : le protocole rétro-ingénieré complet ; format de transmission, chaque commande confirmée, ce qui reste non vérifié, et les mystères ouverts connus (quelques choses ne se comportent vraiment pas comme les conventions du protocole lui-même le laisseraient prédire).

Sécurité

Ce protocole n'a aucune authentification. Trois découvertes sont issues de cette recherche, entièrement documentées et divulguées dans un dépôt séparé : disclosure-thinkware-u3000.

  1. Écriture de fichier arbitraire non authentifiée via PUT_FILE (CVE-2026-101053 (VulDB #410915)), confirmée en écrivant dans le vrai répertoire /tmp de la caméra. Délibérément non exposée par cette bibliothèque (voir Ce qui est délibérément absent ci-dessus).
  2. Lecture de fichier arbitraire non authentifiée via LS/GET_FILE (CVE-2026-101054 (VulDB #410916)), sans aucune restriction de chemin. La méthode download() de cette bibliothèque démontre directement la primitive, par ex. cam.download("/tmp/wpa_supplicant.conf") lit le fichier de configuration WiFi actif de l'appareil.
  3. Divulgation d'identifiants WiFi en clair via GET_STATUS "wifi_info" (CVE-2026-101055 (VulDB #410917)). La méthode get_wifi_info() de cette bibliothèque démontre directement la primitive (avec le mot de passe masqué par défaut dans toute sortie imprimée, voir le repr() de WifiInfo).

Thinkware a été notifié le 2026-06-21. La fenêtre de divulgation de 30 jours s'est close le 2026-07-21 avec seulement un accusé de réception non technique et aucune confirmation de correction. Les trois découvertes restent reproductibles sur le firmware de production actuel. Des recherches antérieures connexes sur un autre modèle Thinkware (F800 Pro) par geo-chen sont référencées dans le dépôt de divulgation pour contexte.

Licence

MIT, voir LICENSE.

Télécharger l’outil