Se um atacante for capaz de executar comandos directamente no seu router ele pode:

  • Atacar a sua rede interna e outros dispositivos ligados a ela.
  • Backdoor o router a instalar malware ou a ligá-lo à Botnet do Mirai.
  • Eavesdrop no tráfego HTTP de um utilizador.
  • Executar comandos remotamente no seu router como um root utilizador.
  • Desligar ou reiniciar o seu dispositivo.
  • Realizar as suas credenciais de rede Wi-Fi juntamente com o SSID de rede (nome).

A superfície de ataque é suficientemente grande para causar danos a muitos utilizadores domésticos e empresas. Descreverei alguns desses cenários em detalhes para mostrar como essa vulnerabilidade é perigosa.

A qualquer atacante é capaz de emitir um comando no seu roteador como um usuário root sem o seu conhecimento. Acontece de forma transparente, você só precisa visitar um site malicioso. Se você não está monitorando suas conexões de saída não é possível detectar este tipo de atividade sem as ferramentas adicionais.

A carga útil mais simples para reiniciar o roteador de uma pessoa que visita seu website:

Código é executado quando a imagem é carregada a partir do servidor externo (seu roteador). Ele não permite obter o conteúdo da resposta mas apenas disparar um comando remotamente.

Ler os dados remotamente do seu router

Issuindo um comando remoto não é complicado uma vez que não é necessário obter o conteúdo da resposta de volta para o atacante. Receber uma resposta de volta não é possível devido às restrições da Same-Origin Policy (SOP).

A Same-Origin Policy é um modelo de segurança para ambos os navegadores e plugins trabalhando em um navegador (ou seja, Java, Flash ou Silverlight). O objetivo principal desta funcionalidade é bloquear o acesso ao conteúdo de um website de outro website.

Acesso ao conteúdo do website é concedido dependendo da origem que é especificada para ambos. A tabela de verdade para as origens tem a seguinte aparência:

A Política de Origem (SOP) – comparando diferentes cenários

* – O número da porta não está incluído no componente “origem” pelos navegadores IE/Edge (mais).

Se o website “A” não tem a mesma origem que o website “B” então significa que não podemos ler o conteúdo de um website “B” de “A” e vice-versa. Estamos assumindo que o Cross-Origin Resource Sharing (CORS) não está habilitado para nenhum servidor, o que é verdade para a configuração padrão.

Dispositivo de Roteador não tem a mesma origem que o site do atacante. No entanto, o atacante pode conseguir essa comunicação com técnicas para contornar a política do Same-Origin. Havia até mesmo vulnerabilidades no próprio mecanismo SOP:

  • CVE-2015-7188 – Trailing whitespace in IP address hostnames can bypass samee-origin policy.
  • CVE-2016-1967 – Violação da política da mesma origem usando performance.getEntries e navegação no histórico com restauração de sessão.
  • CVE-2016-1949 – Violação da política de origem da mesma usando Service Workers with plugins.

Bypassing the Same-Origin Policy is possible by exploiting vulnerable browser/plugin or using the technique called DNS Rebinding.

DNS Rebinding attack

DNS Rebinding attack allows to read data from the other origin bypassing the Same-Origin Policy mechanism. No cenário mais básico é possível substituir o registro DNS (“A”) de um domínio enquanto o usuário está visitando o site malicioso.

DNS Rebinding – diagrama

Se este ataque foi bem sucedido então o atacante é capaz de ler qualquer resposta de um comando executado no roteador remoto ( 192.168.1.1).

Dados sensíveis do lado do roteador

Attacker é agora capaz de ler o conteúdo remoto do seu roteador. Ele pode emitir um comando nvram show que contém todas as configurações do seu router como:

O comando mencionado retorna uma grande quantidade de dados sensíveis. O atacante não só é capaz de ler dados do roteador, mas também pode definir novos valores para essas configurações. Isso significa que ele é capaz de:

  • Alterar sua senha Wi-Fi.
  • Gerenciamento remoto (netgear.com – documentação).
  • Desabilitar firewall.
  • Configurar VPN para a localização desejada.
  • Atualizar configurações nvram, ele irá carregar as configurações salvas após o reinício do dispositivo (nvram set http_passwd=test; nvram commit).
  • …e muito mais.

Como proteger contra esse tipo de ataque?

Não há um único método fácil de proteger contra todas as variantes desse ataque. Eu recomendaria desativar httpd daemon no roteador e bloquear todas as conexões de entrada para sua LAN a partir da Internet.

Proteger contra ataques de DNS Rebinding.

O mecanismo de proteção padrão no lado do servidor é verificar o cabeçalho Host. Em um cenário padrão quando seu navegador se conecta a facebook.com então ele envia Host: facebook.com header.

Se houver o ataque de Rebinding DNS e o usuário visita attacker.com que tenta explorar o mecanismo SOP então o navegador se conecta a facebook.com e envia Host: attacker.com header. Se o servidor estiver configurado correctamente então deve bloquear esta requisição uma vez que Host header não corresponde à requisição original.

Netgear router não está a bloquear a ligação mesmo que Host header seja inválido e portanto este ataque é bem sucedido, o que é verdade para a maioria dos routers.

Bloquear ligação à sua LAN a partir da Internet.

O método mais fácil é bloquear TODAS as ligações da Internet à sua rede local. Ele irá bloquear qualquer tipo de comunicação do Browser para seus dispositivos locais como roteador e outros computadores.

Para todos que trabalham no Mac OS X é possível instalar a aplicação Little Snitch que é capaz de restringir o acesso a sub-redes definidas ou endereços IP específicos para cada aplicação ou processo do sistema.

Fixar este problema não só o protegerá contra esta técnica de exploração mas também contra ameaças futuras baseadas no ataque de Rebinding DNS.

Deixe uma resposta

O seu endereço de email não será publicado.