D-Link DCS-8000LH – Notes pour convertir une caméra cloud en caméra IP gérée localement
(github.com/bmork)- Journal des opérations et collection d’outils pour transformer la D-Link DCS-8000LH en caméra IP gérée localement, sans l’enregistrer dans l’application mydlink ni dans le service cloud
- Le firmware d’origine 2.01.03 est lié à l’application mydlink et au service cloud, et ne fournit pas d’API HTTP locale compatible NIPCA ni de streaming vidéo HTTP, HTTPS ou RTSP
- Les principales fonctionnalités obtenues sont la configuration du réseau et du mot de passe administrateur via Bluetooth LE, le streaming direct MPEG-TS en HTTP/HTTPS, le streaming direct RTSP, ainsi qu’une configuration d’API NIPCA prenant en charge des réglages comme la LED et le nightmode
- Le script
dcs8000lh-configure.pyinclus utilise le PIN Code figurant sur l’étiquette de la caméra et l’adresse MAC Bluetooth pour effectuer la recherche WiFi, configurer le WiFi, afficher les informations réseau, dumper les informations système, exécuter des commandes sur la caméra, activer telnetd, lighttpd et RTSP, et autoriser les firmwares non signés - La modification complète nécessite de modifier un des systèmes de fichiers à l’intérieur de la caméra, avec un risque de la rendre inutilisable en cas d’erreur
- Les versions testées et ciblées pour le développement sont les firmwares v2.01.03 et v2.02.02, et la procédure finale complète n’a été testée que sur v2.02.02
- L’environnement requis est un PC Linux avec contrôleur Bluetooth, Python 3, bluepy, un WiFi WPA2-PSK avec son mot de passe,
mksquashfsdesquashfs-tools, ainsi qu’un serveur tftp pour les sauvegardes ou un serveur web acceptant les uploads de fichiers - Après modification, le streaming HTTP/HTTPS est accessible via
https://IPCaméra/video/mpegts.cgiouhttps://IPCaméra/video/flv.cgi, avec une authentification utilisant l’utilisateuradminet le mot de passe PIN Code de la caméra - Si seul RTSP est nécessaire, il est possible d’activer un accès RTSP permanent sur le firmware D-Link d’origine, sans modifier le firmware, via l’option Bluetooth
--rtsp - La partition
userdataest utilisée par les outils cloud mydlink, et l’exemple de mise à jour du firmware ne remplace que cette partition, en conservant tels quels le kernel et le rootfs de l’OS de la caméra D-Link - Une sauvegarde est nécessaire avant toute modification ; la partition
pibcontient des données propres à cette caméra, comme le numéro de modèle, la révision matérielle, l’adresse MAC, les bits de fonctionnalités, la clé privée, le PIN Code et le mot de passe - Le serveur web local ne fournit pas d’interface graphique web, mais une API directe de gestion de la caméra nécessitant une authentification ; l’API NIPCA permet de contrôler la plupart des réglages de la caméra depuis des outils en ligne de commande comme
curl
1 commentaires
Commentaires Hacker News
On peut faire une configuration similaire avec presque n’importe quelle caméra IP ou même une caméra USB, avec une latence plus faible et à la meilleure qualité prise en charge par la caméra
Si ça intéresse du monde, je peux faire un rapide récapitulatif de ce type de configuration, ou en faire un dépôt avec les fichiers de configuration nécessaires
Je n’arrive pas à trouver de prise connectée grand public qui ne doive pas se connecter au cloud pour être contrôlée de n’importe où. Je ne veux pas les contrôler de n’importe où, je veux juste les contrôler sur mon propre LAN
Édit : du moins, je n’en ai pas trouvé sur amazon.in
https://www.amazon.in/s?k=smart+plugs
On m’a offert une caméra IP chinoise sans marque, introuvable même en recherche, et je l’utilise comme caméra de sécurité extérieure. La caméra enregistre en continu sur carte SD, et je n’utilise pas l’option cloud payante. Je peux voir le flux en direct à distance via l’app KP WIFICAM
Je peux aussi consulter ou télécharger depuis le menu les enregistrements des derniers jours stockés sur la carte SD, mais ils sont découpés en segments de 10 minutes, donc même pour récupérer une seule journée il faut télécharger manuellement près de 100 fichiers
Comment automatiser ou simplifier le téléchargement de ces clips depuis la carte SD vers mon laptop ? Comment l’app mobile récupère-t-elle la liste des enregistrements et télécharge-t-elle les fichiers ?
J’ai lancé Agent-DVR et il a trouvé le flux de la caméra au format ONVIF. J’imagine donc que l’app mobile utilise aussi ce protocole, comme ici https://stackoverflow.com/questions/29159422/get-data-from-l..., mais existe-t-il un outil utilisable sous Linux pour ça, sans devoir passer plusieurs jours à installer un environnement de développement et écrire moi-même du code ?
Mon épouse utilise déjà 4 applis différentes, une par caméra, et chacune a des problèmes absurdes, les cartes SD sont bien trop petites, et les frais de stockage cloud, mal signalés avant l’achat, sont délirants
On pourrait en racheter, mais en prenant des produits bon marché on risque simplement de refaire pour la 4e fois la même erreur
Même si le logiciel coûtait 6 fois plus cher que les caméras, ça vaudrait largement le coup
J’aimerais aussi un service où quelqu’un dans un pays à bas salaires surveille un mur d’écrans de caméras et passe de l’une à l’autre. C’est exactement le service que les sociétés de sécurité occidentales facturent des milliers de dollars par mois, ce qui relève presque du racket
C’est extrêmement frustrant qu’il n’existe aucun produit grand public pour un appareil aussi important qu’une caméra IP qui puisse s’utiliser en local sans le cloud du fabricant
Je sais qu’on peut bricoler quelque chose avec un Raspberry Pi, mais je veux aussi les fonctions pratiques des produits grand public, comme le contrôle moteur et de bonnes alertes de détection de mouvement
Pour un produit qui offre tout ça sans devoir tout développer soi-même, je paierais volontiers 2 à 3 fois le prix des produits grand public actuels
De mon côté, j’utilise Synology Surveillance Station sur un NAS local et je contrôle des caméras ReoLink. Elles peuvent pivoter et disposent de détection de mouvement
Il existe aussi des usages plus avancés avec des caméras IP locales. Hier, j’ai acheté le NVR « deep learning » de Synology, qui prend en charge sur des caméras Domar locales la détection de personnes, la reconnaissance faciale, la reconnaissance de plaques d’immatriculation, en plus des fonctions standard de zoom, pan et tilt
Toutes mes caméras sont des modèles bon marché d’Aliexpress, je ne les ai jamais laissées se connecter à Internet et je n’ai installé aucune app douteuse du fabricant. Je mets seulement l’équipement qui fait tourner Blue Iris sur le même VLAN pour gérer tout ce qui concerne les caméras
Ça prend en charge le PTZ, une détection de mouvement très fine, les alertes et même les déclencheurs d’exécution d’apps externes, donc on peut l’intégrer comme on veut
Au total, le coût est d’environ 30 dollars par caméra PoE IP basique, et Blue Iris coûte environ 80 dollars
C’est juste qu’elles ne sont pas vraiment mises en avant dans les canaux de vente grand public
Je recommande ça à ceux qui n’aiment pas le cloud ou qui veulent, pour de bonnes raisons, une architecture à deux niveaux
Je l’utilise depuis 2 ans avec plusieurs Wyze Cam V2, et à part une sensibilité en basse lumière moins bonne que la V3, c’est une configuration plutôt solide et rapide, sans problème particulier
https://github.com/EliasKotlyar/Xiaomi-Dafang-Hacks
Je cherche depuis un moment une caméra bon marché à 20~30 dollars pouvant servir de configuration fiable comme Dafang-hacks, mais je n’ai toujours pas trouvé d’alternative satisfaisante
J’ai envisagé de remplacer les caméras cloud, mais j’ai quand même besoin d’enregistrement, d’alertes et de stockage hors site
Quelle est aujourd’hui la meilleure configuration pour ce genre de montage ? Faire tourner Zoneminder chez soi et utiliser Syncthing pour le stockage hors site sur un VPS ?
Ce tutoriel est incroyablement complet
Le temps que Bjorn a dû consacrer à développer cette méthode et à la documenter avec autant de soin est impressionnant
Je comprends que ce soit sympa et dans l’esprit hacker, mais vu la gravité du cas d’usage, je ne peux que me demander : « pourquoi ? »
Pourquoi vouloir compter sur le piratage du firmware d’une caméra D-Link médiocre comme unique moyen d’empêcher un cambrioleur de voler des objets ? Pour quelques centaines de dollars, on peut acheter de vraies caméras IP chez Amcrest, Dahua ou TP-Link, les brancher en PoE et avoir au moins une chance d’identifier qui a volé quoi
Si l’on ne place pas des caméras de haute qualité aux bons endroits, on finit juste avec une photo floue d’un vol en cours. C’est mon expérience
Les caméras servent à surveiller un espace et, dans le meilleur des cas, à enregistrer quelqu’un en train de faire quelque chose de répréhensible avec assez de détails pour que cela puisse être utilisé au tribunal. Si la qualité est suffisante et que l’incident a bien été enregistré, il n’y a pas de grande différence fonctionnelle entre une D-Link piratée et une caméra Nest
D-Link est aussi en train de mettre fin au service de plusieurs caméras, ce qui signifie couper les services cloud, rendre les caméras inutilisables et pousser à acheter du nouveau matériel
J’essaie de pirater une DCS-5030L. J’ai déjà dumpé le firmware de l’EPROM SPI et j’ai désassemblé u-boot avec Ghidra pour tenter de patcher le secure boot
Sur la photo, l’ID est partiellement noirci, mais le code-barres en dessous ne l’est pas
Je ne sais pas si ces valeurs sont juste une forme encodée, mais il faut en tenir compte
[1] https://github.com/markusfisch/BinaryEye
Pour un accès purement local via le réseau, je prends des caméras réseau compatibles ONVIF et je les connecte à Netcam Studio
https://www.netcamstudio.com/
Ensuite, on bloque l’accès réseau sortant à l’IP de la caméra pour l’empêcher de contacter les serveurs du fabricant
J’utilise simplement une caméra USB classique et ustreamer pour diffuser du MJPEG en HTTP
Ça marche étonnamment bien, mais il faut tout implémenter soi-même pour le traitement et le stockage. Au final, on n’obtient qu’une URL de capture d’écran et une URL de flux
J’aime bien cette idée
Toutes mes caméras IP envoient les fichiers par FTP vers mon serveur, qui les téléverse immédiatement sur Google Drive. Ça fonctionne parfaitement et ce n’est pas cher, mais ça reste des caméras chinoises connectées à Internet
Existe-t-il une liste de caméras convertibles de cette manière ?
À l’origine, je voulais du USB→GDrive, mais j’ai découvert que le scanner Brother ne permettait pas de remplacer les paramètres de numérisation depuis l’écran en USB, alors qu’il le permet en FTP
Qu’est-ce que tu utilises pour ce transfert ?
Créer un réseau séparé dédié aux caméras, par exemple avec un routeur Wi‑Fi distinct
Trouver l’IP du serveur auquel la caméra envoie la vidéo
Connecter un PC ou un Raspberry Pi au port WAN de ce routeur Wi‑Fi dédié aux caméras
Assigner à ce PC ou Raspberry Pi toutes les IP des serveurs de caméra trouvées précédemment
Ainsi, on devrait pouvoir recevoir tout le trafic allant de la caméra vers le serveur, puis en faire ce qu’on veut
J’utilise un firmware custom sideloadé sur une caméra Yi comme caméra Wi‑Fi fiable. Le VLAN correspondant n’a absolument aucun accès à Internet
J’essaie de faire quelque chose comme ça depuis un bon moment. Tout ce que je trouve n’a pas de support FTP/SFTP et cherche plutôt à envoyer des photos par LTE vers une adresse e-mail
L’objectif est simplement une caméra météo. Il suffit d’envoyer une image par minute. Quelque chose d’aussi simple qu’une vieille webcam des années 2000
Avec un rPi3 et une caméra Logitech, je me suis heurté à des problèmes que je n’ai pas su résoudre, et j’en suis arrivé à la frustration puis presque à abandonner