
Mikrotrickエクスプロイト(CVE-2026-67276)用のテストツール
MikroTik RouterOS (CVE-2026-67276) における SSH公開鍵認証バイパス脆弱性 を検出するために設計された自動化された動作検証ツールです。
このスクリプトは、対象となる公開鍵のモジュラスのみに一致する偽造署名を使用してハンドシェイクを確立することで、SSHサービスの不完全な検証の欠陥が認証を許可するかどうかをテストします。
CVE-2026-67276 は、RouterOS SSHデーモンハンドラー内のRSA公開鍵検証の不完全さに起因します。クライアントの公開鍵認証リクエストを処理する際、影響を受けるバージョンは鍵タイプと RSA公開モジュラス ($n$) のみを照合し、公開指数 ($e$) の検証を省略します。
対象ユーザーの設定済み 認証済み公開鍵 を保有する操作者は、ログインペイロードを偽造できます。有効な認証済みモジュラスとともに指数を $1$ ($e=1$) に設定した一時鍵ブロブを送信することで、検証者が期待する正確な構造に一致する数学的に予測可能な署名を渡すことができます。これにより、対応する秘密鍵を保有または必要とせずに認証を完全にバイパスします。
ssh-rsa OpenSSH公開鍵ファイルのローカルコピーからモジュラス ($n$) を抽出します。ssh-rsa、rsa-sha2-256、または ) に自動的に適応します。rsa-sha2-512検証ツールには、カスタムSSHメッセージ構築のためのPython 3と paramiko ライブラリが必要です。
pip install paramiko
python3 ssh_modulus_forge_check.py -H <TARGET_IP> -u <USERNAME> -k <PATH_TO_AUTHORIZED_PUBLIC_KEY>
| フラグ | 説明 | デフォルト |
|---|---|---|
-H, --host | 対象ホストのIPアドレスまたはホスト名。 | 必須 |
-p, --port | 対象SSHポート番号。 | 22 |
-u, --user | 検証する対象ユーザー名。 | 必須 |
-k, --pubkey | 対象アカウントに紐付けられた正当な .pub ファイルへのパス。 | 必須 |
--sig-alg | 署名タイプを強制 (ssh-rsa、rsa-sha2-256、rsa-sha2-512)。 | auto |
--exec | 成功時にアクセス証明として実行するリモートコマンド。 | None |
--timeout | ネットワークおよび認証接続のタイムアウト(秒)。 | 10 |
python3 ssh_modulus_forge_check.py -H 192.168.88.1 -u admin -k id_rsa.pub --exec "/system resource print"
脆弱なデバイスを保護するには、RouterOSインストールを直ちに修正済みリリースに更新してください。パッチ適用をネイティブにスケジュールできない場合は、ローカライズされたIPファイアウォールルール (/ip firewall filter) を適用するか、RouterOSサービス管理 (/ip service) を使用して許可された送信元アドレスを制限することで、サービスへの管理アクセスを制限してください。
この実装は、許可されたネットワーク上での防御的な動作検証、資格情報監査、およびパッチ準拠検証のみを目的としています。