
バージョン: PCManager バージョン 17.10.28554.205 以下
概要: Tencent PC Manager の C:\Windows\Temp 以下のファイルとディレクトリが安全に処理されない脆弱性を発見しました。攻撃者はシンボリックリンク(symlink)攻撃を利用して、SYSTEM 権限のプロセスに任意のファイルを削除させ、ローカル権限昇格を引き起こすことができます。スキャン処理中、NT AUTHORITY\SYSTEM で実行されている QQPCRtp.exe は、スキャンしたファイルをこの一時ディレクトリに移動し、スキャン完了後に削除します。
ドライブのスキャンを開始すると、プロセス "QQPCRTP.exee" が SYSTEM 権限で次の操作を行うことが確認されました:
QQPCRTP.exe は pcmgr_scan_tmp 内に UUID(例: {*})で命名されたサブディレクトリを作成します。
最後に、QQPCRTP.exe は SYSTEM 権限を使用して pcmgr_scan_tmp 内の {*} サブディレクトリを削除します。
"C:\Windows\Temp_pcmgr_scan_tmp_" ディレクトリは現在のユーザーが作成でき、現在のユーザーに「変更」権限が割り当てられる可能性があるため、現在のユーザーはディレクトリ全体を変更および読み取りできます。この設定により、権限のないユーザーは特権のある場所(例: C:\Windows\System32)へのシンボリックリンクを作成することで、任意のファイル削除を達成できます。さらに、悪意のあるユーザーは任意のファイル/フォルダ削除からローカル権限昇格を達成できる可能性があります。
また、Tencent PC Manager がいつ pcmgr_scan_tmp フォルダを作成するのか正確には分からないため、Windows\Temp 上に pcmgr_scan_tmp フォルダを作成するには競合状態(レースコンディション)に勝つ必要があります。そうでなければ、PC Manager が再インストールされるまでこのエクスプロイトを実行できます。
任意のファイル/フォルダ削除による LPE を実行するには、ユーザーは次の手順を実行できます:
ユーザーは "C:\Windows\Temp\TencentDownload" フォルダを作成します。
ユーザーは、任意の {} フォルダが作成されるのを確認したら、"C:\Windows\Temp_pcmgr_scan_tmp_{}" フォルダに OpLock を設定します。
プロセス "QQPCRTP.exe" は SYSTEM 権限で "C:\Windows\Temp_pcmgr_scan_tmp_{*}" フォルダを削除しようとします。
プロセス "QQPCRTP.exe" は OpLock により一時停止されます。
OpLock がトリガーされたら、ユーザーは "C:\Windows\Temp_pcmgr_scan_tmp_{*}" ファイルを別の場所に移動してフォルダを空にします。
ユーザーは "C:\Windows\Temp_pcmgr_scan_tmp_{*}" から "\RPC Control" へのジャンクションを作成します。
ユーザーはターゲットのフォルダ/ファイル(例: C:\Windows\System32\secrets)へのシンボリックリンク "GLOBAL\GLOBALROOT\RPC Control{*}" を作成します。
ユーザーは OpLock を解放します。
ユーザーはシンボリックリンクを削除します。
ターゲットのファイル/フォルダ(例: C:\Windows\System32\secrets)が削除されます。
PoC 動画 :https://drive.google.com/file/d/1-8GngjK97cnfqHw0cB_GncUxzLLR2wpF/view?usp=sharing