3 pontos por GN⁺ 2023-07-03 | 1 comentários | Compartilhar no WhatsApp
  • Registro de trabalho e conjunto de ferramentas para transformar a D-Link DCS-8000LH em uma câmera IP gerenciada localmente, sem registrá-la no app mydlink nem no serviço de nuvem
  • O firmware original 2.01.03 é vinculado ao app mydlink e ao serviço de nuvem, e não oferece API HTTP local compatível com NIPCA nem streaming de vídeo por HTTP, HTTPS ou RTSP
  • Os principais recursos alcançados incluem configuração de rede e senha de administrador via Bluetooth LE, streaming direto MPEG-TS por HTTP/HTTPS, streaming direto por RTSP e configuração da API NIPCA com suporte a ajustes como LED e nightmode
  • O dcs8000lh-configure.py incluído usa o PIN Code da etiqueta da câmera e o endereço MAC Bluetooth para fazer busca de Wi-Fi, configurar Wi-Fi, exibir informações de rede, despejar informações do sistema, executar comandos na câmera, ativar telnetd, lighttpd e RTSP, e permitir firmware sem assinatura
  • A modificação completa exige alterar um dos sistemas de arquivos dentro da câmera, com risco de inutilizar a câmera se algo der errado
  • Os alvos de teste e desenvolvimento são os firmwares v2.01.03 e v2.02.02, e o procedimento final completo foi testado apenas na v2.02.02
  • O ambiente necessário é um PC Linux com controlador Bluetooth, Python 3, bluepy, Wi-Fi WPA2-PSK e senha, mksquashfs do squashfs-tools, além de um servidor tftp para backup ou um servidor web que receba upload de arquivos
  • Após a modificação, o streaming por HTTP/HTTPS pode ser acessado em https://IPDaCâmera/video/mpegts.cgi ou https://IPDaCâmera/video/flv.cgi, usando autenticação com o usuário admin e o PIN Code da câmera como senha
  • Se você precisar apenas de RTSP, é possível ativar acesso RTSP permanente no firmware original da D-Link usando a opção Bluetooth --rtsp, sem modificar o firmware
  • A partição userdata é usada pelas ferramentas de nuvem mydlink, e o exemplo de atualização de firmware altera apenas essa partição, mantendo intactos o kernel e o rootfs do sistema operacional da câmera D-Link
  • O backup é necessário antes das alterações, e a partição pib contém dados específicos daquela câmera, como número do modelo, revisão de hardware, endereço MAC, bits de recursos, chave privada, PIN Code e senha
  • O servidor web local não é uma GUI web, mas fornece uma API direta de gerenciamento da câmera que exige autenticação; com a API NIPCA, a maioria das configurações da câmera pode ser controlada por ferramentas de linha de comando como curl

1 comentários

 
GN⁺ 2023-07-03
Comentários do Hacker News
  • Dá para montar algo parecido com quase qualquer câmera IP ou câmera USB, com baixa latência e na qualidade máxima suportada pela câmera
    Se houver interesse, posso organizar rapidamente esse tipo de configuração ou montar um repositório com os arquivos de configuração necessários

    • Eu também queria fazer algo assim com tomadas inteligentes
      Não consigo encontrar, entre as tomadas inteligentes vendidas por aí, nenhuma que não se conecte à nuvem só para permitir controle de qualquer lugar. Eu não quero controlar de qualquer lugar, só quero controlar dentro da minha LAN
      Edit: pelo menos na amazon.in não encontrei
      https://www.amazon.in/s?k=smart+plugs
    • Queria pedir um conselho
      Ganhei de presente uma câmera IP chinesa sem marca que nem aparece em buscas e estou usando como câmera de segurança externa. A câmera grava continuamente no cartão SD, e eu não uso a opção de nuvem paga. Pelo app KP WIFICAM, consigo ver o vídeo ao vivo até pela internet
      Também dá para ver ou baixar pelo menu as gravações dos últimos dias salvas no cartão SD, mas elas vêm divididas em blocos de 10 minutos, então para baixar só um dia inteiro preciso fazer download manual de quase 100 arquivos
      Como eu poderia automatizar ou simplificar o download desses clipes do cartão SD para o notebook? Como o app móvel obtém a lista de gravações e baixa os arquivos?
      Testei o Agent-DVR e ele encontrou o feed da câmera no formato ONVIF. Então imagino que o app móvel também use esse protocolo https://stackoverflow.com/questions/29159422/get-data-from-l..., mas existe alguma ferramenta utilizável no Linux sem que eu precise passar dias instalando ambiente de desenvolvimento e escrevendo código por conta própria?
    • Chamar de “quase todas as câmeras IP” parece um exagero, porque imagino que varie bastante de acordo com fabricante e hardware
    • Acho que daria até para vender um aplicativo de gerenciamento que controle várias câmeras no PC e permita acesso remoto por app no celular
      Meu cônjuge usa nada menos que 4 apps diferentes, um para cada câmera, e cada um tem problemas absurdos, os cartões SD são minúsculos e as taxas de armazenamento em nuvem, mal divulgadas antes da compra, são ridiculamente caras
      Até daria para comprar tudo de novo, mas se escolhermos produtos baratos é bem provável repetir o mesmo erro pela quinta vez
      Mesmo que o software custasse 6 vezes mais que a câmera, ainda valeria a pena
      Também seria bom existir um serviço em que alguém de um país de baixos salários ficasse olhando uma parede de câmeras e monitorando uma por uma em rodízio. É exatamente o tipo de serviço pelo qual empresas de segurança ocidentais cobram milhares de dólares por mês; parece quase um assalto
  • É muito frustrante que, para um produto tão importante quanto uma câmera IP, não exista nenhum produto de consumo que funcione localmente sem a nuvem do fabricante
    Sei que dá para montar algo com Raspberry Pi, mas também quero recursos práticos de produto comum, como controle de motor e alertas eficientes de detecção de movimento
    Eu pagaria facilmente 2 a 3 vezes o preço atual de produtos de consumo se não precisasse desenvolver tudo isso por conta própria

    • Existem várias câmeras PoE que funcionam e podem ser controladas localmente, sem nuvem
      Eu rodo o Synology Surveillance Station num NAS local e controlo câmeras ReoLink. Elas giram e também têm detecção de movimento
      Há até casos de uso mais avançados com câmeras IP locais. Ontem comprei o NVR “deep learning” da Synology, que suporta detecção de pessoas, reconhecimento facial, reconhecimento de placas e mais, além dos recursos padrão de zoom, pan e tilt das minhas câmeras Domar locais
    • Existem muitas opções mesmo. Se você procurar câmeras com suporte a ONVIF, elas oferecem um protocolo relativamente padronizado para descoberta e controle
      Todas as minhas câmeras são modelos baratos do Aliexpress, nunca deixei nenhuma acessar a internet e nunca instalei apps suspeitos do fabricante. Só coloco na mesma VLAN o equipamento que roda Blue Iris e faço tudo relacionado às câmeras por ali
      Suporta PTZ, detecção de movimento muito detalhada, notificações e até gatilhos para executar apps externos, então dá para integrar do jeito que você quiser
      O custo total é baixo: cerca de US$ 30 por câmera PoE IP barata e uns US$ 80 pelo Blue Iris
    • Acho que quase todos os produtos Apple HomeKit podem ser usados desse jeito
    • Thread relacionada de alguns dias atrás: https://news.ycombinator.com/item?id=36447024
    • Existem muitas soluções genéricas de IP KVM/DVR que são só locais ou em que a nuvem é opcional
      Só não são muito divulgadas nos canais de varejo para consumidor final
  • Recomendo isso para quem odeia nuvem ou, por motivos válidos, quer uma configuração em duas camadas
    Usei isso por 2 anos com várias Wyze Cam V2 e, tirando a sensibilidade em baixa luz pior que a da V3, é uma configuração bastante sólida e rápida, sem grandes problemas
    https://github.com/EliasKotlyar/Xiaomi-Dafang-Hacks

    • A Wyze V2 com Dafang-hacks já foi muito estável, mas agora saiu de linha e não há comprovação de que funcione bem na V3
      Faz um tempo que procuro câmeras baratas na faixa de US$ 20 a US$ 30 que possam ser usadas com uma configuração confiável como o Dafang-hacks, mas ainda não encontrei uma alternativa boa
    • O que você usa para gravação?
      Já pensei em substituir as câmeras em nuvem, mas ainda preciso de gravação, notificações e armazenamento off-site
      Hoje em dia, qual seria a melhor configuração para isso? Rodar Zoneminder em casa e usar Syncthing para fazer o armazenamento externo num VPS?
  • Este tutorial é extremamente detalhado
    Impressiona o tempo que Bjorn deve ter investido para desenvolver essa técnica e documentá-la com tanto cuidado

  • Entendo que é legal e tem espírito hacker, mas considerando a seriedade do caso de uso, só consigo pensar: “por quê?”
    Por que alguém iria querer depender de um hack de firmware numa câmera D-Link ruim como único meio de impedir que um ladrão roube coisas? Com algumas centenas de dólares, dá para comprar uma câmera IP decente da Amcrest, Dahua ou TP-Link e ligá-la via PoE; pelo menos assim existe alguma chance de identificar quem roubou
    Se você não colocar uma câmera de alta qualidade no lugar certo, no fim só vai sobrar uma foto borrada de alguém roubando suas coisas. Digo isso por experiência

    • A menos que a câmera Nest tenha aprendido ninjutsu, ela não vai impedir que um ladrão roube nada
      Câmeras servem para monitorar um espaço e, na melhor das hipóteses, gravar alguém fazendo algo ruim com detalhes suficientes para usar em tribunal. Se a qualidade for boa o bastante e o evento tiver sido gravado corretamente, funcionalmente não há grande diferença entre uma D-Link hackeada e uma câmera Nest
    • Você conhece algum modelo de câmera Amcrest que funcione bem com coisas como Zoneminder ou Frigate?
  • A D-Link também está encerrando o suporte de várias câmeras, o que significa desligar os serviços em nuvem, tornar as câmeras inúteis e forçar a compra de um produto novo
    Estou tentando hackear uma DCS-5030L. Já extraí o firmware da SPI EPROM e fiz engenharia reversa do u-boot no Ghidra para tentar aplicar um patch no secure boot

  • Na foto, o ID foi parcialmente coberto em preto, mas o código de barras embaixo não foi
    Não sei se esses valores são apenas uma forma codificada, mas vale prestar atenção

    • Parece mesmo ser uma versão codificada, mas mesmo tirando um screenshot e compartilhando no Binary Eye eu não consegui escanear
      [1] https://github.com/markusfisch/BinaryEye
    • Não querendo soar grosseiro, mas você chegou a olhar a imagem? Aqueles códigos QR estão claramente desfocados com uma sobreposição circular que nem parece QR
  • Para acesso puramente local em rede, tenho escolhido câmeras de rede com suporte a ONVIF e conectado ao Netcam Studio
    https://www.netcamstudio.com/
    Depois, basta bloquear o acesso da câmera IP à rede externa para impedir que ela entre em contato com os servidores do fabricante

    • O Netcam Studio não oferece suporte a Linux e, mais importante, é código fechado, então esse programa também precisaria ter o acesso externo bloqueado
  • Eu simplesmente uso uma câmera USB comum e faço streaming HTTP em MJPEG com o ustreamer
    Funciona surpreendentemente bem, mas todo o processamento e armazenamento precisa ser implementado por conta própria. O que você obtém é só uma URL de screenshot e uma URL de streaming

  • Gostei dessa ideia
    Todas as minhas câmeras IP enviam por FTP para o meu servidor, e o servidor faz upload imediato para o Google Drive. Funciona perfeitamente e sai barato, mas continua sendo o caso de câmeras chinesas conectadas à internet
    Existe alguma lista de câmeras que possam ser convertidas desse jeito?

    • Escrevi meu próprio daemon proxy de FTP→GDrive para scanners
      Originalmente eu queria USB→GDrive, mas descobri que o scanner Brother não permite sobrescrever as configurações de digitalização na tela via USB, enquanto via FTP permite
      O que você está usando para essa transferência?
    • Tenho uma ideia, mas dá um pouco de trabalho
      Criar uma rede separada só para as câmeras, por exemplo com um roteador Wi‑Fi dedicado
      Descobrir para qual IP de servidor a câmera envia o vídeo
      Conectar um PC ou Raspberry Pi na porta WAN desse roteador Wi‑Fi das câmeras
      Atribuir a esse PC ou Raspberry Pi todos os IPs de servidor da câmera que você encontrou antes
      Assim, você deve conseguir receber todo o tráfego que iria da câmera para o servidor, e depois pode processá-lo como quiser
    • Câmeras Xiaomi e a maioria dos produtos white-label costumam funcionar
      Eu carrego um firmware customizado por sideload numa câmera Yi e a uso como uma câmera Wi‑Fi estável. Essa VLAN não tem nenhum acesso à internet
    • Você pode explicar a configuração com um pouco mais de detalhes?
      Passei muito tempo tentando fazer algo assim. Tudo o que encontro não tem suporte a FTP/SFTP e quer mandar fotos por LTE para um endereço de e-mail
      O objetivo é só uma câmera meteorológica simples. Basta enviar uma imagem por minuto. Algo simples como uma webcam antiga dos anos 2000
      Encontrei problemas sem solução com um rPi3 e uma câmera Logitech, fiquei frustrado e quase desisti