
Vulnerabilidade de Negação de Serviço no MikroTik RouterOS
Uma vulnerabilidade no MikroTik RouterOS permite que um atacante remoto não autenticado force um roteador a reiniciar. Isso é feito enviando um pacote de 1 byte para o endereço IPv6 do RouterOS usando o protocolo IP 97. Todas as versões do RouterOS com suporte a EoIPv6 são provavelmente vulneráveis a esse ataque. Esse ataque exige que o sistema alvo tenha IPv6 habilitado e possua pelo menos uma interface de túnel presente.
INPUT do protocolo IP 97.EoIPv6 (Ethernet sobre IPv6) é o protocolo de tunelamento de Camada 2 do MikroTik RouterOS. O protocolo EoIPv6 encapsula quadros Ethernet em pacotes EtherIP modificados (protocolo IP 97).
A implementação do EoIPv6 pela MikroTik usa 12 bits reservados do EtherIP para armazenar o ID do túnel. A MikroTik também trocou os primeiros 4 bits e os segundos 4 bits do cabeçalho EtherIP.
Para recuperar o ID do túnel e validar o pacote, o RouterOS trocará os bits conforme descrito acima nos pacotes recebidos no proto 97. O processo ocorre enquanto houver interfaces de túnel presentes no sistema (mesmo que estejam desativadas). O RouterOS não verifica o tamanho do payload durante o processo. Portanto, um pacote de um byte no proto 97 o quebrará (já que o restante dos bits necessários para construir o ID do túnel está faltando).
No RouterOS, adicione um IPv6:
/ipv6 address add interface=ether1 address=fd00::1/64 advertise=no
E um túnel (qualquer tipo):
/interface ipip add remote-address=127.0.0.1
Execute o exploit (exploit.c no repositório):
./exploit fd00::1
O RouterOS será reiniciado em alguns segundos após o exploit. Os seguintes logs podem ser vistos após a reinicialização:
jan/20/2018 10:28:36 system,error,critical router was rebooted without proper shutdown
Foram testadas as versões RouterOS 6.39.3 (apenas correções de bugs), 6.41 (atual) e 6.42rc11 (candidata a lançamento), e todas elas são vulneráveis a esse ataque no momento da redação. É provável que essa vulnerabilidade também esteja presente em versões antigas do RouterOS com suporte a EoIPv6.
Consulte este tópico no fórum da MikroTik.