
Nalpeiron Licensing Service (NLSSRV32) leitura arbitrária de disco [CVE-2019-19315]
O Nalpeiron Licensing Service (NLSSRV32.exe) é instalado como parte de determinadas instalações de software para lidar com operações privilegiadas de licenciamento de software. Ele é acompanhado de um componente cliente (filechck.dll) que se comunica com o serviço via mailslots (daí o nome).
As chamadas são realizadas ao serviço usando serialização personalizada e muitas envolvem acesso direto aos volumes de disco conectados à máquina. Acredito que sejam usadas para verificação de integridade do próprio serviço e dos binários do cliente. Muitos desses tipos de chamada não são restritos aos administradores e, portanto, podem ser usados para ler (e potencialmente escrever) dados brutos de unidades locais.
Não sei o quão comum esse serviço é. O exemplo mais notável é o Nitro PDF <= v10. A Nalperion desde então migrou para um modelo de licenciamento baseado em nuvem e não parece mais recomendar esse modelo.
Implementei apenas uma chamada de leitura básica para a prova de conceito. No entanto, existem mais códigos de controle que expõem mais funcionalidades. Ela funciona contra a unidade primária quando o serviço está em execução e lê um setor em incrementos de setor (512). Se houver motivação, ler o disco inteiro e recriar as informações do volume NTFS deve ser totalmente possível. Um exercício para o leitor, suponho.
PS C:\> MailOrder.exe c 4096
[+] Requesting sector from c: at offset 4096 ...
[+] Drive data [hex]:
45 46 49 20 50 41 52 54 00 00 01 00 5C 00 00 00 0D 24 5C 77 00 00 00 00 01 00 00 00 00 00 00 00
AF 6D 70 74 00 00 00 00 22 00 00 00 00 00 00 00 8E 6D 70 74 00 00 00 00 96 2F 01 83 CE 70 E7 41
...
Os dois indicadores mais fortes de explorabilidade são:
PS C:\> Get-Service nlsX86cc
Status Name DisplayName
------ ---- -----------
Running nlsX86cc Nalpeiron Licensing Service
\\.\mailslot\nlsX86ccMailslotAlém de desinstalar o serviço e/ou o software para o qual é usado, não sei de nenhuma mitigação. A base da explorabilidade é uma ACL fraca no mailslot, mas acredito que ela seja necessária para que o lado do cliente se comunique corretamente.
Tentei contatar o fornecedor em várias ocasiões sem obter resposta. Se alguém da Nalpeiron quiser ajudar com detalhes/correção, entre em contato comigo.
CVE-2019-19315 para esta vulnerabilidade