
CVE-2022-25943
https://jvn.jp/en/vu/JVNVU90673830/
WPS Office は、珠海に本拠を置く中国のソフトウェア開発会社キングソフトが開発した、Microsoft Windows、macOS、Linux、iOS、Android、HarmonyOS向けのオフィススイートです。
WPSが提供する最も優れた機能の1つは、ドキュメントや作業内容などを保存できるクラウドサービスです。このサービスはデフォルトで手動に設定されており、WPS OfficeパネルのWPSクラウドに移動した場合にのみ起動しますが、サービスは現在のユーザー権限(低特権)で起動します。
起動時にWPSクラウドサービスが行う初期インポートを調べると、まず *C:\ProgramData\kingsoft\office6* から CRYPTSP.DLL というDLLとその他のDLLをインポートしようとすることがわかります。それらがそこに存在しない場合(デフォルトでは存在しません)、サービスは以下のようにSystem32からロードします:

ここでの問題は、そのディレクトリのACLが全ユーザーに対して読み取り/書き込みとして構成されていることです。攻撃者は悪意のあるDLLをそこに仕掛けて実行可能ファイルを再起動できますが、実行可能ファイルは現在の権限レベル(低特権ユーザー)で起動します。ただし、サービスとしてインストールされているため、net start wpscloudsvr のようなコマンドで実行可能ファイルをサービスとして起動すれば、サービスは NT AUTHORITY として起動します。
この問題は、どちらかというと ACLの誤設定 であるように思われます。
私のエクスプロイトは単純で、細工されたDLL(管理者パスワードの変更)をターゲットディレクトリにコピーしてサービスを再起動します。これで管理者アカウントへのアクセスが可能になります。つまり、そこからsedebugprivにアクセスでき、winlogonトークンを奪取して NT AUTHORITY / System としてcmdを起動できます。