Retrospectiva do caos em torno dos roteadores MikroTik

A capacidade de computadores, smartphones e smart TVs conectadas a roteadores vulneráveis foi abusada para gerar moedas digitais para os cibercriminosos.

Autores:  Martin Hron e David Jursa

Desde que a MikroTik lançou uma correção em abril para a falha CVE-2018-14847, os cibercriminosos têm sido rápidos para explorar esta vulnerabilidade e executar ataques que vão desde a criptomineração até a espionagem. De 19 de setembro a 15 de outubro, o Avast bloqueou URLs de criptomineração malignos relacionados a redes infectadas que usavam roteadores MikroTik, mais de 22,4 milhões de vezes, bloqueando-os para mais de 362.616 usuários em 292.456 redes diferentes, apenas entre os usuários do Avast. Nós detectamos a campanha de criptomineração como JS:InfectedMikroTik.

Recentemente, o Laboratório de Ameaças da Avast fez uma análise mais detalhada do malware, que levou à identificação e remoção de dois servidores C&C e nos levou ao paradeiro dos cibercriminosos. Uma das características mais marcantes desta campanha específica é a longevidade com a qual o ataque persistiu após ser identificado pela primeira vez no final de julho. Observado, mas não compreendido anteriormente, este malware usa várias técnicas inteligentes para controlar o poder de computação de centenas de milhares de redes e garantir sua persistência nos roteadores afetados.

Leia mais para compreender como determinar se seu roteador foi afetado e o que fazer para proteger sua rede contra essa vulnerabilidade.

Mais e mais criptomineradores

O aumento no uso das moedas digitais, junto com a capacidade de minerar a moeda via javascript com um navegador, levou a um grande aumento na criptomineração maligna. Cibercriminosos executam software para minerar moedas usando os recursos de empresas e consumidores desavisados.

Tudo que possa oferecer poder de computação é atraente para bandidos e um dos alvos mais óbvios para eles são os roteadores: toda casa e empresa conectada tem um e frequentemente eles têm problemas de segurança causados por credenciais fracas ou vulnerabilidades conhecidas.

Pode-se pensar que a campanha usa apenas o poder de computação dos roteadores para minerar moedas, no entanto, não é assim. O malware usa o poder de computação de todos os dispositivos conectados no roteador infectado que podem executar um navegador, incluindo computadores, telefones e smart TVs. O maior problema, no entanto, é quen uma vez que o roteador é comprometido, você não pode ter certeza de que outras maneiras ele pode ter sido utilizado indevidamente.

Quando conseguimos analisar um dos roteadores infectados, começamos a investigar e analisar como a campanha opera. Vamos mostrar a você nossa investigação.

mikrotik-router-attacks-blocked-by-avast

Ataques ao roteador MikroTik bloqueados pelo Avast em todo o mundo

Os dez principais países que foram alvo do JS:InfectedMikroTik

1

Brasil

85.230

2

Polônia

43.677

3

Indonésia

27.102

4

Argentina

24.255

5

Colômbia

15.300

6

Turquia

15.144

7

Índia

11.809

8

Ucrânia

11.614

9

Bangladesh

9.867

10

Venezuela

9.527


top-internet-providers-with-infected-routers

Principais provedores de internet com roteadores infectados por país
(fonte:  provedores de internet da base de usuários do Avast)

Impulso inicial

Decidimos analisar essa campanha de criptomineração, depois que a conta do Twitter “Bad Packets Report” (@bad_packets) reclamou sobre uma campanha de criptomineração em andamento, hospedada em roteadores da MikroTik, que ninguém havia notado antes. Em seu tweet, o Bad Packets mencionou cerca de 250 mil roteadores comprometidos.

bad-packets-tweet

https://twitter.com/bad_packets/status/1046469669341675520

Isso chamou a nossa atenção e, por isso, decidimos ir fundo e encontrar o motivo. Várias fontes mencionaram que o acesso desses roteadores foi permitido principalmente devido a uma vulnerabilidade recente no protocolo WinBox, um painel de controle do roteador cujo protocolo poderia ser explorado com a vulnerabilidade CVE-2018-14847. No entanto, acreditamos que os roteadores também podem ter sido explorados, pois seus proprietários não mudaram as credenciais padrão ou criaram senhas fracas.

Existem cerca de 314.000 roteadores da MikroTik na base de usuários do Avast e, desses, apenas 4,89% foram atualizados com o firmware mais recente, que corrige a vulnerabilidade e 85,48% deles são vulneráveis ao exploit Winbox.

Modus operandi e primeiras descobertas

Começamos a escanear os roteadores que provavelmente estavam vulneráveis e infectados. Um denominador comum dos dispositivos infectados é que a porta TCP/8080, que funciona como proxy web, está aberta. Normalmente, proxies web são abertos de dentro do perímetro para fora, mas, nesse caso, uma porta aberta poderia ser encontrada na interface de internet do roteador. O que é mais interessante é como ela se comporta quando você se conecta ao proxy no roteador.

cryptomining-code-1

Uma página proibida, criada especificamente para isso, executa um minerador de criptomoeda antes de mostrar o real conteúdo da web que o usuário tenta acessar

Quando você acessa um URL que começa por http:// em um roteador infectado via TCP porta 80, você recebe o código de erro HTTP 403 Forbidden via uma página de erro, que contém o código HTML acima. Examinando melhor a imagem acima, você pode ter notado que ela tenta executar um script:

cryptomining-code-2

Após revelar vários níveis de ofuscação, descobrimos que o script inicia um minerador de criptomoeda em javascript que funciona em seu navegador. De maneira interessante, a página web que tentava-se acessar é recarregada em um elemento IFRAME depois de 10 milissegundos, então o usuário vê o conteúdo original dentro de um iframe, enquanto o minerador funciona em segundo plano. Dessa maneira, o usuário vai navegar feliz no conteúdo original sem mesmo saber que algo errado está acontecendo em segundo plano.

Agora, é possível que o mesmo URL exiba o conteúdo real depois de 10 milissegundos e não o minerador novamente? Para compreender como isso funciona, precisamos compreender os roteadores MikroTik. Conseguimos o script de configuração do roteador MikroTik para essa campanha de criptomineração. Vamos examinar a anatomia do ataque.

Vetor de ataque

Essa infecção começa abusando a CVE-2018-1487, uma vulnerabilidade crítica que permite que o invasor acesse qualquer arquivo do roteador sem autorização da interação do usuário. Nesse caso, a família de malwares tem como alvo o arquivo que contém o banco de dados de credenciais, permitindo que o invasor invada o seu dispositivo.


DICA DE SEGURANÇA:
Nunca exponha a interface de administração à internet através de uma porta aberta. Embora a vulnerabilidade de que estamos falando seja grave, ela não pode ser utilizada indevidamente a menos que o invasor se conecte à interface de gerenciamento. Neste caso, a porta TCP/8291 do WinBox está vulnerável. Recomendamos fechar essa e todas as outras portas, como TCP/21 para FTP, TCP/22 para SSH e TCP/23 para serviços TELNET, se você não tem intenção de usá-las para se conectar à internet.


Ao usar uma das vulnerabilidades mencionadas anteriormente ou credenciais fracas, o invasor ganha acesso ao roteador e depois executa um ataque em várias fases. A primeira coisa que ele faz é colocar um script no roteador. Ainda não está totalmente claro se essa primeira etapa é necessária, pois o mesmo fim poderia ser facilmente obtido usando um simples comando de busca. Neste caso, no entanto, o script também funciona. Uma vez implantado, o script é programado para ser executado uma vez a cada cinco minutos. O script baixa a próxima fase do domínio de “comando e controle” (C&C) /cmd-update.txt, e o armazena como arquivo i113.rsc no roteador, e executa-o emitindo o comando /import:

cryptomining-code-3

Durante essa fase, um script chamado i113.rsc é executado e depois de 6 segundos, o script é removido. Esse script é muito longo, por isso, vamos focar em algumas partes importantes:

Primeiro, o script tenta excluir qualquer trabalho agendado anteriormente e scripts que são executados no roteador, incluindo regras, agendamentos e outros. Há uma lista bastante longa cheia de nomes de scripts a eliminar, o que nos faz pensar que essa família de malwares existe há um tempo e foi modificada à medida que mais trabalhos foram adicionados à sua lista de eliminação.

cryptomining-code-4
Em seguida, ele remapeia portas para protocolos de acesso TELNET e SSH para portas incomuns para evitar fácil detecção e evitar que outras pessoas se conectem à interface de administração do roteador. Ele também abre essas portas à internet, se ainda estiverem fechadas. Como você pode ver em nossa análise, esse não era o script original do início da campanha.

cryptomining-code-5
A próxima etapa é redefinir a página de erro de proxy, que é depois usada para a carga do minerador e para ativar o proxy web em si.  Ele também adiciona uma regra para garantir que qualquer solicitação adicional ao proxy seja negada e o conteúdo de error.html com status 403 Forbidden retorna ao usuário.

cryptomining-code-6

Chegamos agora à fase mais importante, em que o malware adiciona uma regra de firewall que redireciona toda tentativa de conexão na porta TCP/80 (HTTP) para TCP/8080 (proxy web). Ele redireciona toda solicitação por qualquer computador e outros dispositivos dentro da rede por um proxy web até uma página web desprotegida (HTTP).

cryptomining-code-7

Observe que src-address-list=!Ok é um detalhe muito importante. Essa regra é disparada apenas quando o endereço IP do computador solicitante não está na lista “!Ok”. Por quê? Continue lendo.

Essa é outra linha importante de código para a campanha funcionar. Isso significa que se a solicitação for redirecionada ao proxy, o endereço de origem, quer dizer, o endereço IP do computador que a enviou, é adicionado à lista “!Ok” por 15 segundos.

cryptomining-code-8
As duas linhas de código acima dizem para o roteador verificar a cada 15 segundos quando estiver conectado a uma página desprotegida (HTTP), redirecionar o tráfego pelo proxy (uma vez apenas, pois quando você é redirecionado, o endereço IP do seu computador é adicionado à lista !Ok por mais 15 segundos). Isso injeta seu minerador a cada 15 segundos e é também o motivo para que uma tentativa repetida de carregar a mesma página leva ao conteúdo planejado.

cryptominer-injection-block-diagram

Diagrama de um exemplo de como a injeção funciona

A próxima linha nos informa que esse script é realmente maligno:

cryptomining-code-9

Ele configura os registros para manter apenas a última linha do log. Isso não é, obviamente, uma boa prática para uso de produção, mas permite que quem está mal intencionado fique desapercebido, para que o administrador não possa ver o histórico de comandos nos arquivos de log.

A linha a seguir cria um servidor proxy SOCKS em uma porta que se baseia no tempo real do roteador, que é aleatório nisso e usa minutos e segundos.

cryptomining-code-10

As próximas duas linhas baixa uma página error.html maligna que, em vez da página de erro comum, contém o minerador injetado.

cryptomining-code-11

Em seguida, o malware tenta se tornar persistente agendando o script para baixar uma versão nova da página error.html e também uma nova versão do script de instalação.

cryptomining-code-12
O script iDDNS é executado a cada 5 minutos e contém:

cryptomining-code-13

Este código envia o endereço MAC, porta WinBox, porta SOCKS, porta PROXY, o status de SOCKS e proxy WEBe status de servidor PPTP (VPN) ao servidor C&C, tudo concatenado em uma string de URL separada por “_” e depois recebe de volta o script para executar.

Esses scripts ainda estão mudando e evoluindo à medida que os invasores os aprimoram. No momento em que o artigo foi originalmente escrito, eles eram provavelmente diferentes ou pelo menos o domínio do servidor C&C mudou novamente.

Cibercriminosos brincando com a gente

Nesse ponto, a situação não está muito clara, pois há várias famílias de malwares ativas. Analisar esse malware é como examinar um livro de assinaturas. A linhagem específica que examinamos com o script que descobrimos nesta publicação é usada pelo menos em dois domínios, pelo que sabemos. O primeiro domínio de servidor que identificamos foi:

mining117.com mais precisamente, os scripts foram servidos de http://mining117.com/update.txt e de http://mining117.com/cmd-update.txt.

Com mais investigações, descobrimos que esse domínio está ativo desde 4 de março de 2018, e foi hospedado em três servidores diferentes pelo menos provedor de hospedagem.

mining117-scripts

Entramos em contato com o provedor de hospedagem e juntos tiramos esse servidor do ar em 5 de outubro. Apenas um dia depois, toda a campanha estava ativa novamente com um domínio diferente, gazanew.com, servido surpreendentemente na mesma rede de hospedagem.

gazanew-scripts
Solicitamos novamente retirar o servidor do ar. Depois disso, o criminoso começou a brincar conosco. Pouco depois de retirar do ar o segundo domínio, o criminoso começou a restringir os dispositivos comprometidos, desativando a maior parte da interface de gerenciamento e movendo as portas do SSH e TELNET para a porta TCP/10022 e TCP/10023, que é inesperada e incrivelmente improvável que o usuário possa notar. O criminosos continuou a marcar sua posição no roteador. Por exemplo, agora é quase impossível se conectar à porta telnet. Assim que você se conecta usando credenciais vazadas, o roteador desconecta você quase que imediatamente.

mikrotik-closing-hosts

Eles estão vivos!

Ainda estamos caçando os transgressores, no entanto, é difícil, pois o número de roteadores infectados é ainda enorme. Existem até planilhas do Google Docs na internet rastreando todas as campanhas de mineração dos roteadores infectados:

cryptominer-data-total-routers-421K

Fonte: https://docs.google.com/spreadsheets/d/1RdT_r4fi4wPx5rY306FftVKaXiAZeQeb5fx78DmbVx0/edit?usp=sharing

@bad_packets coletou e analisou os dados do criptominerador acima do Shodan, Censys e outras fontes similares e ele mostra que o grande total de roteadores que serve algum tipo de minerador ultrapassa 421.000. Como não existe maneira fácil de obter estatísticas sobre as chaves do CoinHive, ilustramos abaixo a atividade das chaves para as quais poderíamos obter o saldo de criptomoedas:

mining-activity-distributed-key

Captura de tela da atividade de mineração de uma das chaves distribuídas (xmr.omine.org)

moneroocean-mining-activity
Captura de tela da atividade de mineração de uma das chaves distribuídas (MoneroOcean pool)

A escala do problema

No gráfico abaixo, você pode ver a distribuição dos roteadores da MikroTik por versão de firmware em nossa base de usuários. A triste conclusão é que apenas 5% deles têm a versão mais recente do firmware (6.43.2) e 85% ainda estão vulneráveis ao exploit CVE-2018-14847 WinBox.

router-os-distributionRoteadores vulneráveis ao exploit Winbox: 85,48%
Roteadores com o último firmware (6.43.2): 4,89%

Qual é o dano?

Pode parecer que o dano que essa campanha de criptomineração seria apenas usar o poder computacional do roteador para minerar criptomoedas, mas isso não é verdade. De fato, todos os computadores atrás do roteador infectado fazem o trabalho para o criminoso, não o roteador. O maior problema, no entanto, é que uma vez que o roteador é comprometido, você não pode ter certeza de que outras maneiras ele pode ser utilizado indevidamente. Ele pode ser usado para farejar o tráfego, servindo páginas malignas a você, etc.

Você pode verificar facilmente se sua rede está (ou foi) afetada usando o Verificador de Wi-Fi da Avast. A captura de tela abaixo mostra o que acontece quando o roteador é vulnerável ao CVE-2018-14847. O Verificador de Wi-Fi pode também detectar senhas fracas ou padrão em serviços de roteador MikroTik, como Telnet e FTP, ou detectar uma violação específica de HTTP com o nome de catálogo HNS-2018-001-MIKROTIK-HTTP-INJECTION, que é uma forte indicação de que sua rede está infectada.

wi-fi-inspector-winbox-vulnerability-screen

O Verificador de Wi-Fi da Avast verifica se sua rede está vulnerável ao ataque

threat-secured-against-mikrotek

Os produtos antivírus da Avast protegem você contra o
acesso a sites infectados com criptomineradores malignos

De onde vem o malware?

Agora é bom saber que é difícil de rastrear os transgressores, pois há mais de uma campanha em andamento. Para falar a verdade, é um pesadelo, pois os roteadores vulneráveis estão sendo reutilizados repetidas vezes por diferentes campanhas, então, parece um cemitério de filme de terror cheio de “defuntos” da campanha anterior com novas em cima das anteriores. No entanto, estamos observando de perto uma campanha específica que parece ser a iniciadora. Não chegamos a uma conclusão definitiva ainda, por isso, fique ligado nas próximas atualizações.

Fui afetado, o que devo fazer?

security-reminder-warning-screen

A MikroTik não pode ser culpada inteiramente por essa situação, mesmo que seja um bug em seus roteadores.  Eles emitiram uma correção e um aviso dentro de um tempo razoável. O problema aqui é a adoção da correção. Então, se você foi afetado, faça o seguinte:

  • Mesmo que isso soe estranho, verifique se você tem um roteador da MikroTik. Você pode ser afetado por esse problema mesmo se não tiver um roteador da MikroTik. Se for esse o caso e você receber uma detecção JS:InfectedMikroTik, provavelmente seu provedor de internet foi afetado (veja, por exemplo, a Telefonica/Vivo no Brasil). Nesse caso, entre em contato com eles imediatamente para resolver o problema nos roteadores deles.
  • Veja se você consegue se conectar ao roteador da rede interna, usando o que você estiver acostumado, por exemplo, WinBox, TELNET ou SSH.
  • Se você não puder se conectar em nenhuma das portas acima, tente portas alternativas que foram movidas pelo criminoso. Para TELNET e SSH, eles foram movidos para TCP/10022. Para SSH e TCP/10023 para portas TELNET.

Se ainda não conseguir se conectar, a única maneira será redefinir o rotador às configurações de fábrica. Imediatamente depois de uma redefinição de fábrica, atualize seu firmware. Depois, se você fizer outra redefinição de fábrica, todas as configurações padrão estarão seguras, pois as versões mais recentes de roteadores MikroTik fecham o acesso externo ao roteador, como padrão. Existe um artigo da MikroTik que você pode seguir aqui, ou você pode instalar o firmware mais recente e definir uma nova senha pela opção Quick Set no aplicativo WinBox. É fácil.

quick-set-option-in-winbox-app

  • Se você conseguir se conectar, a primeira coisa a fazer é fechar o acesso a uma interface externa.
  • Veja se você tem algum script, arquivo, nome de usuário, segredo PPP ou trabalho agendado com os IOCs no final deste artigo. Se tiver, exclua-o. Comece com o agendador, pois essas tarefas podem ser reexecutadas, levando à nova configuração do roteador
  • Desative o proxy web e SOCKS (caso não precise deles ou então verifique a sua configuração) e verifique as regras do firewall
  • No menu ferramentas, marque o sniffer (farejador) de pacotes
  • Se não usar o recurso PPTP do servidor, desative-o
  • Verifique todas as contas de usuário, remova todas as suspeitas e defina uma senha forte para todas as outras
  • Agora, ATUALIZE O FIRMWARE do roteador para a versão mais recente

IOCs

Domínios:

gazanew.com
mining711.com
srcip.com
src-ips.com
srcips.com
hostingcloud.science
meaghan.pythonanywhere.com

Nomes de trabalhos agendados:

DDNS
CrtDDNS
UpDDNS
Setschedule[1-9]_
upd[113-116]
system[111-114]
ip
a
u[3-6]

Contas de usuário conhecidas por estarem ligadas a campanhas:

toto
dodo

Arquivos no roteador:

i113.rsc
i114.rsc
I116.rsc
exsvc.rsc

Artigos relacionados

--> -->