Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2018-14847 — Análise e PoC para CVE-2018-14847, vulnerabilidade de divulgação de informações do MikroTik RouterOS Winbox permitindo acesso de leitura não autenticado ao banco de credenciais. | Kitploit
Ferramentas/GitHubGitHub/themalwareguardian/cve-2018-14847
Segurança de Sistemas EmbarcadosQuebra de SenhasSegurança IoTAnálise de VulnerabilidadesExploraçãoColeta de Informações
GitHubthemalwareguardian/cve-2018-14847

CVE-2018-14847

Análise e PoC para CVE-2018-14847, vulnerabilidade de divulgação de informações do MikroTik RouterOS Winbox permitindo acesso de leitura não autenticado ao banco de credenciais.

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório
4há 4 mesesAinda não revisado

🐞 MikroTik CVE-2018-14847

Path traversal não autenticado no protocolo Winbox da MikroTik que vaza credenciais de administrador de /flash/rw/store/user.dat




📑 Índice

  • Visão Geral
  • Versões Afetadas
  • Vulnerabilidade
    📂
    • Protocolo Winbox
    • Path Traversal
    • Descriptografia de Senha
    • Backdoor do Desenvolvedor
  • Exploit
  • Referências



📋 Visão Geral

CVE-2018-14847 é uma vulnerabilidade de path traversal no MikroTik RouterOS que afeta o protocolo de gerenciamento Winbox (porta TCP 8291). Um atacante remoto não autenticado pode ler arquivos arbitrários do sistema de arquivos do roteador, incluindo o banco de dados de credenciais de usuário /flash/rw/store/user.dat, que armazena senhas criptografadas com uma chave XOR estática fraca.

A vulnerabilidade foi divulgada originalmente por Jacob Baines (Tenable) em julho de 2018 através do exploit By the Way. Este repositório contém uma reimplementação Python3 independente com documentação completa do protocolo.




🎯 Versões Afetadas

Baixar ferramenta
CanalVersões
Longterm6.30.1 - 6.40.7
Stable6.29 - 6.42
Beta6.29rc1 - 6.43rc3

A MikroTik corrigiu esta vulnerabilidade em abril de 2018. Dispositivos executando RouterOS mais antigo que as versões corrigidas permanecem vulneráveis.




🔬 Vulnerabilidade

🧠 Protocolo Winbox

Winbox é o protocolo de gerenciamento binário proprietário da MikroTik executado na porta TCP 8291. Os quadros (frames) são estruturados como:

root@kitploit:~
[total_len - 2][0x01][0x00][total_len - 4]["M2"][campos...]

O cabeçalho de 4 bytes codifica o tamanho total do quadro. Não é um u16 little-endian padrão - cada byte codifica total_length - 2 e total_length - 4 independentemente.

Codificação de campos dentro de cada quadro:

Byte de tipoSignificadoValor
0xffMarcador de campo estendidoseguido por field_id e valor
0x09Inteiro u81 byte
0x21Stringprefixo de comprimento 1 byte + dados
0x88Marcador de resposta esperadasem valor
0xfeId de campo estendidoid de 3 bytes + tipo + valor

O manipulador do sistema de arquivos reside no endpoint (sys=5, handler=0) e expõe três comandos relevantes:

  • 0x06 - abrir arquivo
  • 0x04 - ler arquivo
  • 0x01 - criar arquivo

🧨 Path Traversal

O manipulador do sistema de arquivos do Winbox não sanitiza o caminho passado ao comando de abrir arquivo. Ao incorporar sequências '/////./../', um atacante escapa do limite da sandbox e alcança o sistema de arquivos raiz:

root@kitploit:~
/////./..//////./..//////./../flash/rw/store/user.dat

Cada segmento '/////./../' (10 bytes) sobe um nível de diretório. Três segmentos alcançam a raiz, após o qual flash/rw/store/user.dat é o banco de dados de credenciais de usuário do RouterOS. A requisição não requer autenticação.

O exploit envia dois quadros:

  1. Requisição de abertura: comando de abrir arquivo com o caminho de traversal
    • Resposta byte [38] → session_id
  2. Requisição de leitura: comando de ler arquivo com o session_id corrigido
    • Resposta a partir do byte [55] → conteúdo bruto de user.dat

🔐 Descriptografia de Senha

user.dat é uma sequência de registros nv::message. Cada registro é precedido por um campo de comprimento de 2 bytes LE e começa com os bytes mágicos M2. Campos dentro de cada registro usam um id de campo de 3 bytes LE:

Id de campoTipoSignificado
0x01stringnome de usuário
0x02u8grupo - 3 = acesso total de administrador
0x11stringsenha criptografada (vazia se não definida)

As senhas são criptografadas com uma chave XOR estática derivada de um salt hardcoded compilado no RouterOS:

root@kitploit:~
chave     = MD5(nome_de_usuário + "283i4jfkai3389")
senha     = XOR(encrypted_pass[i], chave[i % len(chave)])  até byte nulo

Isso significa que qualquer user.dat extraído de qualquer dispositivo afetado pode ser descriptografado offline sem força bruta.


🧬 Backdoor do Desenvolvedor

Após obter a senha do administrador, o atacante pode autenticar via Winbox e usar o comando de criar arquivo para escrever dois arquivos que ativam o login oculto de desenvolvedor:

root@kitploit:~
/pckg/option                       ativa o pacote de opções
/flash/nova/etc/devel-login        habilita o usuário devel

Uma vez que esses arquivos existam, o roteador expõe um shell BusyBox root via Telnet e SSH sob o usuário devel, usando a senha do administrador.

O Telnet deve ser conectado primeiro para que o SSH funcione em algumas versões do RouterOS.




⚙️ Exploit

Exploit_CVE_2018_14847.py é um exploit Python3 autossuficiente com zero dependências externas. Ele implementa o protocolo binário Winbox do zero e realiza:

  1. Path traversal não autenticado para extrair user.dat.
  2. Análise binária de registros nv::message.
  3. Descriptografia de senha MD5-XOR.
root@kitploit:~
# Porta padrão 8291
python3 Exploit_CVE_2018_14847.py 192.168.1.10

# Porta personalizada
python3 Exploit_CVE_2018_14847.py 192.168.1.10 8291

Pós-exploração - shell do backdoor do desenvolvedor:

root@kitploit:~
# Telnet (deve conectar primeiro)
telnet -l devel 192.168.1.10

# SSH (após sessão Telnet)
ssh -oHostKeyAlgorithms=+ssh-dss [email protected]



📚 Referências

  • Aviso de Segurança MikroTik

    • Aviso oficial de correção e cronograma da MikroTik.
  • Tenable - By the Way PoC

    • Exploit C++ original por Jacob Baines.
  • NVD - CVE-2018-14847

    • CVSS 9.1 (Crítico).