
Exploit de prova de conceito para CVE-2019-6440 alcançando escalonamento de privilégios SYSTEM no antimalware Zemana via interceptação de atualização man-in-the-middle e clonagem de assinatura digital.
Produtos testados:
Zemana antimalware v.2.74.2.150 & Zemana antilogger v.2.74.204.150.
Corrigido desde a v.2.74.2.664
Sobre a vulnerabilidade:
Esta vulnerabilidade permitia que atacantes obtivessem privilégios de SYSTEM em máquinas alvo sem interação do usuário.
Requisitos:
1. O atacante deve ser capaz de interceptar e alterar o conteúdo da requisição POST para a URL "POST /api/client/settings/"
2. Nenhum acesso físico ao PC alvo é necessário.
Detalhes:
Os produtos testados usam HTTP simples para receber atualizações, então o atacante pode facilmente alterar a versão e a URL apropriada para valores arbitrários.
Vamos alterar a URL de atualização para o nosso shell simples (Fig.0 & apêndice.1).

Fig.0
O antivírus diz que a assinatura digital da atualização não pode ser verificada. Mas ele permite que o usuário execute-a MESMO ASSIM (fig.1). Se o usuário tiver direitos de usuário, então ele pode obter direitos de SYSTEM (Fig.2).

Fig.1. Você quer executar algum arquivo desconhecido com direitos de SYSTEM?

Fig.2. Direitos de sistema.
Mas este alerta pode ser contornado.
Para fazer isso, precisamos de uma cópia da assinatura digital do ZAM.exe. Vamos cloná-la (diretório Security).
Agora temos nosso shell com clone da assinatura digital do Zemana e ele não pode ser verificado pelo SO. (Fig 3).

Fig.3. Assinatura incorreta.
Agora vamos olhar para a função "ZmnAppUpdater".
Vemos que o resultado do SignatureChecker é IGNORADO. (Fig.4)

Fig.4. Verificação perdida.
EAX = 0x80096010 (TRUST_E_BAD_DIGEST).

Fig.5. Demonstração em gif.