Estudo dos pesquisadores da BlackBerry Cylance Threat Research alguns dos arquivos WAV continham código associado ao minerador de CPU XMRig Monero. Outros incluíam o código Metasploit, usado para estabelecer um shellcode reverso.

Os pesquisadores da BlackBerry Cylance Threat Research descobriram recentemente um código malicioso ofuscado incorporado aos arquivos de áudio WAV. Cada arquivo WAV foi acoplado a um componente do carregador para decodificar e executar o conteúdo malicioso secretamente nos dados de áudio do arquivo. Quando reproduzidos, alguns dos arquivos WAV produziam músicas que não apresentavam problemas de qualidade ou falhas discerníveis. Outros simplesmente geraram estática (ruído branco).

A análise revelou que alguns dos arquivos WAV continham código associado ao minerador de CPU XMRig Monero. Outros incluíam o código Metasploit, usado para estabelecer um shellcode reverso. Ambas as cargas foram descobertas no mesmo ambiente, sugerindo uma campanha dupla para implantar malware, obter ganhos financeiros e estabelecer acesso remoto na rede da vítima.

Os carregadores de arquivos WAV podem ser agrupados nas três categorias a seguir, que são discutidas em detalhes no texto original do blog da Cylance:

  • carregadores que empregam esteganografia Least Significant Bit (LSB) para decodificar e executar um arquivo PE;
  • carregadores que empregam um algoritmo de decodificação baseado em rand() para decodificar e executar um arquivo PE;
  • carregadores que empregam algoritmo de decodificação baseado em rand() para decodificar e executar um shellcode.

Cada abordagem permite ao invasor executar o código a partir de um formato de arquivo até então considerado benigno. Essas técnicas demonstram que o conteúdo executável pode, teoricamente, estar oculto em qualquer tipo de arquivo, desde que o invasor não corrompa a estrutura e o processamento do formato do contêiner. A adoção dessa estratégia introduz uma camada adicional de ofuscação porque o código subjacente é revelado apenas na memória, tornando a detecção mais desafiadora.

Vale ressaltar que o carregador de esteganografia que descobrimos também é identificado na análise de junho de 2019 da Symantec da atividade do ator de ameaça Waterbug/Turla. Além disso, a Symantec identificou arquivos WAV contendo o código Metasploit criptografado. Essas semelhanças podem apontar para um relacionamento entre os ataques, embora a atribuição definitiva seja desafiadora porque diferentes atores de ameaças podem usar ferramentas semelhantes. Além disso, nossa análise se concentra principalmente nos carregadores, que são um estágio inicial de execução usado para lançar código adicional. Diferentes atores de ameaças podem usar o mesmo carregador disponível publicamente para executar malware de segundo estágio não relacionado.

Carregadores

Carregador de estenografia PE

A primeira categoria de carregadores emprega esteganografia para extrair conteúdo executável de um arquivo WAV. Esteganografia é a prática de ocultar um arquivo ou mensagem em outro arquivo, idealmente sem levantar suspeitas sobre o arquivo de destino. Os invasores já usaram técnicas de esteganografia para ocultar dados no passado. A BlackBerry Cylance Threat Research publicou um relatório em abril que descreve como o grupo de ameaças OceanLotus aproveitou a esteganografia para ocultar cargas maliciosas de backdoor em arquivos de imagem. Nesse caso, o código é oculto no arquivo de áudio usando a técnica LSB (Least Significant Bit), em que o bit mais à direita de um byte individual contém os dados de seu interesse. Um carregador de arquivos WAV publicamente disponível que descobrimos tem as seguintes características:

SHA-256 595A54F0BBF297041CE259461AE8A12F37FB29E5180705EAFB3668B4A491CECC
Tipo de arquivo PE32+ executável (GUI) x86-64, para MS Windows
Tamanho 107.008 bytes
Selo de compilação Terça-feira, 29 de maio de 2018 13:07:05 UTC
Caminho PDB f:\w\xmrig\iskander\x64\release\iskander.pdb
Dados da versão Idioma: inglês (EUA)
Empresa: Microsoft Corporation
Descrição do arquivo: Microsoft MediaPlayer
Versão do arquivo: 12.6.7600.16385
Direitos autorais: Microsoft Corporation. Todos os direitos reservados.Nome original do arquivo: MSTCSS.EXE
Nome do produto: Microsoft Windows Operating System
Versão do produto: 15.3.7600.16385

Observe que a versão de 32 bits desse carregador também está disponível publicamente, embora não seja discutida em detalhes aqui.

Diferentemente de outros carregadores mencionados neste artigo, esse carregador contém cadeias codificadas permanentemente que especificam o nome do arquivo a ser carregado (“Song.wav”) e, uma vez decodificada, a função exportada a ser executada (“Iniciar”). O arquivo Song.wav está disponível publicamente em um arquivo zip:

SHA-256 DB043392816146BBE6E9F3FE669459FEA52A82A77A033C86FD5BC2F4569839C9
Nome do arquivo Song.wav
Tipo do arquivo RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 44100 Hz
Tamanho 15.179.596

Após a execução, o carregador lerá Song.wav (assumindo que esse arquivo esteja no mesmo diretório), extrairá uma DLL na memória e executará a exportação “Iniciar”. O arquivo extraído está associado ao minerador de CPU do XMRig Monero:

SHA-256 A2923D838F2D301A7C4B46AC598A3F9C08358B763B1973B4B4C9A7C6ED8B6395
Tipo de arquivo PE32+ executável (DLL) (console) x86-64, para MS Windows
Tamanho 733,696 bytes
Selo de compilação Segunda-feira, 28 de maio de 2018, 19:45:53 GMT
Caminho PDB n/a
Exportação Start
Dados da versão Idioma: neutroNome da empresa: www[.]xmrig[.]com
Descrição do arquivo: XMRig CPU miner
Versão do arquivo: 2.6.2
Direitos autorais: Copyright (C) 2016-2018 xmrig[.]com
Nome original do arquivo: xmrig.exe
Nome do produto: XMRig
Versão do produto: 2.6.2

Os invasores implantam mineradores de CPU para roubar recursos de processamento e gerar receita com mineração de criptomoeda. Os mineradores de criptomoeda são um payload popular de malware pois fornecem benefícios financeiros e buscam operar em segundo plano sem o conhecimento do usuário. Um botnet eficaz de criptomoeda pode render milhares de dólares por mês para um invasor.

Carregador de PE baseado em rand()

A segunda categoria de carregador usa um algoritmo de decodificação baseado em rand() para ocultar o shellcode. Um exemplo desse carregador está disponível ao público e possui as seguintes características:

SHA-256 843CD23B0D32CB3A36B545B07787AC9DA516D20DB6504F9CDFFA806D725D57F0
Tipo de arquivo PE32+ executable (GUI) x86-64, for MS Windows
Tamanho 156,672 bytes
Selo de compilação Terça-feira, 6 de junho de 2018, 11:09:52 UTC
Caminho PDB d:\source\mining\wavdllplayer\x64\release\wavdllplayer.pdb
Dados da versão Idioma: inglês (EUA)Nome da empresa: Microsoft Corporation
Descrição do arquivo: Host Process for Windows Tasks
Versão do arquivo: 10.0.16299.15
Direitos autorais: Microsoft Corporation. Todos os direitos reservados.
Nome original do arquivo: taskhostw.exe
Nome do produto: Sistema Operacional Microsoft Windows
Versão do produto: 10.0.16299.15

Para carregar um arquivo WAV com esse carregador, a seguinte linha de comando deve ser usada: <EXE do carregador> <Arquivo WAV> <Ponto de entrada do arquivo PE decodificado>.

Um exemplo de arquivo WAV compatível (e publicamente disponível) possui as seguintes características:

SHA-256 7DC620E734465E2F5AAF49B5760DF634F8EC8EEAB29B5154CC6AF2FC2C4E1F7C
Nome do arquivo click.wav
Tipo do arquivo RIFF (little-endian) data, WAV audio, Microsoft PCM, 8 bit, mono 44100 Hz
Tamanho 733,740 bytes

Ao contrário do primeiro arquivo WAV discutido, esse arquivo de áudio possui cabeçalhos legítimos, mas não toca música quando reproduzido – o áudio soa como ruído de estática.

Ao executar o carregador com o arquivo WAV acima, o carregador lerá o arquivo, extrairá uma DLL na memória e tentará executar o ponto de entrada especificado. Semelhante ao primeiro cenário, o arquivo extraído está associado ao minerador de CPU do XMRig Monero:

SHA-256 ED58FDB450D463B0FE3BBC6B9591203F6D51BF7A8DC00F9A03978CECD57822E1
Tipo do arquivo PE32+ executável (DLL) (console) x86-64, para MS Windows
Tamanho 733,696 bytes
Selo de compilação Segunda-feira, 28 de maio de 2018, 19:45:53 GMT
Caminho PDB n/a
Exportação Start
Dados da versão Idioma: neutroNome da empresa: www[.]xmrig[.]com
Descrição do arquivo: XMRig CPU miner
Versão do arquivo: 2.6.2
Direitos autorais: Copyright (C) 2016-2018 xmrig[.]com
Nome original do arquivo: xmrig.exe
Nome do produto: XMRig
Versão do produto: 2.6.2

Na verdade, esse arquivo é quase idêntico à DLL decodificada do Song.wav, com exceção de quatro bytes no final do arquivo (detalhes adicionais estão no texto original do blog da Cylance).

Carregador em shellcode baseado em rand()

A terceira categoria de carregador usa um algoritmo de decodificação baseado em rand() para ocultar arquivos PE. Um exemplo desse carregador está disponível ao público e possui as seguintes características:

SHA-256 DA581A5507923F5B990FE5935A00931D8CD80215BF588ABEC425114025377BB1
Tipo de arquivo PE32+ executável (GUI) x86-64, para MS Windows
Tamanho 90,112 bytes
Selo de compilação Segunda-feira, 18 de junho de 2018, 18:54:48 UTC
Caminho PDB D:\source\mining\wavPayloadPlayer\x64\Release\wavPayloadPlayer.pdb
Dados da versão Idioma: inglês (EUA)
Nome da empresa: Microsoft Corporation
Descrição do arquivo: Host Process for Windows Tasks
Versão do arquivo: 10.0.16299.15 (WinBuild.160101.0800)Direitos autorais: Microsoft Corporation. Todos os direitos reservados.
Nome original do arquivo: taskhostw.exe
Nome do produto: Sistema Operacional Microsoft Windows

Versão do produto: 10.0.16299.15

Para carregar um arquivo WAV com esse carregador, a seguinte linha de comando deve ser usada (nenhum ponto de entrada é necessário): <Loader EXE> <Arquivo WAV>.

Semelhante ao carregador anterior, todos os arquivos de áudio emparelhados com esse carregador apenas continham ruído estático sem conteúdo musical. Após a execução, esse carregador abre um arquivo WAV compatível, lê seus dados, decodifica seu conteúdo e tenta executar o shellcode.

Embora nenhuma amostra pública de arquivos WAV compatíveis esteja disponível, os dois arquivos descobertos continham o código Metasploit, que inicia um shellcode reverso para um endereço IP especificado.

Conclusão

Os invasores são criativos em sua abordagem para executar código, incluindo o uso de vários arquivos de diferentes formatos. Descobrimos vários carregadores que extraem e executam código malicioso de arquivos de áudio WAV. A análise revelou que os autores do malware usaram uma combinação de esteganografia e outras técnicas de codificação para desobstruir e executar o código. Essas estratégias permitiram que os invasores ocultassem seu conteúdo executável, tornando a detecção uma tarefa desafiadora. Nesse caso, os invasores empregavam ofuscação para realizar atividades de criptografia e estabelecer uma conexão reversa para comando e controle. As semelhanças entre esses métodos e os TTPs de agentes de ameaças conhecidos podem indicar uma associação ou vontade de imitar a atividade adversária, talvez para evitar a atribuição direta.

Anuj Soni é um pesquisador sênior da equipe de inteligência de ameaças da Blackberry Cylance, onde realiza pesquisas de malware e engenharia reversa. Também traz suas habilidades de resolução de problemas para sua posição como instrutor certificado SANS, o que lhe dá a oportunidade de transmitir seu profundo conhecimento técnico e habilidades práticas aos alunos. Ele fez bacharelado e mestrado na Carnegie Mellon University e possui certificação no GIAC Reverse Engineering Malware (GREM), é examinador certificado pelo EnCase (EnCE) e profissional certificado de segurança de sistemas de informação (CISSP).

Jordan Barth é diretor da prática de serviços de segurança cibernética da KPMG, com mais de 10 anos de experiência ajudando clientes a protegerem ativos críticos contra ameaças cibernéticas, melhorando a capacidade das empresas de detectarem possíveis comprometimentos e ajudando-as a responderem e se recuperarem de violações cibernéticas. Os clientes anteriores de Jordan incluem empresas internacionais de serviços financeiros, organizações de serviços de hospitalidade e agências civis e de defesa.

Brian Marks é  especialista em serviços de atendimento cibernético da KPMG em Chicago. Ele é perito em fornecer resposta a incidentes e serviços forenses digitais para os clientes. Participa regularmente de várias conferências de segurança da informação e apresentou-se no SANS DFIR Summit, no Derbycon e no NOLAcon.

Fonte: Security Report