Categories: AMEAÇAS ATUAIS

Ameaça desencadeada: arquivo Excel implanta CobaltStrike na Ucrânia

Por Cara Lin | 03 de junho de 2024

Plataformas afetadas: Microsoft Windows
Usuários afetados: Microsoft Windows
Impacto:  As máquinas comprometidas estão sob o controle do agente da ameaça
Nível de gravidade:  Alto

O FortiGuard Labs identificou recentemente um ataque cibernético sofisticado envolvendo um arquivo Excel incorporado a uma macro VBA projetada para implantar um arquivo DLL. O invasor usa uma estratégia de malware em vários estágios para entregar a notória carga útil “Cobalt Strike” e estabelecer comunicação com um servidor de comando e controle (C2). Este ataque emprega várias técnicas de evasão para garantir a entrega bem-sucedida da carga útil.

Nos últimos anos, a Ucrânia tem sido um alvo significativo devido à sua situação geopolítica. A história destes ataques revela um padrão de complexidade e frequência crescentes, especialmente durante períodos de tensão geopolítica. Por exemplo, em 2022, o FortiGuard Labs relatou uma campanha usando um documento Excel malicioso com o tema militar ucraniano para entregar um carregador Cobalt Strike de vários estágios. Em 2023, a Equipe de Resposta a Emergências Informáticas da Ucrânia (CERT-UA) revelou que o UAC-0057 estava envolvido em um ataque usando um arquivo XLS malicioso contendo uma macro e uma imagem de isca para implantar o PicassoLoader e o Cobalt Strike Beacon em sistemas comprometidos.

Neste artigo, exploraremos os detalhes técnicos deste último ataque em vários estágios.

Figura 1: Fluxo de ataque

Documento Excel

O documento malicioso do Excel contém elementos em ucraniano projetados para induzir o usuário a ativar suas macros.

Figura 2: Documento Excel antes de ativar o VBA

Uma vez activada a macro VBA, o documento muda para folhas relacionadas com o cálculo do “montante de fundos orçamentais atribuídos às unidades militares” (traduzido de “montante de fundos orçamentais atribuídos a unidades militares”).

Figura 3: Documento Excel após habilitar o VBA

A principal função da macro VBA é implantar um downloader de DLL, que é codificado em HEX. Além disso, a maioria das strings no código VBA são codificadas em HEX para evitar mecanismos básicos de detecção de strings.

Figura 4: A função “workbook_open()”

Depois de colocar o arquivo DLL “Ac83faafb23919Ae9.DLl” em “%APPDATA%\VIBErpc\bIn\biN”, a macro cria um atalho chamado “ACtIVePRObE” em “%APPDATA%\Microsoft”. Em seguida, ele usa o comando “Shell” para executar “RunDLL32.EXE shell32.dll,ShellExec_RunDLL ‘%APPDATA%\Microsoft\ACtIVePRObE.lnk’, 0.” Este arquivo LNK foi projetado para chamar regsvr32 para executar o arquivo DLL “Ac83faafb23919Ae9.DLl”.

Figura 5: Criando o arquivo LNK

Figura 6: O arquivo LNK

Baixador de DLLs

O downloader “Ac83faafb23919Ae9.DLl.” é ofuscado com ConfuserEx.

Figura 7: Downloader de DLL “Ac83faafb23919Ae9.DLl”

Primeiro, ele examina nomes de processos para strings específicas: “processhacker”, “avastui”, “aswtoolssvc”, “wsc_proxy”, “procexp”, “overseer” e “avastsvc”. Se detectar um processo correspondente associado a uma ferramenta de análise ou software antivírus, ele encerra o programa.

Figura 8: Verificando os nomes dos processos

Depois de passar na verificação do processo, ele constrói uma solicitação da web para obter a carga útil do próximo estágio da URL “hxxps://goudieelectric[.]shop/cms/svg/6364.2809640e[.]chunk.svg”. Ele só poderá baixar o arquivo necessário se o dispositivo estiver localizado na Ucrânia. Em seguida, ele extrai os dados codificados em base64 na seção que começa com “href=” e faz XOR com a matriz codificada. Em seguida, ele gera um nome de arquivo aleatório e salva os dados decodificados na pasta TEMP. 

Figura 9: Construindo uma solicitação web

Figura 10: O arquivo SVG com verificação de geolocalização malsucedida

Figura 11: O arquivo SVG com verificação de geolocalização bem-sucedida

Em seguida, ele executa o arquivo decodificado usando “rundll32.exe”, seguido por um comando sleep para aguardar o término da execução. Depois de concluído, ele exclui o arquivo decodificado para remover quaisquer vestígios.

Figura 12: Execute os dados decodificados

Os dados decodificados também são um arquivo .NET DLL encarregado de descriptografar o arquivo para o próximo estágio e estabelecer persistência.

Figura 13: O arquivo decodificado é empacotado com ConfuserEx

Em seguida, verifica se o arquivo de destino existe. Caso contrário, ele cria o arquivo “C:\ProgramData\Windows\Containers\BaseImages\9cb03978-56d9-4f38-8f05-d1fdf135f0ab\Files\Windows\System32\ResetEngine.dll.” Em seguida, ele usa a chave codificada para descriptografar os dados usando um algoritmo RC4 e grava os dados no arquivo recém-criado. 

Figura 14: Gravar conteúdo descriptografado por RC4 em arquivo recém-criado

Em seguida, ele adiciona o valor de registro “C:\Windows\System32\regsvr32.exe /s C:\ProgramData\Windows\Containers\BaseImages\9cb03978-56d9-4f38-8f05-d1fdf135f0ab\Files\Windows\System32\ResetEngine.dll” em “SOFTWARE\Microsoft\Widows\CurrentVersion\Run” para persistência e usa InvokeMethod com “Create” para executar o comando no registro.

Figura 15: Adicionar registro

Figura 16: Execute o “ResetEngine.dll”

Injetor DLL

O arquivo “ResetEngine.dll” serve como componente principal para descriptografar e injetar a carga final. Ele usa “NtDelayExecution” para evitar a detecção de atividades maliciosas em sandboxes. Em seguida, ele itera para inspecionar processos e tenta encerrar o processo pai, se houver, a fim de implementar suas medidas antidepuração.

Figura 17: Atraso na execução e antidepuração

Após a conclusão do processo de detecção de evasão, ele descriptografa a carga final com um algoritmo AES.

Figura 18: Descriptografar dados

Após a descriptografia, ele injeta os dados descriptografados em si mesmo e emprega várias APIs, incluindo “GetCurrentProcessId”, “OpenProcess”, “VirtualAllocEx”, “WriteProcessMemory”, “CreateRemoteThread” e “WaitForSingleObject” para executar o Cobalt Strike final.

Figura 19: Escrevendo Cobalt Strike na memória

A carga útil do Cobalt Strike

O processo de extração de configuração envolve XOR com 0x2E, permitindo-nos decifrar as informações ocultas nele. Ao extrair e analisar a configuração, revelamos os URLs do Beacon’s Cobalt Strike Team Server (C2): “hxxps://simonandschuster[.]shop/the-zero-residual-concept/products” e “hxxps://simonandschuster[.] ]shop/o-conceito-zero-residual/sjj-solutions.” 

Figura 20: Configuração decodificada

Figura 21: Solicitação POST do Cobalt Strike

Conclusão

Neste ataque sofisticado, o agressor emprega táticas de malware em vários estágios para impedir a detecção e, ao mesmo tempo, garantir a estabilidade operacional. Ao implementar verificações baseadas em localização durante downloads de carga útil, o invasor visa mascarar atividades suspeitas, evitando potencialmente o escrutínio dos analistas. Aproveitando strings codificadas, o VBA oculta strings de importação cruciais, facilitando a implantação de arquivos DLL para persistência e descriptografia de cargas subsequentes. Além disso, o recurso de autoexclusão auxilia nas táticas de evasão, enquanto o injetor de DLL emprega táticas de atraso e encerra processos pai para evitar mecanismos de sandbox e antidepuração, respectivamente.

Estas manobras orquestradas convergem para a implantação do Cobalt Strike em pontos finais específicos, particularmente dentro dos limites do cenário geopolítico da Ucrânia. Como os documentos do Office oferecem inúmeras funcionalidades, incluindo vários plug-ins e scripts, os usuários devem ter o máximo cuidado ao manusear arquivos provenientes de origens duvidosas. A vigilância é fundamental, especialmente em relação a qualquer queda de arquivo suspeito ou programas de inicialização desconhecidos nas configurações do registro.

COIs

Domínios

goudieelétrico[.]loja

simonandschuster[.]loja

arquivos

88c97af92688d03601e4687b290d4d7f9f29492612e29f714f26a9278c6eda5b  

815c1571356cf328a18e0b1f3779d52e5ba11e5e4aac2d216b79bb387963c2be  

9649d58a220ed2b4474a37d6eac5f055e696769f87baf58b1d3d0b5da69cbce5  

af8104e567c6d614547acb36322ad2ed6469537cd1d78ae1be65fbde1d578abc 

de1bceb00c23e468f4f49a79ec69ec8ad3ed622a3ffc08f84c0481ad0f6f592b  

6f4642a203541426d504608eed7927718207f29be2922a4c9aa7e022f22e0deb 

d90f6e12a917ba42f7604362fafc4e74ed3ce3ffca41ed5d3456de28b2d144bf  

d9b16f077cd6e00137ba208031d22fd6423d0ef303883ad4b6f78638693f2044  

Ninja

Na cena de cybersecurity a mais de 25 anos, Ninja trabalha como evangelizador de segurança da informação no Brasil. Preocupado com a conscientização de segurança cibernética, a ideia inicial é conseguir expor um pouco para o publico Brasileiro do que acontece no mundo.

Recent Posts

Meta confirma invasao de 20 mil contas do Instagram via abuso de ferramenta de suporte com IA

Meta notificou autoridades de que cerca de 20.225 contas do Instagram podem ter sido sequestradas…

11 horas ago

Microsoft lanca maior Patch Tuesday da historia com 206 CVEs; falha wormable no Windows e bug ativo no Defender preocupam defensores

Microsoft fechou junho de 2026 com o maior Patch Tuesday da historia: 206 CVEs, incluindo…

11 horas ago

CISA inclui no KEV vulnerabilidade do LiteLLM sob exploração ativa (CVE-2026-42271) — gateway de IA vira RCE

CISA adiciona CVE-2026-42271 ao KEV: bug no LiteLLM da BerryAI vira RCE não autenticada quando…

2 dias ago

Qilin no NHS: conta de vítimas do ataque à Synnovis cresce dois anos depois com mais um trust afetado

Mid and South Essex confirma 2.380 registros comprometidos, somando-se aos 33 mil do Bedfordshire —…

2 dias ago

WinRAR sob fogo russo: CVE-2025-8088 segue ativa contra a Ucrânia quase um ano após o patch

Trend Micro confirma que Gamaredon (Earth Dahu) e SHADOW-EARTH-066 ainda exploram a CVE-2025-8088 no WinRAR…

2 dias ago