quarta-feira, 1 de junho de 2016

Hacking IoT: Roteador Kross KP8696X (Parte 02)

Pessoal,

Nesta postagem eu vou continuar a análise do roteador KP8696X da Kross.

Resumo da parte 01:
  1. Serviço de Telnet habilitado por padrão (23/TCP)
  2. Conta secreta de administrador (Backdoor) presente no dispositivo.
  3. Senha de backdoor = 4 últimos números do endereço MAC + string "airocon"
Link para a primeira parte: Kross KP8696X (Parte 01)

Explorando o serviço de TFTP

O comando "show processes" no serviço de Telnet apresenta todos os processos sendo executados no dispositivo (a figura 01 demonstra a existência de um serviço de TFTP sendo executado no roteador por padrão).

Figura 01: Lista de processos sendo executados
A figura 02 apresenta os arquivos de configuração sendo utilizados pelo roteador.

Figura 02: Arquivos de configurações
Podemos utilizar o serviço de TFTP para realizar o download destes arquivos (figura 03). O serviço de TFTP não exige autenticação do usuário (portanto os arquivos de configurações podem ser obtidos remotamente por qualquer usuário da rede local).

Figura 03: Obtendo arquivo de configuração
A figura 04 apresenta o conteúdo do arquivo de configuração “wscd.conf”. Este arquivo contém informações sensíveis como as senhas da rede sem fio (WPA/WPA2), a senha do servidor web e número de PIN (WPS).

Figura 04: Arquivo de configuração "wscd.conf"

Analisando o servidor web

O servidor Telnet apresenta um comando "show web” que permite listar os arquivos utilizados pelo servidor web. A figura 05 apresenta alguns dos arquivos presentes na aplicação web do roteador.

Figura 05: Paginas do servidor web
Um script em python foi criado para acessar diretamente todas páginas listadas pelo comando ‘show web’. A figura 06 mostra que algumas páginas de configurações do servidor web podem ser acessadas sem autenticação (Ex: um atacante pode acessar a página ‘wizard_setup.htm’ sem autenticação e alterar informações como o ESSID e a senha do roteador).

Figura 06: Páginas de configurações acessadas sem autenticação

Conclusão

Nesta postagem eu apresentei a segunda parte de uma análise realizada no roteador KP8696X da Kross. Principais pontos identificados nesta análise:

  1. Serviço de TFTP rodando por padrão: Arquivo de configuração do roteador (contendo informações sensíveis como credenciais) pode ser obtido sem autenticação por qualquer usuário na rede local. 
  2. Falta de autenticação no servidor web: Diversas páginas de configuração do roteador podem ser acessadas diretamente sem autenticação no servidor web.

A versão v1.00.06 do firmware apresenta o serviço de Telnet habilitado por padrão e uma conta de backdoor habilitada no dispositivo. O fabricante foi informado em novembro de 2015. O novo firmware (v1.00.07) foi lançado em Janeiro de 2016.

Keep Hacking :)

quarta-feira, 4 de maio de 2016

Hacking IoT: Roteador Kross KP8696X (Parte 01)

Pessoal,

Nesta postagem eu vou apresentar uma análise do roteador KP8696X da Kross.

Observações:

A configuração padrão de fábrica do dispositivo foi utilizada em todos os testes.
  • Firmware: 1.00.06 (Versão de fábrica)
  • IP padrão: 192.168.1.254
  • Endereço MAC: XX:XX:XX:XX:17:97 (lembrar dos 2 últimos bytes)
  • Senha padrão: admin / <vazio>


Análise Inicial


O primeiro passo da análise dinâmica foi realizar uma varredura de portas no dispositivo. A figura 01 apresenta as portas TCP encontradas abertas no roteador.

Figura 01: Portas abertas TCP (Nmap)
Podemos verificar a existência de três serviços sendo executados:
  1. Porta 23/TCP: Serviço de Telnet habilitado por padrão no dispositivo.
  2. Porta 80/TCP: Aplicação web padrão de controle do roteador
  3. Porta 5431/TCP: Servidor UPnP (Universal Plug and Play)

Levantamento de informações com Telnet


O segundo passo da análise dinâmica foi acessar o serviço de Telnet encontrado na etapa anterior. O serviço pode ser acessado utilizando a senha padrão: “admin/<vazio>”. A figura 2 apresenta o acesso inicial ao serviço de Telnet e o menu de comandos. 

Figura 02: Acesso ao serviço de Telnet
A partir do acesso obtido através de Telnet, é possível obter diversas informações sobre o roteador. A figura 3 apresenta as conexões TCP existentes no dispositivo (podemos confirmar os resultados obtidos na varredura de portas e também encontramos um segundo serviço de UPnP rodando na porta 55001/TCP).

Figura 03: Listando conexões TCP

Conta de Backdoor em serviço de Telnet


O roteador apresenta uma segunda credencial utilizada com a conta “admin”. Através do comando “login show”, podemos ver a senha padrão (em texto claro) utilizada: “1797airocon”.

Figura 04: Senha "secreta" de administrador
Esta senha é utilizada por uma conta “secreta” de administrador (backdoor) no roteador. A figura 5 mostra um trecho do arquivo de configuração obtido na aplicação web do roteador. Podemos ver a presença de duas contas “admin” (segunda conta tem o atributo “BACKDOOR” com valor 0x1)

Figura 05: Conta de backdoor no roteador
A senha de backdoor é gerada dinamicamente utilizado os últimos quatro números do endereço MAC do roteador. Eu acabei realizando o mesmo teste com outro exemplar do roteador e comprovei a utilização dos últimos dígitos do endereço MAC para gerar a senha de backdoor. Esta informação seria facilmente obtida através de uma simples requisição ARP ou realizando um ataque de força-bruta. A figura 06 demonstra a conta de backdoor em um segundo dispositivo.

Figura 06: Conta de backdoor no segundo roteador

Conclusão


Nesta postagem eu apresentei a primeira parte de uma análise realizada no roteador KP8696X da Kross. A versão v1.00.06 do firmware apresenta o serviço de Telnet habilitado por padrão e uma conta de backdoor habilitada no dispositivo. O fabricante foi informado em novembro de 2015. O novo firmware (v1.00.07) foi lançado em Janeiro de 2016.

Keep Hacking :)

sábado, 16 de abril de 2016

Palestra: EmNomeDo.py (Roadsec Teresina)

Pessoal,

Hoje eu estarei apresentando a palestra "EmNomeDo.py" no ROADSEC em Teresina ! Nesta palestra eu vou estar falando sobre a linguagem de programação Python e aplicações para as áreas de segurança da informação e redes de computadores. A palestra vai realizada na faculdade Mauricio de Nassau (Avenida Jóquei Clube 710).

Para maiores informações: http://roadsec.com.br/teresina2016/


terça-feira, 15 de março de 2016

Palestra: Pentest em IoT (Unifor)

Pessoal,

Nesta quinta-feira (17/03) eu estarei fazendo mais uma palestra sobre "Pentest em IoT". Nesta palestra eu vou apresentar uma metodologia para identificação de vulnerabilidades em sistemas embarcados. Eu também vou demonstrar diversos exemplos de falhas encontradas em dispositivos nacionais e internacionais.

A palestra vai ser realizada às 19:00 na sala B48 da Universidade de Fortaleza.

A palestra é gratuita mas tem limite de vagas ! 

Confirme sua presença pelo e-mail: educacaocorporativa@unifor.br  


segunda-feira, 15 de fevereiro de 2016

Palestra - Pentest em IoT: Episódio 2.0

Pessoal,

Estarei palestrando neste sábado no primeiro ROADSEC de 2016 !

O evento vai ser realizado em Campo Grande (MS). 

O nome da palestra é: "Pentest em IoT: Episódio 2.0".

Nesta palestra eu vou demonstrar as principais técnicas de análise para a identificação de vulnerabilidades em sistemas embarcados (IoT) e também vou apresentar algumas vulnerabilidades identificadas em 2015. 

Site oficial do evento: http://roadsec.com.br/campogrande2016/


segunda-feira, 18 de janeiro de 2016

BackGram: Utilizando Telegram como C&C

Pessoal,

Nesta postagem eu vou apresentar uma nova ferramenta minha: BackGram !

O BackGram é uma ferramenta de Pentest criada para prover acesso remoto utilizando o Telegram como canal de comunicação (C&C). A primeira versão do BackGram é uma simples prova de conceito (PoC) e implementa algumas funcionalidades básicas de qualquer Backdoor.

Dependências


Backgram foi desenvolvido em Python e utiliza a biblioteca 'Telepot' para acessar a API do Telegram. Você pode facilmente instalar o Telepot com pip:

sudo pip install telepot

É necessário criar uma nova conta para receber um token de API (que será utilizado pelo BackGram). O github oficial do Telepot descreve o passo-a-passo de como criar uma nova conta e receber o token de API.

https://github.com/nickoala/telepot#installation

BackGram possui uma variável "master_id", na qual você deve inserir o ID da conta do Telegram do atacante (criei essa regra para a vítima responder os comandos de apenas um único usuário). O ID da conta pode ser facilmente encontrado em qualquer mensagem (comentei uma das linhas do código para informar o ID). 

Execução


Eu montei um pequeno vídeo para demonstrar a execução da ferramenta.


terça-feira, 12 de janeiro de 2016

Hacking Intelbras WRN 150

Pessoal, 

Ano passado eu decidir dar uma olhada na segurança dos roteadores nacionais então vou começar 2016 já falando sobre algumas coisas que descobri durante essa minha pesquisa (algumas coisas eu ja posso ir divulgando e outras ainda preciso esperar por correções de fabricantes).

Nesta postagem eu vou estar falando sobre uma vulnerabilidade que eu descobri no roteador wireless WRN 150 da Intelbras. É importante comentar que analisei o dispositivo utilizando as configurações de fábrica ! (Apenas mudei a senha padrão do roteador mas ainda continua sendo a versão de firmware inicial de caixa).

A falha encontrada se trata de um "Authentication Bypass" que pode ser realizado no console de administração web do roteador. Um atacante pode utilizar um valor estático específico de cookie para acessar diretamente as páginas de configuração do roteador (sem saber a senha do usuário administrador). Eu gravei um vídeo como prova de conceito da vulnerabilidade identificada.


A vulnerabilidade foi informada para a Intelbras em dezembro de 2015 e o retorno deles foi bem rápido (até ligaram para mim hehe). Uma versão nova de firmware já esta disponível no site da Intelbras corrigindo o problema.