Um malware de um novo grupo chamado PowerPool tem explorado uma vulnerabilidade zero-day ativa – a exploração começou dois dias após a divulgação da vulnerabilidade. A ameaça afeta os sistemas operacionais Microsoft Windows, desde o Windows 7 ao Windows 10, em particular a função ALPC, e permite que o usuário local obtenha o nível de privilégio SYSTEM.

Em 27 de agosto de 2018, uma vulnerabilidade zero-day que afeta o Microsoft Windows foi publicada no GitHub e divulgada pelo Twitter.

Fonte: Twitter

Obviamente, isso não fazia parte da divulgação de uma vulnerabilidade de uma maneira coordenada e, no momento em que foi publicada através de um tweet (que foi removido), não havia um patch disponível para reparar a vulnerabilidade.

A vulnerabilidade afeta os sistemas operacionais Microsoft Windows, desde Windows 7 a Windows 10, particularmente a função Advanced Local Procedure Call (ALPC) e permite que o usuário local obtenha nível de privilégio SYSTEM, fazendo com que seja possível que um executável ou processo dimensione privilégios. Neste caso específico, permite que um executável liberado por um usuário com restrições possa obter privilégios administrativos.

O tweet foi vinculado a um repositório do Github que continha o código prova-de-conceito para exploração da vulnerabilidade. Não foi apenas a publicação de uma versão compilada, mas também o código fonte. Portanto, qualquer um poderia modificar e recompilar o exploit, sendo capaz de "melhorar", evitar detecções e até mesmo incorporá-lo em seu próprio código.

Como já era esperado, foi necessário apenas dois dias para descobrir que alguém o havia usado. E esse alguém era um grupo que chamamos de PowerPool, que aproveitou a exploração como parte de uma campanha maliciosa. De acordo com informações da nossa telemetria e dos uploads em VirusTotal (só consideramos uploads manuais a partir da interface web), podemos ver que esse grupo tem um pequeno número de vítimas em países como Chile, Alemanha, Índia, Filipinas, Polônia, Rússia, Reino Unido, Estados Unidos e Ucrânia.

Arsenal de Power Tool

Esse grupo novo e isolado já possui uma ampla gama de ferramentas à sua disposição. Vamos analisar brevemente alguns deles.

Exploração de escalonamento de privilégios locais

Os desenvolvedores do PowerTool não reutilizaram o binário que revelou quem publicou a vulnerabilidade. O que eles fizeram foi modificar o código-fonte e, em seguida, o recompilá-lo.

A exploração tem sido documentada pelo autor original e foi coberta tanto por pesquisadores de segurança e como pela Equipe de Computer Emergency Response.

Figura 1 - Descrição da exploit por seu autor

A falha está na função SchRpcSetSecurity do API, que não suporta permissões de usuário corretamente. Como resultado, um usuário pode ter permissões de gravação em qualquer arquivo do C:\Windows\Task independentemente de quais sejam suas permissões atuais. Isso faz com que um usuário que tenha permissões de leitura possa substituir o conteúdo de arquivo protegido de gravação.

Como qualquer usuário pode escrever em C:\Windows\Task, é possível criar um arquivo nesta pasta que seja um hard link para qualquer arquivo de destino. Portanto, chamando a função SchRpcSetSecurity afetada é possível ganhar acesso de gravação para o arquivo de destino. Para criar um escalonamento de privilégios local, o invasor precisa escolher o arquivo de destino que será substituído. Isso precisa ser feito com cuidado: deve ser um arquivo que é executado automaticamente com permissões administrativas. Por exemplo, pode ser um arquivo de sistema ou um programa atualizador previamente instalado que é executado regularmente por uma tarefa. O passo final é substituir o conteúdo desse arquivo de destino protegido com o código malicioso. Portanto, na próxima execução automática, o malware terá permissões administrativas independentemente das permissões anteriores do arquivo legítimo.

Os desenvolvedores do PowerPools escolheram modificar o conteúdo do arquivo C:\Program Files(x86)\Google\Update\GoogleUpdate.exe. Este é o atualizador legítimo para os aplicativos do Google e é regularmente executado com privilégios de administrador para uma tarefa do Microsoft Windows.

FFigura 2 - Criando um hard link para o atualizador do Google

Figura 3 – Uso do SchRpcCreateFolder para modificar as permissões do arquivo executável que atualiza os aplicativos do Google

A sequência das operações mostradas nas figura anterior a acessibilidade dos operadores do PowerPool para obter acesso de gravação ao executável GoogleUpdate.exe. Em seguida, o  sobrescrevem com uma cópia do malware da segunda fase, descrita abaixo, a fim de obter privilégios administrativos na próxima vez que o atualizador é chamado.

Comprometimento inicial

O grupo PowerPool usa métodos diferentes para comprometer a vítima na primeira instância. Um método é o envio de e-mails que contêm malwares anexos a partir da primeira fase. Pode ser muito cedo para dizer, mas até agora temos visto poucas aparições em nossa telemetria, então assumimos que os destinatários são escolhidos com bastante cuidado.

Por outro lado, sabemos que seus spams foram vistos em outras ocasiões. De acordo com um post lançado maio de 2018 pela SANS, eles usaram um truque com arquivos SYmbolic LinK (.slk) para distribuir o malware. A Microsoft Excel pode enviar esses arquivos que atualizam uma célula e forçar o Excel para executar código PowerShell. Esses arquivos .slk parecem ter sido distribuídos em mensagens de spam. Através do primeiro arquivo listado no blog do SANS blog (SHA-1: b2dc703d3af1d015f4d53b6dbbeb624f5ade5553), no VirusTotal é possível encontrar amostras do spam relacionado (SHA-1: e0882e234cba94b5cf3df2c05949e2e228bedd2b):

Figura 4 - Mensagem de spam do PowerPool

Backdoor do Windows

O grupo PowerPool usa principalmente dois backdoors diferentes: um backdoor de primeira fase usado logo após o primeiro comprometimento e, em seguida, um backdoor de segunda fase que eles provavelmente usam nas máquinas mais interessantes.

Backdoor da primeira fase

O backdoor da primeira fase é um malware básico que compromete dois executáveis ​​do Windows e é usado para reconhecimento na máquina.

O primeiro deles é o backdoor principal, que estabelecer persistência por meio do serviço. Ele também cria nomes mutex MyDemonMutex%d em que varia %d de 0 a 10. Ele é capaz de coletar informações do proxy e o endereço do servidor C&C é codificado neste binário. É possível executar comandos e realizar certo reconhecimento básico da máquina, que é filtrada para o servidor C&C.

Figura 5 - Coleta de informações do proxy

O segundo desses executáveis ​​tem um único propósito: realizar um screenshot da tela da vítima e escrever em MyScreen.jpg. Este arquivo pode então ser filtrado pelo backdoor principal.

Backdoor da segunda fase

Esse malware é baixado na primeira fase - presumivelmente, quando os operadores consideram que a máquina é interessante o suficiente para eles permanecerem nela por mais tempo.

Novamente, o endereço do servidor C&C é chamado no binário e não há mecanismos para atualizar esse elemento de configuração. Esse backdoor procura comandos de http://[C&C domain]/cmdpool e faz o download de arquivos adicionais de http://[C&C domain]/upload. Esses arquivos adicionais são principalmente as ferramentas de movimento lateral mencionadas abaixo.

Os comandos suportados são:

  • Executar um comando
  • Excluir um processo
  • Carregar um arquivo
  • Realizar o download de um arquivo
  • Listar uma pasta

Eles são enviados no formato JSON. Os exemplos abaixo são instruções para executar um comando e listar uma pasta:

Figura 6 - Exemplo de comandos do backdoor

Ferramentas de movimento lateral

Uma vez que os operadores do PowerPool tenham acesso persistente a uma máquina com o backdoor da segunda fase, eles usam várias ferramentas de código aberto, a maioria gravadas no PowerShell, para mover-se lateralmente na rede.

  • PowerDump: um módulo Metasploit que pode recuperar nomes de usuário e hashes do gerenciador de contas de segurança (SAM).
  • PowerSploit: um framework pós-exploração no PowerShell no Metasploit.
  • SMBExec: uma ferramenta do PowerShell para realizar conexões SMB pass-the-hash.
  • Quarks PwDump: um executável do Windows que pode recuperar as credenciais do Windows.
  • FireMaster: um executável do Windows que pode recuperar senhas armazenadas do Outlook, navegadores web, etc.

Conclusão

A divulgação de vulnerabilidades fora de um processo coordenado de divulgação coloca muitos usuários em risco. Nesse caso, mesmo as versões mais atualizadas do Windows podem ser comprometidas porque não há nenhum patch disponível no momento em que a exploração e a vulnerabilidade foram publicadas. O CERT-CC fornece algumas atenuações, mas a Microsoft ainda não as aprovou oficialmente.

Essas campanhas específicas têm como alvo um número limitado de usuários, mas não se deixe enganar por isso: isso mostra que os cibercriminosos também estão cientes das novidades e estão trabalhando para usar exploits assim que estiverem disponíveis publicamente.

Os pesquisadores da ESET continuarão rastreando qualquer uso malicioso dessas novas vulnerabilidades. Os indicadores de comprometimento também podem ser encontrados no Github. Para qualquer dúvida ou para enviar uma amostra relacionada ao assunto, entre em contato conosco através do seguinte endereço de email: threatintel@eset.com.

Indicadores de comprometimento

Hashes

SHA-1 Type Detection name
038f75dcf1e5277565c68d57fa1f4f7b3005f3f3 First stage backdoor Win32/Agent.SZS
247b542af23ad9c63697428c7b77348681aadc9a First stage backdoor Win32/Agent.TCH
0423672fe9201c325e33f296595fb70dcd81bcd9 Second stage backdoor Win32/Agent.TIA
b4ec4837d07ff64e34947296e73732171d1c1586 Second stage backdoor Win32/Agent.TIA
9dc173d4d4f74765b5fc1e1c9a2d188d5387beea ALPC LPE exploit Win64/Exploit.Agent.H

Detection names
Win32/Agent.SZS
Win32/Agent.TCH
Win32/Agent.TEL
Win32/Agent.THT
Win32/Agent.TDK
Win32/Agent.TIA
Win32/Agent.TID

C&C servers
newsrental[.]net
rosbusiness[.]eu
afishaonline[.]eu
sports-collectors[.]com
27.102.106[.]149