Aprenda a Ganhar Dinheiro do seu Jeito na Internet!

Descoberta a vulnerabilidade do Symantec Endpoint Protection: SafeBreach

Estás a ler: Descoberta a vulnerabilidade do Symantec Endpoint Protection: SafeBreach

O SafeBreach Labs descobriu uma nova vulnerabilidade no software Symantec Endpoint Protection.

Nesta postagem, demonstraremos como essa vulnerabilidade poderia ter sido usada para ignorar o mecanismo de autodefesa da Symantec e alcançar evasão de defesa, persistência e escalação de privilégios carregando um DLL não assinada arbitrária em um processo assinado pela Symantec e executado como NT AUTHORITYSYSTEM.

Nota: Para explorar esta vulnerabilidade, o invasor precisa ter privilégios de administrador.

Symantec Endpoint Protection

O Symantec Endpoint Protection é um conjunto de softwares de segurança que consiste em anti-malware, prevenção de intrusões e recursos de firewall para servidores e computadores de mesa. Foi desenvolvido pela Symantec e possui a maior participação de mercado de qualquer produto para segurança de terminais.

Várias partes do software são executadas como um serviço do Windows executado como “NT AUTHORITYSYSTEM”, que fornece permissões muito poderosas.

Nesta postagem, descrevemos a vulnerabilidade encontrada no software Symantec Endpoint Protection. Em seguida, demonstramos como essa vulnerabilidade pode ser explorada para obter execução arbitrária de código no contexto de um serviço da Symantec, obtendo acesso com privilégios no nível NT AUTHORITYSYSTEM.

Vulnerabilidade

Descoberta

Em nossa exploração, encontramos um serviço (SepMasterService) do Symantec Endpoint Protection que está sendo executado como processo assinado e como NT AUTHORITYSYSTEM, que está tentando carregar a seguinte DLL que não existe:

c: WindowsSysWOW64wbemDSPARSE.dll

Symantec Endpoint Protection

Se pudermos provar que podemos realmente ser carregados nesse processo, seremos capazes de contornar o mecanismo de autodefesa do software antivírus, principalmente porque as pastas do software Symantec Endpoint Protection são protegidas por um driver de mini-filtro de sistema de arquivos, que restringe as operações de gravação mesmo por um administrador.

Isso significa que, mesmo se estivermos executando como administrador e desejarmos implantar uma DLL que não existe para carregá-la nos processos da Symantec, não conseguiremos fazer isso.

Demonstração de PoC

Para testar esta vulnerabilidade, compilamos uma DLL de Proxy de 32 bits (não assinada) do arquivo DLL dsparse.dll original (que está realmente localizado no SysWow64 e não na pasta SysWow64Wbem), que grava o seguinte no nome do arquivo de um arquivo txt:

  1. O nome do processo que o carregou
  2. O nome de usuário que o executou
  3. O nome do arquivo DLL

Em seguida, o implantamos em C: WindowsSysWow64Wbem e reiniciamos o computador:

Symantec Endpoint Protection

Conseguimos carregar uma DLL Proxy arbitrária (que carregou outra DLL arbitrária) e executar nosso código no processo de um serviço assinado pela Symantec Corporation como NT AUTHORITYSYSTEM, resultando em um desvio do mecanismo de autodefesa do programa.

Análise de causa raiz

Existem vários componentes em vários arquivos que causam esse problema; analisaremos um deles porque a causa raiz é sempre muito semelhante.

Depois que o processo do serviço “Symantec Endpoint Protection” (ccSvcHst.exe) é iniciado, ele tenta executar uma consulta WMI usando uma função da interface COM IWbemServices COM (IWbemServices :: ExecNotificationQueryAsync):

Symantec Endpoint Protection

Uma breve olhada no OleViewDotNet nos mostrará que essa interface COM (e suas funções) é implementada usando a biblioteca “C: WindowsSysWow64wbemfastprox.dll” da DLL de proxy COM (no nosso caso, é um processo WOW64):

Symantec Endpoint Protection

SEP

Depois que a função ExecNotificationQueryAsync da biblioteca fastprox.dll for chamada, a função DsCrackSpnW será chamada:

SEP

Podemos ver que essa função é importada do dsparse.dll, o que faz com que o serviço tente carregar esta DLL.

SEP

Existem duas causas principais para esta vulnerabilidade:

  • Nenhuma validação de assinatura digital é feito contra o binário. O programa não valida se a DLL que está carregando está assinada (por exemplo, usando o WinVerifyTrust função). Portanto, ele pode carregar uma DLL não assinada arbitrária.
  • A biblioteca fastprox.dll está tentando importar o arquivo dsparse.dllrom é o diretório de trabalho atual (CWD), que é C: WindowsSysWow64Wbem, enquanto o arquivo está realmente localizado na pasta SysWow64.

Potenciais usos maliciosos e impacto

Abaixo, mostramos três maneiras possíveis de um invasor aproveitar a vulnerabilidade que descobrimos e documentamos acima.

Evasão de defesa, execução assinada, desvio da lista de permissões

A vulnerabilidade oferece aos atacantes a capacidade de carregue e execute cargas maliciosas no contexto do processo assinado pela Symantec. Essa capacidade pode ser abusada por um invasor para diferentes finalidades, como execução e evasão, por exemplo: Ignorar a lista de permissões do aplicativo. O Antivírus pode não detectar o binário do invasor, porque tenta carregá-lo sem nenhuma verificação.

Mecanismo de persistência

A vulnerabilidade permite que os atacantes carreguem e executem cargas maliciosas de maneira persistente, sempre que os serviços estiverem sendo carregados. Isso significa que, uma vez que o invasor descarte uma DLL maliciosa, os serviços carregarão o código malicioso toda vez que for reiniciado.

Escalonamento de privilégios

Os serviços fornecem a ele a capacidade de operar como NT AUTHORITYSYSTEM.

Versões afetadas

Todas as versões anteriores ao Symantec Endpoint Protection 14.2 RU2

Linha do tempo

5 de agosto de 2019 – Vulnerabilidade relatada à Symantec

6 de agosto de 2019 – Symantec confirmou a vulnerabilidade

22 de agosto de 2019 – A Symantec forneceu um cronograma para uma correção.

16 de setembro de 2019 – A Symantec informou que fará o acompanhamento em meados de outubro com o cronograma finalizado e também atribuirá um CVE.

15 de outubro de 2019 – Atualização de status da Symantec

19 de outubro, 2019 – A Symantec forneceu um prazo final (um comunicado será publicado em 11 de novembro).

21 de outubro de 2019 – A Symantec forneceu produtos e versões afetados.

31 de outubro de 2019 – Symantec emitida CVE-2019-12758

~~~~~~~~📱~~~~~~~~

PCtg.net é o lugar perfeito para encontrar as últimas notícias e análises sobre gadgets e aplicativos de tecnologia, bem como dicas e truques sobre como tirar o máximo proveito de sua tecnologia.