Campanha de Phishing Implanta Variante PureLogs Baseada em JavaScript para Roubar Dados Sensíveis
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Uma campanha de phishing está usando um anexo JavaScript malicioso para descriptografar e executar um script PowerShell. Esse script então realiza hollowing de processo para injetar um downloader .NET no confiável MsBuild.exe processo. O downloader se conecta a um servidor de comando e controle para recuperar um plugin PureLogs que rouba credenciais, dados de navegador, informações de carteiras de criptomoeda e outros ativos sensíveis. A cadeia de ataque é altamente evasiva e depende de criptografia em camadas junto com técnicas de execução sem arquivos para reduzir a detecção.
Investigação
Os laboratórios FortiGuard examinaram o anexo de email, o JavaScript ofuscado, o script PowerShell solto e os componentes .NET em memória usados posteriormente no ataque. Durante a análise, os pesquisadores observaram a criação de um MsBuild.exe processo hollowed, carregamento de um DLL downloader e execução de um plugin PureLogs que coletou dados de navegadores, Discord, carteiras de cripto e outras aplicações. O tráfego de rede capturado mostrou comunicações GET e POST criptografadas com um único servidor de comando e controle.
Mitigação
O relatório recomenda a aplicação de filtros de email rigorosos, limitar a execução de scripts sempre que possível, e monitorar atividades suspeitas de PowerShell e hollowing de processos envolvendo MsBuild.exe. Também aconselha o uso de ferramentas de detecção e resposta em endpoint que possam identificar assemblies .NET em memória e comportamentos de rede de saída incomuns associados à entrega de malware em etapas.
Resposta
Se essa atividade for detectada, isole o endpoint afetado, termine o MsBuild.exe processo malicioso e bloqueie o endereço IP de comando e controle. Os investigadores devem então realizar análise forense para determinar se credenciais ou dados sensíveis foram roubados e redefinir contas expostas conforme necessário. O conteúdo de detecção também deve ser atualizado para cobrir o abuso de PowerShell, hollowing de processo e comportamento relacionado ao PureLogs.
Fluxo de Ataque
Ainda estamos atualizando esta parte.
Detecções
A Possibilidade de Execução Através de Linhas de Comando PowerShell Ocultas (via cmdline)
Proof of Value
PowerShell Executando Arquivo em Diretório Suspeito Utilizando Política de Execução de Bypass (via cmdline)
Proof of Value
LOLBAS WScript / CScript (via process_creation)
Proof of Value
IOCs (HashSha256) para detectar: FortiGuard Labs Pesquisa de Ameaças Campanha de Phishing Implementa Variante PureLogs Dirigida por JavaScript para Roubar Dados Sensíveis
Proof of Value
IOCs (SourceIP) para detectar: FortiGuard Labs Pesquisa de Ameaças Campanha de Phishing Implementa Variante PureLogs Dirigida por JavaScript para Roubar Dados Sensíveis
Proof of Value
IOCs (DestinationIP) para detectar: FortiGuard Labs Pesquisa de Ameaças Campanha de Phishing Implementa Variante PureLogs Dirigida por JavaScript para Roubar Dados Sensíveis
Proof of Value
Execução de Script PowerShell Sem Arquivos e Hollowing de Processo via Assemblies .NET [Windows Powershell]
Proof of Value
Detecção de Implementação de Variante PureLogs Dirigida por JavaScript via PowerShell e Hollowing de Processo [Criação de Processos Windows]
Proof of Value
Execução de Simulação
Pré-requisito: O Check de Pré-vôo de Telemetria e Linha de Base deve ter sido aprovado.
Racional: Esta seção detalha a execução precisa da técnica do adversário (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e ter como objetivo gerar a telemetria exata esperada pela lógica de detecção.
-
Narrativa do Ataque & Comandos:
- Etapa 1 – Dropping de JavaScript: O atacante entrega um
.jspayload malicioso (codificado) via um email de phishing. O payload é salvo em%TEMP%e executado comwscript.exe. - Etapa 2 – Lançador de PowerShell: O JavaScript inicia o PowerShell com as flags
-ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -File, apontando para um script secundário que realiza hollowing de processo. - Etapa 3 – Hollowing de Processo via MsBuild: O script PowerShell cria
MsBuild.exeem modo suspenso, injeta o payload malicioso (um DLL fictício), e retoma o processo, alcançando execução enquanto parece uma ferramenta de build legítima.
- Etapa 1 – Dropping de JavaScript: O atacante entrega um
-
Script de Teste de Regressão: (PowerShell – executado como usuário normal, não requer arquivos externos)
# -------------------------------------------------------------- # Simulação de Variante PureLogs – JavaScript → PowerShell → MsBuild # -------------------------------------------------------------- # 1. Criar JavaScript malicioso (codificado em base64 para imitar ofuscação) $jsPayload = @" // JS malicioso: inicia PowerShell com flags de bypass var shell = new ActiveXObject("WScript.Shell"); var psCmd = "powershell.exe -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -File ""%TEMP%launch.ps1"""; shell.Run(psCmd, 0, false); "@ $jsPath = "$env:TEMPmalicious.js" $jsPayload | Set-Content -Path $jsPath -Encoding ASCII # 2. Criar payload PowerShell que realiza hollowing de processo com MsBuild $psPayload = @" # Iniciar MsBuild em modo suspenso $msbuildPath = (Get-Command MsBuild.exe).Source $si = New-Object System.Diagnostics.ProcessStartInfo $si.FileName = $msbuildPath $si.UseShellExecute = $false $si.CreateNoWindow = $true $si.Arguments = "/t:Compile" $proc = [System.Diagnostics.Process]::Start($si) Start-Sleep -Milliseconds 500 # dar tempo para criação # Simular hollowing escrevendo apenas um arquivo fictício no espaço de memória do processo # (hollowing real usaria chamadas da API do Windows; aqui apenas mantemos o processo ativo) Write-Host "Hollowing de processo simulado – MsBuild em execução" "@ $psPath = "$env:TEMPlaunch.ps1" $psPayload | Set-Content -Path $psPath -Encoding ASCII # 3. Executar o JavaScript – este é o ponto de entrada que a regra monitora wscript.exe $jsPath # Aguardar um curto período para garantir que os logs sejam gerados Start-Sleep -Seconds 10 -
Comandos de Limpeza:
# Terminar quaisquer processos MsBuild remanescentes iniciados pela simulação Get-Process MsBuild -ErrorAction SilentlyContinue | Stop-Process -Force # Remover artefatos Remove-Item "$env:TEMPmalicious.js" -ErrorAction SilentlyContinue Remove-Item "$env:TEMPlaunch.ps1" -ErrorAction SilentlyContinue