DLL Hijacking no Trend Micro Password Manager (CVE-2020–8469)

Tempest Security
Jun 23 · 4 min read

Por Silton Santos

O time de consultoria da Tempest detectou uma vulnerabilidade no Trend Micro Password Manager. Ela viabiliza uma escalação de privilégio que concede NT AUTHORITY\SYSTEM (usuário que possui total privilégio local) a quem a explorar através de uma DLL Hijacking.

Na sequência, apresentaremos, resumidamente, alguns conceitos básicos sobre o assunto, bem como a demonstração dessa vulnerabilidade.

DLL (Dynamic Link Library)

Segundo a documentação da Microsoft, um Dynamic Link Library é um módulo binário que possui um conjunto de funções e dados que podem ser utilizados por outros módulos binários — ou seja, um conjunto de funções e dados que podem ser utilizados por outra DLL ou por um executável.

Uma característica das funções de DLLs, é que as mesmas, ao serem importadas, não herdam as permissões definidas nas ACLs (Access Control List) dos arquivos carregados. Entretanto, elas, geralmente, herdam as permissões do processo que as importou.

A importação de uma DLL pode ser realizada através das funções LoadLibrary() e LoadLibraryEx(). Caso não seja fornecido o caminho absoluto do arquivo, o Windows irá utilizar, por padrão, o recurso natural da ordem de procura de DLL, a fim de encontrar o módulo não carregado. Essa ordem de procura é realizada nos seguintes diretórios, consecutivamente:

  1. O diretório a partir do qual a aplicação foi carregada;
  2. O diretório do sistema;
  3. O diretório do sistema de 16 bits;
  4. O diretório do Windows;
  5. O diretório de trabalho atual (CWD);
  6. Os diretórios que aparecem listados na variável de ambiente PATH.

Todavia, existem diversas formas de modificar a ordem de busca de uma DLL. A documentação da Microsoft, Load Library Safely, pode ser consultada para maiores detalhes sobre o tópico.

O fato é que, se o carregamento de uma DLL for implementado de forma insegura, um atacante poderá se aproveitar da ordem de busca, para realizar um ataque conhecido como DLL Hijacking. Para isso, basta que o atacante insira uma DLL maliciosa com o mesmo nome da solicitada, em um diretório anterior na ordem de busca.

Trend Micro Password Manager

O Trend Micro Password Manager é um software que pode ser instalado junto com o Trend Micro Maximum Security.

Durante uma análise nas operações realizadas durante a inicialização do sistema operacional, foi possível detectar que o serviço Trend Micro Password Manager Central Control Service, através do seu processo principal PwmSvc.exe, é responsável por criar um novo processo denominado certutil.exe, que tem por finalidade manipular os certificados do navegador Firefox. A imagem seguinte ilustra a criação deste processo:

Image for post
Image for post

Logo após essa criação, certutil.exe herda as permissões de usuário privilegiado e tenta carregar diversas DLLs, dentre elas, a nssckbi.dll localizada dentro da pasta do perfil do navegador Firefox:

Image for post
Image for post

O problema de segurança dessa importação realizada pelo processo certutil.exe concentra-se justamente nas permissões excessivas do diretório, tendo em vista que ele se encontra dentro da pasta de perfil do usuário em uso (C:\Users\usertest). Para testar se o processo iria realmente importar uma DLL no diretório indicado, mesmo ela não sendo assinada, uma DLL foi projetada a fim de escrever o autor da ação — nome do usuário — em um arquivo de texto. Como pode ser visto na imagem abaixo, a DLL possui alto privilégio na máquina:

Image for post
Image for post

Assim, pode-se concluir a existência de duas vulnerabilidades através das ações descritas acima:
1) A DLL estava sendo importada de um local indevido;
2) A verificação de assinatura não estava sendo realizada.

Ao ser contactada, a Trend Micro alegou que a vulnerabilidade em questão estava presente no módulo NSS tools do navegador Firefox. Já a Firefox, por sua vez, respondeu-nos que não recomendava o uso comercial de seu navegador; afirmando tratar-se de uma ferramenta de teste. Entretanto, depois de uma análise mais apurada, a Trend Micro não apenas aceitou a vulnerabilidade, corrigindo-a, como gerou uma nota de agradecimento e uma atribuição para CVE. Além disso, mais recentemente, a empresa lançou outra nota, onde informa a alteração na atribuição da severidade do Common Vulnerability Scoring System — CVSS. A vulnerabilidade em questão havia sido considerada por eles como de severidade média; mas, terminou sendo reconhecida como de alta severidade.

SideChannel-BR

Notícias e análises sobre segurança da informação…

Tempest Security

Written by

Empresa líder no mercado brasileiro de segurança da informação e combate a fraudes digitais, atuando desde o ano 2000.

SideChannel-BR

Notícias e análises sobre segurança da informação produzidas pela equipe e por amigos da Tempest Security Intelligence

Tempest Security

Written by

Empresa líder no mercado brasileiro de segurança da informação e combate a fraudes digitais, atuando desde o ano 2000.

SideChannel-BR

Notícias e análises sobre segurança da informação produzidas pela equipe e por amigos da Tempest Security Intelligence

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store