blank

blank

O FortiGuard Labs observou um número crescente de campanhas direcionadas a ambos os lados do conflito russo-ucraniano em andamento. Estes podem ser um elemento cibernético para o conflito ou simplesmente atores de ameaças oportunistas que se aproveitam da guerra para promover seus objetivos maliciosos.

Recentemente, encontramos um documento malicioso do Excel disfarçado de ferramenta para calcular os salários dos militares ucranianos. Este artigo discute os detalhes técnicos deste documento que, quando acionado, executa carregadores evasivos de vários estágios, levando eventualmente ao carregamento do malware Cobalt Strike Beacon no dispositivo da vítima (Figura 1).

blank
Figura 1: Visão geral da cadeia de infecção

Vetor de Ataque Inicial – Excel com Macro

O ataque começa com um arquivo Excel carregado com código de macro malicioso (XLSM). O arquivo se disfarça como uma ferramenta de planilha para gerar salários para militares ucranianos (Figura 2). Como de costume, o documento tenta enganar o usuário para permitir a execução de macros para supostamente preencher automaticamente o conteúdo da célula. A macro é referenciada como sumpropua, uma abreviação de Suma Propisom UA – uma transliteração latina do ucraniano “сума прописом UA”. Este é um termo antigo para documentos financeiros em que o valor total pago deve ser escrito em palavras. Converter um valor monetário em palavras não é uma tarefa trivial do Excel, e usar macros para esse fim é comum.

blank
Figura 2: Uma visualização do arquivo XLSM malicioso

Análise VBA

A primeira coisa a notar ao abrir o código VBA é o grande pedaço de espaço em branco que precede o início do código real, fazendo com que pareça vazio à primeira vista. Rolar para baixo revela a função maliciosa SUMMPROPIS2 (Figura 3) , que é executada automaticamente quando o arquivo é aberto por meio da função Workbook_Open() . Além disso, o documento tenta executar essa função referenciando-a a partir de várias células (mostradas na barra de fórmulas da Figura 2), que também são acionadas quando o arquivo é aberto. Isso resulta na execução do malware várias vezes após a abertura.

blank
Figura 3: Uma chamada de função maliciosa (seta vermelha) oculta no código para converter valores monetários em palavras

O código VBA emprega técnicas simples de ofuscação, incluindo funções ilegíveis e nomes de variáveis ​​para desacelerar a análise estática. Além disso, dados importantes são codificados como strings hexadecimais, incluindo o binário malicioso incorporado.

A principal função maliciosa OpenModule executa as seguintes funções:

  1. Decodifica o binário malicioso de uma string hexadecimal e o salva em %AppData%\Microsoft\fhasbqwn.dll
  2. Cria um arquivo de atalho do Windows (.LNK) com o nome %Temp%\jdbsabdqbsmnqwdssad.lnk. O objetivo do arquivo .LNK é executar a função exportada DllUnregisterServer da DLL maliciosa, que é comumente usada para cancelar o registro de DLLs do sistema. No entanto, este caso leva à execução das funções maliciosas da DLL (Figura 4).
blank
Figura 4: O arquivo de atalho leva à execução da DLL maliciosa

3. Execute o atalho via

RunDLL32.EXE shell32.dll,ShellExec_RunDLL %Temp%\jdbsabdqbsmnqwdssad.lnk, que é semelhante a clicar duas vezes manualmente em um atalho do Windows (destacado em amarelo na Figura 5). Isso leva à execução do carregador do primeiro estágio.

blank
Figura 5: Função VBA parcialmente desofuscada para criar e executar o atalho

Erro de codificação causando múltiplas execuções

Como mencionado anteriormente, a carga incorporada no arquivo do Excel foi executada várias vezes. Os agentes de ameaças geralmente não implantam a mesma carga várias vezes, pois isso pode causar ruído desnecessário no sistema. Como resultado, cavamos mais fundo para entender o porquê.

Uma análise mais detalhada do trecho de código da função OpenModule (Figura 6) na linha 5280 mostra que a função Dir é chamada com o primeiro argumento contendo o caminho completo para a pasta IEHistory. O uso da função Dir aqui verifica se uma pasta existe exatamente como o atributo especificado no segundo argumento. A verificação de um arquivo ou diretório que o malware criou durante sua infecção geralmente é usada para evitar a reinfecção ou várias execuções. Esta parece ser a intenção provável dos desenvolvedores de malware.

blank
Figura 6: Código bugado na função OpenModule

No entanto, como o segundo argumento aqui é uma variável não inicializada, é equivalente a Dir(PathName, vbNormal ). Isso retorna uma string não vazia apenas se o IEHistory existir como um arquivo em vez de um diretório, o que causa várias execuções de toda a rotina de malware. Se vbDirectory tivesse sido usado em vez disso, criar o diretório IEHistory após a verificação impediria a execução repetida da rotina em verificações subsequentes.

Downloader do primeiro estágio

O carregador de primeiro estágio é executado com o seguinte comando shell, C:\Windows\System32\regsvr32.exe /u /s “\%AppData%\Microsoft\fhasbqwn.dll”. A opção /s permite a execução silenciosa para que nenhum Windows A caixa de mensagem aparece após a execução do código A opção /u leva à execução do DllUnregisterServer de exportação da DLL (Figura 7).

blank
Figura 7: Funções exportadas para o downloader do primeiro estágio

Para dificultar a análise, essa DLL é protegida pelo ConfuserEx, um protetor de código aberto usado especificamente para binários .NET (Figura 8).

blank
Figura 8: DnSpy mostrando funções ofuscadas da DLL

Em seguida, ele se move para %Temp%\kbdlisus.dll e executa a segunda função exportada, DllCanUnloadNow , executando o comando shell “ C:\Windows\System32\rundll32.exe %Temp%\kbdlisus.dll,DllCanUnloadNow”. A função exportada DllCanUnloadNow baixa um arquivo de imagem JPEG aparentemente inofensivo de hxxps://ellechina[.]online/01_logo_HLW-300×168[.]jpg, conforme mostrado abaixo (Figura 9), usando um conjunto específico de cabeçalhos HTTP.

blank
Figura 9: JPG baixado no visualizador de imagens

No entanto, após uma inspeção mais detalhada, encontramos dados binários extras (conhecidos como sobreposição de arquivo) imediatamente após o trailer JPEG que denota o final da imagem (consulte a Figura 10) no deslocamento 0x16D23. Essa sobreposição contém o carregador de segundo estágio criptografado e compactado.

blank
Figura 10: Trecho de sobreposição (verde) após o trailer da imagem JPEG (vermelho) contendo o carregador do segundo estágio

Esse malware descriptografa a sobreposição usando AES (Advanced Encryption Standard) no modo CBC com uma chave codificada e um vetor de inicialização (IV). Os dados resultantes são então descomprimidos usando o algoritmo DEFLATE. O resultado é outro binário .NET (exe) com o nome interno sdafsfdpieowrfb.exe, também protegido por ConfuserEx.

Este executável é então carregado como um novo módulo usando Assembly.Load() e executado diretamente na memória usando Assembly.EntryPoint.Invoke() com um argumento de array de string contendo “1ffawf” e “afgawkgo”.

Carregador de segundo estágio

Esta amostra contém uma lista de nomes e saídas na lista negra se algum desses processos estiver em execução. Os processos verificados são processos relacionados ao Avast Antivirus e ferramentas de análise de malware comumente usadas, como Process Explorer e Process Hacker. Ele extrai de si mesmo uma DLL de carregador de terceiro estágio criptografada por AES e compactada por DEFLATE e a coloca em um dos diretórios existentes em %AppData%. O carregador nomeia a DLL após um subdiretório escolhido aleatoriamente em %AppData%, por exemplo, Adobe.dll, Microsoft.dll.

Em seguida, ele cria uma tarefa agendada com o nome “Scheduled” e a descrição “NTFS Volume Health Scan” e “Microsoft Corporation” como o autor para se passar por uma tarefa legítima.

Essa tarefa executa a DLL descartada por meio do comando C:\Windows\System32\rundll32.exe %AppData\[RANDOM_DIRECTORY]\[RANDOM_NAME],UiaPatternReleas e quando o usuário atual efetua login no Windows para manter a persistência.

Em vez do uso típico de schtasks.exe para criar essa tarefa agendada, o malware usa a função ITaskFolder::RegisterTaskDefinition COM do Agendador de Tarefas. Essa pode ser uma maneira de ocultar a criação de tarefas de produtos de segurança, como EDRs, que podem detectar o uso suspeito de schtasks.exe com base nos argumentos da linha de comando.

A Figura 11 mostra a configuração da tarefa agendada. Observe que a configuração Tarefa oculta oculta a tarefa no Agendador de tarefas, a menos que Mostrar tarefas ocultas esteja ativado no menu Exibir.

blank
Figura 11: Configuração de tarefa agendada

O malware executa a tarefa recém-criada para iniciar o carregador de terceiro estágio. A execução da DLL de terceiro estágio indiretamente por meio de uma tarefa agendada em vez de por meio do carregador de segundo estágio torna mais difícil reconstruir a cadeia de ataque, pois não é imediatamente aparente qual processo iniciou o carregador de terceiro estágio.

Injetor de processo e carregador de ataque de cobalto

Ao contrário dos dois carregadores anteriores, essa DLL é escrita em C/C++ e é um carregador de vários estágios para o Cobalt Strike Beacon, uma ferramenta popular para os adversários manterem uma posição antes de implantar outro malware no sistema da vítima.

Em seguida, ele extrai e descriptografa outro carregador criptografado por AES e inicia uma instância suspensa de SearchIndexer.exe (um executável legítimo para o recurso Windows Search). Em seguida, ele injeta e executa o carregador por meio de injeção de thread remoto.

Dentro do SearchIndexer.exe, o carregador continua a extrair e executar estágios adicionais puramente na memória antes de executar a carga útil final do Cobalt Strike Beacon.

Ao extrair e analisar a configuração do despejo de memória, encontramos as URLs do Cobalt Strike Team Server (C2) do Beacon:

 hxxps://pedaily[.]link/daashbooard/managgemment/oknz05PqOlqLtMGB/tzJGhpVp e hxxps://pedaily[.]link/daashbooard/managgemment/GCLwJmax/KFKcpjlf.

Conclusão

Esta campanha de malware mostra como os agentes de ameaças continuam a aproveitar os eventos atuais para induzir os usuários a reduzir suas configurações de segurança para implantar e executar malware em seus sistemas. Ao usar carregadores de vários estágios, juntamente com várias técnicas comuns de ofuscação e evasão, esse ataque também tenta dificultar a detecção e complicar a análise.

É importante observar que o FortiGuard Labs coletou arquivos JPG com diferentes cargas criptografadas na sobreposição durante nossa investigação. Isso pode significar que o agente da ameaça pode implantar cargas específicas para vítimas em potencial. Nesse caso, ele implanta um Cobalt Strike Beacon projetado para manter um ponto de apoio no sistema da vítima. Isso dá aos agentes de ameaças a flexibilidade de implantar qualquer malware de sua escolha.

O FortiGuard Labs estará monitorando os desenvolvimentos desta campanha.

Proteções Fortinet

O FortiGuard Labs fornece a seguinte cobertura AV contra os arquivos neste ataque:

  • VBA/Agent.CSW!tr
  • MSIL/Agente.FGLT!tr.dldr
  • MSIL/Agente.FGLT!tr
  • W32/Cobalt.FGLT!tr
  • Data/Agent.FGLT!tr

O serviço FortiGuard AntiVirus é suportado pelo FortiGateFortiMailFortiClient e FortiEDR. O mecanismo Fortinet AntiVirus faz parte de cada uma dessas soluções. Como resultado, os clientes que possuem esses produtos com proteções atualizadas estão protegidos.

O documento malicioso do Excel pode ser desarmado usando o serviço FortiGuard Content Disarm and Reconstruction (CDR).

O cliente WebFiltering bloqueia todos os IOCs de rede conhecidos neste ataque.

O FortiGuard Labs fornece assinatura IPS Backdoor.Cobalt.Strike.Beacon contra Cobalt Strike.

O FortiGuard IP Reputation & Anti-Botnet Security Service  bloqueia proativamente esses ataques agregando dados IP de origem maliciosa da rede distribuída Fortinet de sensores de ameaças, CERTs, MITRE, concorrentes cooperativos e outras fontes globais que colaboram para fornecer inteligência de ameaças atualizada sobre fontes hostis.

Devido à facilidade de interrupção, danos às operações diárias, impacto potencial na reputação de uma organização e destruição ou liberação indesejada de PII, etc., é importante manter todas as assinaturas AV e IPS atualizadas.

Sugerimos também que as organizações façam com que seus usuários finais passem por nosso treinamento NSE gratuito: NSE 1 – Conscientização sobre Segurança da Informação. Ele inclui um módulo sobre ameaças da Internet projetado para ajudar os usuários finais a aprender como identificar e se proteger de vários tipos de ataques de phishing.

IOC

arquivos

4cedec3e1a2f72a917ad9a59ebe116ed50c3268567946d1e493c8163486b888b (XLSM)

c0c455cd3e18be14d2e34cf4e3fb98e7ab0a75ef04b6049ff9f7b306d62704b8 (1st stage downloader – fhasbqwn.dll)

2927794d7c550c07303199752b8226f197d7ef497d04cf038859f95b60edc9ce (JPEG com sobreposição de carga útil criptografada)

b03c9f7823810e3eeef3c0b1d6c00da4f16fdc2ced92f97f78e5676d0989d9b3 (carregador de 2º estágio – sdafsfdpieowrfb.exe)

de8c789ef2e1da81182a7529e7b42adf2984cd6e70b02e60fd770ebe658086ae (carregador Cobalt Strike)

Nomes de arquivo

%Temp%\jdbsabdqbsmnqwdssad.lnk
%AppData%\Microsoft\fhasbqwn.dll
%Temp%\kbdlisus.dll

Rede

hxxps://ellechina[.]online/01_logo_HLW-300×168[.]jpg
hxxps://pedaily[.]link/daashbooard/managgemment/GCLwJmax/KFKcpjlf
hxxps://pedaily[.]link/daashbooard/managgemment/oknz05PqOlqLtMGB/ tzJGhpVp

 

Fonte: FortNet


Descubra mais sobre DCiber

Assine para receber os posts mais recentes por e-mail.