
Prova de conceito de exploração para uma vulnerabilidade de escalada de privilégio local no driver Datacard XPS Card Printer através de permissões de arquivo inseguras e sequestro de DLL, permitindo execução de código em nível de SYSTEM.
Produto Testado: Datacard XPS Card Printer Driver Versão: <= 8.4
Descrição: O aplicativo é propenso a uma vulnerabilidade de Escalação de Privilégio Local (LPE) devido a permissões inseguras de arquivo/pasta em sua instalação padrão, pela qual concede a todos os direitos de controle total sobre o caminho: C:\ProgramData\Datacard\XPS Card Printer\Service. Arquivos e pastas no caminho "C:\ProgramData\Datacard" podem ser modificados por usuários sem privilégios, processos maliciosos e/ou agentes de ameaças. Uma vez que um administrador instala o XPS Card Printer, que é executado no contexto SYSTEM, ele invocará DEVOBJ.dll ou CFGMGR32.dll no diretório "C:\ProgramData\Datacard\XPS Card Printer\Service", onde um usuário com poucos privilégios já pode colocar uma DLL maliciosa previamente e que não será verificada e excluída pela instalação. Essas DLLs não existem e, portanto, serão retornadas como NÃO ENCONTRADAS pelo instalador do aplicativo. Se um usuário malicioso colocar uma DLL chamada DEVOBJ.dll ou CFGMGR32.dll dentro deste diretório, o instalador executará inadvertidamente essas DLLs maliciosas quando o serviço tentar conectar-se à impressora de cartões, executando-as com privilégios SYSTEM.
POC do Exploit:
1- Com um usuário de baixo privilégio, crie o diretório "C:\ProgramData\Datacard\XPS Card Printer\Service" e coloque uma DLL desejada e renomeie-a para DEVOBJ.dll ou CFGMGR32.dll
2- Com um Administrador, proceda com a instalação do driver normalmente.
3- O payload da DLL será executado como SYSTEM.