Hoje vamos falar sobre a última crise do PrintNightmare com relação aos usuários do Windows e dar algumas recomendações para proteger o seu PC. É uma vulnerabilidade crítica localizada na fila de impressão do Windows. A Agência de Segurança Cibernética e de Infraestrutura dos Estados Unidos (CISA) divulgou um comunicado a respeito e, desde então, todo mundo está falando sobre outra coisa. Hoje estamos discutindo essa questão de A a Z.
PrintNightmare: Como tudo começou?
No início de junho, no dia 8, a Microsoft publicou o CVE-2021-1675, intitulado “Vulnerabilidade de execução remota de código do Windows Print Spooler”. Naquela época, parecia ser uma ameaça menor que havia sido identificada antes de ser explorada e poderia ser facilmente corrigida. Portanto, não havia motivo para se preocupar.
Então, as principais agências de segurança do mundo começaram a emitir declarações alertando sobre uma grande atualização do CVE-2021-1675. Essas mensagens exortavam os usuários e as organizações a adotar medidas imediatas para se proteger dessa ameaça. No mesmo período, a Microsoft publicou a vulnerabilidade CVE-2021-34527, que é apelidada de PrintNightmare.
A Microsoft atribuiu CVE-2021-34527 à vulnerabilidade de execução remota de código que afeta o Spooler de Impressão do Windows. Obtenha mais informações aqui: https://t.co/OarPvNCX7O
– Microsoft Security Intelligence (@MsftSecIntel) 2 de julho de 2021
Ao contrário do CVE-2021-1675, que recebeu a classificação de alto risco, o PrintNightmare ganhou, desde o início, a classificação de vulnerabilidade crítica, pois permite a execução remota de código. Desde então, ocorreram várias atualizações e a Microsoft tem trabalhado incessantemente neste problema. Entretanto, e enquanto aguardamos uma solução definitiva, também pudemos encontrar várias recomendações para mitigar os riscos.
O que é PrintNightmare?
O problema reside em uma função da fila de impressão do Windows, especificamente em RpAddPrinterDriverEx () que, como o próprio nome sugere, permite a instalação de uma nova impressora no sistema. Embora o gerenciador de impressão não restrinja o acesso a ele, qualquer usuário autenticado pode usá-lo remotamente.
Então, qual é o problema de um usuário poder instalar remotamente uma impressora e o que torna o PrintNightmare tão perigoso? Quando falamos sobre a instalação de uma impressora, estamos nos referindo ao seu driver. Se alguém puder instalar um driver sem autoridade, ele pode conter muitos elementos maliciosos. Assim, um invasor que obtém acesso a um sistema e usa RpAddPrinterDriverEx () para executar código malicioso pode escalar privilégios, enviar cargas úteis para o sistema comprometido e até mesmo assumir o controle total de um PC.
O gerenciador de impressão é um componente presente em todas as versões do Windows, portanto a Microsoft indica que qualquer instalação de seu sistema operacional é suscetível a ataques usando o PrintNightmare. Portanto, seja qual for a sua versão do Windows, em princípio seu sistema está exposto ao PrintNightmare e, portanto, você deve tomar medidas para se proteger.
Como se proteger do PrintNightmare?
Já existe um patch da Microsoft para corrigir o PrintNightmare, mas a verdade é que não é eficaz.
Mas antes de entrarmos nisso, devemos lembrar o que mencionamos no início e distinguir entre CVE-2021-1675 e CVE-2021-34527. Para o primeiro, a Microsoft já lançou correções que atenuam os riscos específicos desta vulnerabilidade. No entanto, esses patches não resolvem o problema associado ao CVE-2021-34527.
Por outro lado, ainda ontem a Microsoft lançou patches para PrintNightmare para diferentes versões do Windows, incluindo alguns que oficialmente não são mais suportados:
- KB5004945: Windows 10 20H1, 20H2 e 21H.
- KB5004946: Windows 10 versão 1909
- KB5004947: Windows 10 versão 1809 e Windows Server 2019
- KB5004949: Windows 10 versão 1803
- KB5004950: Windows 10 versão 1507
- KB5004951: Windows 7 SP1 e Windows Server 2008 R2 SP1
- KB5004958: Windows 8.1 e Windows Server 2012
- KB5004959: Windows Server 2008 SP2
As más notícias começaram a chegar após esses lançamentos, alguns usuários afirmam que o patch oficial está incompleto e não tem efeito.
0Patch lançou um patch não oficial que se mostrou eficaz contra PrintNightmare, mas a aplicação do patch oficial da Microsoft atenua o efeito daquele desenvolvido por 0patch, então o sistema está novamente vulnerável a um ataque baseado neste problema de segurança:
Se você estiver usando 0patch contra PrintNightmare, NÃO aplique o Windows Update de 6 de julho! Não apenas não corrige o vetor de ataque local, mas também não corrige o vetor remoto. No entanto, ele altera o localspl.dll, o que faz com que nossos patches que corrigem o problema parem de ser aplicados. https://t.co/osoaxDVCoB
– 0patch (@ 0patch) 7 de julho de 2021
A Microsoft afirmou que está trabalhando no problema mas, por enquanto, a recomendação é não permitir a atualização automática do Windows se o patch do 0patch estiver sendo usado, uma vez que a proteção oferecida pelo patch já é suficiente. Outra possibilidade é desabilitar os serviços de impressão desnecessários em cada sistema. Por exemplo, os servidores, a menos que sejam servidores de impressão, devem ter esses serviços desativados por motivos de segurança. E quanto aos terminais, exatamente o mesmo, reduza ao mínimo os serviços ativos relacionados à impressão, principalmente se estamos falando de sistemas dos quais você nunca imprime.
Para verificar o status atual do serviço de fila de impressão, teremos que abrir um console do PowerShell e digitar Get-Service -Name Spooler na linha de comando. Como resultado, obteremos o status atual dele. Caso o serviço seja mostrado desligado ou desabilitado não devemos nos preocupar, pois a porta do PrintNightmare permanece fechada naquele sistema. Caso o serviço esteja ativo, existem duas possibilidades, desde que não se trate de servidor de impressão, caso em que essas medidas não poderão ser aplicadas, pois o serviço deixará de funcionar.
O primeiro é sem dúvida o mais drástico e só podemos usá-lo se nunca imprimirmos a partir desse sistema. No mesmo console Powershell que usamos para verificar o status do serviço, teremos que digitar os seguintes comandos:
Stop-Service -Name Spooler -Force
Set-Service -Name Spooler -StartupType Desabilitado
O primeiro interromperá imediatamente o serviço de impressão do Windows, enquanto o segundo modificará sua configuração para que não seja carregado novamente após a reinicialização do sistema. Quando a Microsoft lança um patch que corrige o PrintNightmare para sempre, você pode reativá-lo com este comando;
Set-Service -Name Spooler -StartupType ativado
Desta forma, após reiniciar o sistema, você poderá imprimir normalmente a partir desse sistema novamente.
O segundo método é desabilitar apenas a função de servidor de impressão do sistema. Dessa forma, você ainda poderá imprimir do sistema, mas ele não terá mais a função de servidor de impressão para outros computadores e dispositivos na rede. Para fazer isso, você precisa acessar o Editor de Política de Grupo Local e navegar até Política do Computador Local> Configuração do Computador> Modelos Administrativos> Impressoras e procurar a entrada Permitir que o Gerenciador de Trabalho de Impressão aceite conexões de cliente.
Em seguida, clique duas vezes nele e verifique seu status, que deve ser Desativado para evitar os riscos do PrintNightmare. Portanto, se estiver definido como Não configurado ou Habilitado, altere este valor e reinicie o sistema.
E se você já instalou o patch da Microsoft para PrintNightmare?
É possível que, ao ler isto, você já tenha instalado o patch oficial da Microsoft. O problema é que isso não resolve o problema do PrintNightmare. Nesse caso, você terá que fazer uma alteração nas configurações de registro do Windows. A maneira mais rápida de fazer isso é abrir um console (Prompt de Comando) e digitar o seguinte comando:
“HKEY_LOCAL_MACHINE Software Policies Microsoft Windows NT Printers PointAndPrint” / v RestrictDriverInstallationToAdministrators / t REG_DWORD / d 1 / f
Digite exatamente como mostrado, você pode copiar e colar. Lembre-se de que, embora seja dividido por causa de seu comprimento, é um único comando.
Em princípio, essas medidas já deveriam fornecer o nível de segurança necessário, embora seja verdade que ainda teremos que esperar que a Microsoft publique uma solução definitiva.