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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
PlEXcalaison — Plex メディアサーバーのローカル権限昇格 PoC - CVE-2021-42835 | Kitploit
ツール/GitHubGitHub/netanelc305/plexcalaison
特権昇格脆弱性分析エクスプロイトペネトレーションテストバイナリエクスプロイト
GitHubnetanelc305/plexcalaison

PlEXcalaison

Plex メディアサーバーのローカル権限昇格 PoC - CVE-2021-42835

リポジトリを見る
64年前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

ローカル特権 PlEXcalasion - CVE-2021-42835

Windows 版 Plex Media Server のバージョン 1.25.0.5282 より前のバージョンは、Time Of Check Time Of Use(TOCTOU)に対して脆弱であり、低特権ユーザーが SYSTEM 権限を取得できる可能性があります。

発見者

Tomer Peled、Netanel Cohen、Amir Shen(BugSec のセキュリティ研究者)によって発見されました。

詳細

Plex for Windows は新しいアップデートをインストールするために PlexUpdateService.exe を使用します。このサービスは SYSTEM コンテキストで実行されています。アップデートをインストールする際、サービスはまずファイルの整合性とデジタル署名を検証し、チェックが成功した場合にのみアップデートがインストールされます。

このプロセスにおいて、整合性と署名のチェック後、更新ファイルを不適切に処理する設計上の欠陥がありました。ファイルはいったん閉じられ、インストールのために後で再度開かれていました。

この欠陥により、攻撃者はサービスが整合性と署名の検証を終えるとすぐに更新ファイルを悪意のあるファイルに置き換えることができ、SYSTEM コンテキストでのコード実行が可能になります。

この POC は、James Forshaw が開発したツールをわずかに変更して使用しています。オリジナルはこちら - https://github.com/googleprojectzero/symboliclink-testing-tools

上記を実現するために、最初に有効な更新ファイルを含むフォルダを指し、その後悪意のあるファイルを含むフォルダに切り替わる Junction フォルダを使用しました。

ファイルへのアクセス順序は次のとおりであることがわかりました:

  1. 更新ファイルを読み取ってデジタル署名を確認する
  2. 更新ファイルを閉じる。
  3. CACERT.pem を読み取る
  4. 署名を検証する。
  5. 更新ファイルを再度読み取る
  6. インストールを実行する

junction フォルダにマウントポイントを作成し、有効な更新ファイルを含むフォルダを指すようにしました。cacert.pem にコールバック関数付きの opLock を設定し、アクセスされたらすぐにマウントポイントを悪意のあるフォルダに変更します。

さらに、アップデートをトリガーする RPC クライアントも作成しました。

使用方法

  1. リポジトリをクローンし、Visual Studio で PlEXcalasion.sln を開きます。
  2. TOCTOU\junction にある Delete me.txt ファイルを削除します。これは、git がフォルダを含めるための単なるプレースホルダーです。このフォルダは空でなければなりません!
  3. パスを変更します:

PlexClient/PlexClient.cpp の ROOTDIR をあなたのパスに置き換えます。

root@kitploit:~
const wchar_t* pszString = L"<ROOTDIR>\\PlEXcalaison\\TOCTOU\\junction\\plex.exe"; // Path to the update file. 

PlEXcalaison/BaitAndSwitch/BaitAndSwitch.cpp の ROOTDIR をあなたのパスに置き換えます。

root@kitploit:~
static LPCWSTR junction = L"<ROOTDIR>\\PlEXcalaison\\TOCTOU\\junction";  // Path to junction folder , MAKE SURE IT IS EMPTY !
static LPCWSTR target1 = L"<ROOTDIR>\\PlEXcalaison\\TOCTOU\\valid"; // Path to folder contains the valid update file.
static LPCWSTR target2 = L"<ROOTDIR>\\PlEXcalaison\\TOCTOU\\malicious"; // Path to folder contains the malicious file - MUST BE THE SAME NAME AS THE UPDATE FILE.
static LPCWSTR cacert = L"C:\\Program Files (x86)\\Plex\\Plex Media Server\\Resources\\cacert.pem"; // Path to cacert.pem - can be found in plex directory.
  1. ソリューションをビルドします。
  2. PlexClient.exe が作成され、Rleases ディレクトリにあることを確認します。
  3. SYSTEM として実行したい任意の実行ファイルを malicious フォルダに置き、plex.exe に名前を変更します(POC では cmd.exe を使用しました)。
  4. BiteAndSwitch.exe を実行します。

公開情報

https://ir-on.io/2021/12/02/local-privilege-plexcalation/

https://forums.plex.tv/t/security-regarding-cve-2021-42835/761510

ツールをダウンロード