segunda-feira, 27 de junho de 2016

Hacking IoT: Roteador Kross KP8696X (Parte 03)

Pessoal,

Nesta postagem eu vou apresentar a parte final da análise do roteador KP8696X.

Resumo da parte 02:
  1. Serviço de TFTP habilitado por padrão: Possível realizar o download do arquivo de configuração do roteador sem qualquer autenticação (o arquivo contém informações sensíveis como as credenciais do servidor web e rede wifi)
  2. Falta de autenticação em diversas páginas do servidor web: Algumas páginas de configuração do servidor web do roteador podem ser acessadas diretamente sem a necessidade de autenticar o cliente.
Link para a segunda parte: Kross KP8696X (Parte 02)

Analisando o Hardware

A próximo etapa da análise consistiu em verificar o hardware do roteador. A figura 01 apresenta o roteador aberto (sem a tampa superior) e podemos ver a presença de uma porta serial UART.

Figura 01: Porta serial (UART)

O esquema de pinos identificado foi (da esquerda para direita):
  • Pino 1: Terra
  • Pino 2: Fonte (VCC)
  • Pino 3: RX
  • Pino 4: TX

O processo de boot do roteador pode ser verificado através do acesso via porta serial. Para acessar o menu de boot, precisamos apertar ESC no inicio da ativação do dispositivo. O menu apresenta alguns comandos que foram importantes para o estudo. A partir do comando ‘info’, podemos identificar alguns endereços de memória e o tamanho da memória flash (figura 02).

Figura 02: Menu de boot

Podemos utilizar o comando ‘d’ para realizar dump de memória (figura 03) !

Figura 03: Menu de boot (Dump de bytes)

O próximo passo foi realizar um dump da memória (Application Address: 0x9FC10000) com o comando ‘d’ e utilizar um script em python para converter os caracteres em hexa para um arquivo em binário (‘dump.bin’).

Figura 04: Realizando o dump de memória

Podemos agora realizar algumas pesquisas no arquivo binário ‘dump.bin’. Algumas strings interessantes foram encontradas (Figuras 05, 06 e 07). Estas strings representam páginas utilizadas pelo servidor web do roteador que recebem comandos como parâmetros de entrada. Estas páginas podem ser utilizadas para execução de comandos remotos no roteador.

Figura 05: Strings encontradas no dump de memória

Figura 06: Strings encontradas no dump de memória (2)

Figura 07: Strings encontradas no dump de memória (3)

Conclusão

Nesta postagem eu apresentei a terceira parte de uma análise realizada no roteador KP8696X da Kross. Principais pontos identificados nesta análise:
  1. Acesso via porta serial (UART): Conexão serial via UART encontra-se habilitada no equipamento por padrão. A partir desta conexão, é possível ter acesso ao processo de boot do roteador e realizar um dump de memória do equipamento.
  2. Command Injection no servidor web: Comandos de shell podem ser executados diretamente no servidor web em algumas páginas encontradas do dump de memória do roteador.
O fabricante foi informado em novembro de 2015 sobre todas as vulnerabilidades identificadas neste estudo. O novo firmware (v1.00.07) foi lançado pelo fabricante em Janeiro de 2016.

Keep Hacking :)

2 comentários:

  1. Onde posso encontrar essa versão 1.00.07? Não acho em lugar algum. Agradeçço.

    ResponderExcluir
    Respostas
    1. O fabricante me enviou por e-mail na época.

      Excluir