Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2018-14847 — CVE-2018-14847 の解析と PoC。MikroTik RouterOS Winbox の情報漏えい脆弱性であり、認証なしで資格情報データベースへの読み取りアクセスを許可します。 | Kitploit
ツール/GitHubGitHub/themalwareguardian/cve-2018-14847
組み込みシステムセキュリティパスワードクラッキングIoTセキュリティ脆弱性分析エクスプロイト情報収集
GitHubthemalwareguardian/cve-2018-14847

CVE-2018-14847

CVE-2018-14847 の解析と PoC。MikroTik RouterOS Winbox の情報漏えい脆弱性であり、認証なしで資格情報データベースへの読み取りアクセスを許可します。

リポジトリを見る
3ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

🐞 MikroTik CVE-2018-14847

MikroTikのWinboxプロトコルにおける認証なしのパストラバーサルにより、/flash/rw/store/user.datから管理者認証情報が漏洩します。




📑 目次

  • 概要
  • 影響を受けるバージョン
  • 脆弱性
    📂
    • Winboxプロトコル
    • パストラバーサル
    • パスワード復号
    • 開発者バックドア
  • エクスプロイト
  • 参考文献



📋 概要

CVE-2018-14847 は、MikroTik RouterOSのWinbox管理プロトコル(TCPポート8291)に影響を与えるパストラバーサル脆弱性です。認証されていないリモート攻撃者がルーターのファイルシステムから任意のファイルを読み取ることができ、これにはユーザー資格情報データベース /flash/rw/store/user.dat も含まれます。このデータベースには、弱い静的なXOR鍵で暗号化されたパスワードが保存されています。

この脆弱性は、2018年7月にJacob Baines(Tenable)によってBy the Wayエクスプロイトを通じて最初に公開されました。このリポジトリには、完全なプロトコルドキュメントを備えたスタンドアロンのPython3再実装が含まれています。




🎯 影響を受けるバージョン

ツールをダウンロード
ChannelVersions
Longterm6.30.1 - 6.40.7
Stable6.29 - 6.42
Beta6.29rc1 - 6.43rc3

MikroTikは2018年4月にこの脆弱性を修正しました。修正版より古いRouterOSを実行しているデバイスは脆弱なままです。




🔬 脆弱性

🧠 Winboxプロトコル

Winboxは、TCPポート8291で動作するMikroTik独自のバイナリ管理プロトコルです。フレームの構造は次のとおりです:

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

4バイトのヘッダーはフレーム全体のサイズをエンコードします。これは標準のリトルエンディアンu16ではなく、各バイトがtotal_length - 2およびtotal_length - 4を独立してエンコードします。

各フレーム内のフィールドエンコーディング:

タイプバイト意味値
0xff拡張フィールドマーカー続いてfield_idと値
0x09u8整数1バイト
0x21文字列1バイト長プレフィックス + データ
0x88応答期待マーカー値なし
0xfe拡張フィールドID3バイトID + タイプ + 値

ファイルシステムハンドラはエンドポイント(sys=5, handler=0)に存在し、以下の3つの関連コマンドを公開します:

  • 0x06 - ファイルを開く
  • 0x04 - ファイルを読み込む
  • 0x01 - ファイルを作成する

🧨 パストラバーサル

Winboxファイルシステムハンドラは、ファイルを開くコマンドに渡されるパスをサニタイズしません。'/////./../'シーケンスを埋め込むことで、攻撃者はサンドボックスの境界をエスケープしてルートファイルシステムに到達します:

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

各'/////./../'セグメント(10バイト)は1ディレクトリレベル上に移動します。3つのセグメントでルートに到達し、その後flash/rw/store/user.datがRouterOSのユーザー資格情報データベースです。このリクエストには認証は必要ありません。

エクスプロイトは2つのフレームを送信します:

  1. オープンリクエスト:トラバーサルパスを使用したファイルを開くコマンド
    • 応答バイト[38] → session_id
  2. 読み込みリクエスト:session_idを埋め込んだファイルを読み込むコマンド
    • 応答バイト[55]以降 → 生のuser.dat内容

🔐 パスワード復号

user.datは、nv::messageレコードのシーケンスです。各レコードの前には2バイトのリトルエンディアン長フィールドがあり、マジックバイトM2で始まります。各レコード内のフィールドは3バイトのリトルエンディアンフィールドIDを使用します:

フィールドIDタイプ意味
0x01文字列ユーザー名
0x02u8グループ - 3 = フル管理アクセス
0x11文字列暗号化されたパスワード(未設定の場合は空)

パスワードは、RouterOSにコンパイルされたハードコードされたソルトから導出された静的なXOR鍵で暗号化されています:

root@kitploit:~
key      = MD5(ユーザー名 + "283i4jfkai3389")
password = XOR(encrypted_pass[i], key[i % len(key)])  ヌルバイトまで

これは、影響を受ける任意のデバイスから抽出されたuser.datは、ブルートフォースなしでオフラインで復号できることを意味します。


🧬 開発者バックドア

管理者パスワードを入手した後、攻撃者はWinboxを介して認証し、ファイル作成コマンドを使用して、隠された開発者ログインを有効にする2つのファイルを書き込むことができます:

root@kitploit:~
/pckg/option                       オプションパッケージをアクティブ化
/flash/nova/etc/devel-login        develユーザーを有効化

これらのファイルが存在すると、ルーターはTelnetおよびSSHを介して、管理者のパスワードを使用するdevelユーザーとしてBusyBoxルートシェルを公開します。

一部のRouterOSバージョンでは、SSHが機能するために最初にTelnet接続を行う必要があります。




⚙️ エクスプロイト

Exploit_CVE_2018_14847.py は、外部依存関係のない自己完結型のPython3エクスプロイトです。Winboxバイナリプロトコルをゼロから実装し、以下の処理を実行します:

  1. 認証なしのパストラバーサルによるuser.datの抽出。
  2. nv::messageレコードのバイナリ解析。
  3. MD5-XORパスワード復号。
root@kitploit:~
# デフォルトポート8291
python3 Exploit_CVE_2018_14847.py 192.168.1.10

# カスタムポート
python3 Exploit_CVE_2018_14847.py 192.168.1.10 8291

ポストエクスプロイト - 開発者バックドアシェル:

root@kitploit:~
# Telnet(最初に接続する必要あり)
telnet -l devel 192.168.1.10

# SSH(Telnetセッション後)
ssh -oHostKeyAlgorithms=+ssh-dss [email protected]



📚 参考文献

  • MikroTik Security Advisory

    • MikroTikからの公式パッチ勧告とタイムライン。
  • Tenable - By the Way PoC

    • Jacob BainesによるオリジナルのC++エクスプロイト。
  • NVD - CVE-2018-14847

    • CVSS 9.1(クリティカル)。