
PoC para CVE-2022-41120/CVE-2022-44704: exclusão/gravação arbitrária de arquivos no Sysmon via ClipboardChange RPC levando à escalada de privilégios local no Windows.
Prova de conceito para exclusão/gravação arbitrária de arquivos no Sysmon (CVE-2022-41120/CVE-2022-44704)
A vulnerabilidade está no código responsável pelo evento ClipboardChange, que pode ser acessado via RPC. Usuários locais podem enviar dados ao servidor RPC, que serão gravados no diretório C:\Sysmon (ArchiveDirectory padrão) e excluídos em seguida. Na versão anterior à 14.11, o Sysmon não verificava se o diretório foi criado por um usuário de baixo privilégio ou se é um junction, o que pode ser abusado para realizar exclusão/gravação arbitrária de arquivos (um tanto limitada, pois só é possível gravar strings) no contexto do usuário NT AUTHORITY\SYSTEM. Na versão 14.11/14.12, após a correção inicial, o Sysmon passou a verificar se o diretório existe e a recusar a gravação/exclusão de arquivos se o diretório existir. Essa correção foi contornada permitindo que o Sysmon criasse primeiro o diretório C:\Sysmon (usando a API CreateDirectory) e abrindo um handle sobre ele antes que SetFileSecurity seja chamado, alterando assim as DACLs no diretório C:\Sysmon.
Todos os testes foram feitos no Windows 10.
No meu PoC, encadeei a exclusão/gravação arbitrária de arquivos para primeiro excluir o arquivo de informações de instalação do driver de impressora e depois gravar um arquivo .INF modificado (já que o serviço de spooler é habilitado por padrão e usuários de baixo privilégio podem reinstalar drivers de impressora em clientes Windows). Arquivos de informações de instalação podem ser abusados para realizar todos os tipos de operações, como criação de serviços, modificação do registro, cópia de arquivos etc. Optei por copiar algumas DLLs padrão da impressora para c:\windows\system32 e definir permissões sobre elas para que usuários de baixo privilégio possam modificá-las; isso é feito usando a diretiva CopyFiles (https://learn.microsoft.com/en-us/windows-hardware/drivers/install/inf-copyfiles-directive). Depois que o arquivo é copiado, ele é sobrescrito com uma DLL que abrirá um processo cmd.exe elevado. É possível abusar apenas da exclusão arbitrária de arquivos para LPE explorando o comportamento do instalador do Windows (truque encontrado por @KLINIX5 e documentado pela ZDI aqui https://www.zerodayinitiative.com/blog/2022/3/16/abusing-arbitrary-file-deletes-to-escalate-privilege-and-other-great-tricks).
Todos os testes foram feitos nas versões 13.34-14.12. Não sei exatamente qual é a versão mais antiga vulnerável, mas acredito que as versões 12.0 - 14.12 sejam vulneráveis, pois o evento ClipboardChange foi introduzido na versão 12.0. Para explorar essa vulnerabilidade, os eventos que usam ArchiveDirectory não devem estar habilitados (acredito que ClipboardChange e FileDelete), pois se esses dois forem usados, o ArchiveDirectory será criado com permissões seguras.
Se você estiver usando uma versão vulnerável e não puder atualizar, pode criar o ArchiveDirectory (C:\Sysmon por padrão) e definir permissões que permitam acesso apenas à conta NT AUTHORITY\SYSTEM.