
CVE-2022-25943
https://jvn.jp/en/vu/JVNVU90673830/
WPS Office è una suite per ufficio per Microsoft Windows, macOS, Linux, iOS, Android e HarmonyOS sviluppata dallo sviluppatore di software cinese Kingsoft, con sede a Zhuhai.
Una delle funzionalità più interessanti offerte da WPS è un servizio cloud per salvare documenti, lavori, ecc... Questo servizio, per impostazione predefinita, è configurato su manuale; viene avviato solo se si accede al cloud WPS dal pannello di WPS Office, ma il servizio viene avviato con i privilegi dell'utente corrente (bassi privilegi).
Osservando le importazioni iniziali del servizio cloud WPS una volta avviato, sembra che tenti prima di importare una DLL chiamata CRYPTSP.DLL e altre da *C:\ProgramData\kingsoft\office6*; se non sono presenti (e per impostazione predefinita non lo sono), il servizio caricherà il file da System32, come si può vedere:

Il problema è che l'ACL per quella directory è configurata come lettura/scrittura per tutti gli utenti. Un attaccante può inserire una DLL dannosa in quella posizione e riavviare l'eseguibile, ma questo viene avviato con il livello di privilegio corrente (utente a bassi privilegi), a meno che non si avvii l'eseguibile come servizio (dato che è installato come tale) con qualcosa come net start wpscloudsvr, che avvierà il servizio come NT AUTHORITY .
Il problema sembra essere più che altro una misconfigurazione degli ACL .
Il mio exploit è semplice: copia la DLL modificata (cambia la password dell'amministratore) nella directory di destinazione e riavvia il servizio; ora l'accesso all'account amministratore è disponibile, il che significa che ho accesso a sedebugpriv; da lì rubo il token di winlogon e avvio cmd come NT AUTHORITY / System .