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:
* – 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.
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.