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
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
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”
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
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
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.
Domínios
goudieelétrico[.]loja
simonandschuster[.]loja
arquivos
88c97af92688d03601e4687b290d4d7f9f29492612e29f714f26a9278c6eda5b
815c1571356cf328a18e0b1f3779d52e5ba11e5e4aac2d216b79bb387963c2be
9649d58a220ed2b4474a37d6eac5f055e696769f87baf58b1d3d0b5da69cbce5
af8104e567c6d614547acb36322ad2ed6469537cd1d78ae1be65fbde1d578abc
de1bceb00c23e468f4f49a79ec69ec8ad3ed622a3ffc08f84c0481ad0f6f592b
6f4642a203541426d504608eed7927718207f29be2922a4c9aa7e022f22e0deb
d90f6e12a917ba42f7604362fafc4e74ed3ce3ffca41ed5d3456de28b2d144bf
d9b16f077cd6e00137ba208031d22fd6423d0ef303883ad4b6f78638693f2044
Uma cidade na Carolina do Norte e um escritório de advogados distritais cobrindo quatro condados…
O surgimento da Nytheon AI marca uma escalada significativa no cenário das plataformas (LLM) de…
Um pesquisador de segurança revelou uma vulnerabilidade crítica de injeção de SOQL no controlador interno…
Falha permite que invasores manipulem o agente de um usuário por meio de um problema…
Um exploit de dia zero, dirigido aos firewalls FortiGate da Fortinet, foi descoberto à venda…
A família SHELBY mostra um exemplo preocupante de malware moderno com design modular, sofisticado e…