SOC Prime Bias: Médio

04 Dez 2025 17:37

Malware ValleyRAT Visa Emprego e Abusa do Carregamento de DLL da Foxit

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
Malware ValleyRAT Visa Emprego e Abusa do Carregamento de DLL da Foxit
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

O trojan de acesso remoto ValleyRAT é entregue através de anexos de email destinados a candidatos a emprego e funcionários de RH. Os adversários combinam um executável Foxit PDF Reader manipulado e dependem de side-loading de DLL para acionar um msimg32.dll malicioso. A carga útil desembrulha um runtime oculto do Python, recupera um script codificado em Base64 de um servidor C2 e configura persistência através de um valor de registro de execução automática enquanto sifona dados do navegador.

Investigação

Pesquisadores analisaram o arquivo malicioso e encontraram um FoxitPDFReader.exe renomeado que carrega um msimg32.dll ilegal através da ordem de busca padrão do DLL do Windows. Um script em lote então descompacta um interpretador Python incorporado (renomeado zvchost.exe) e executa um script loader codificado em Base64 obtido de um endereço IP malicioso. A inspeção de rede expôs um certificado autoassinado com um CN aleatório e uma impressão digital JA3 distinta usada para o tráfego C2. A persistência é mantida pela criação de uma chave de registro de execução automática.

Mitigação

As defesas recomendadas incluem uma varredura rigorosa de anexos de email e o bloqueio de executáveis que se disfarçam como arquivos PDF. Aplique whitelisting de aplicações para prevenir o side-loading de DLLs não autorizadas e a execução de binários não confiáveis. Monitore a criação de entradas de registro de execução automática e bloqueie endereços IP de C2 conhecidos. Mantenha as assinaturas de proteção de endpoint atualizadas e forneça treinamento de conscientização em segurança focado em phishing temático para candidatos a emprego.

Resposta

Gere alertas quando FoxitPDFReader.exe ou msimg32.dll forem executados de locais incomuns, especialmente em caminhos com padrões de sublinhados profundos. Correlacione a atividade de processo do zvchost.exe usando o parâmetro -c e payloads de comando Base64. Detecte conexões de saída para 196.251.86.145 (e infraestrutura relacionada) e reveja as sessões TLS para o certificado autoassinado distintivo. Examine as mudanças no registro em HKCUSoftwareMicrosoftWindowsCurrentVersionRun para entradas de execução automática não autorizadas.

mermaid graph TB %% Class Definitions Section classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ff9999 %% Node Definitions action_phishing[“<b>Ação</b> – <b>T1566.001 Phishing: Anexo de Spearphishing</b><br/>A vítima recebe um arquivo zip malicioso contendo um FoxitPDFReader.exe disfarçado.”] class action_phishing action file_archive[“<b>Tool</b> – Arquivo malicioso<br/>Arquivo compactado Overview_of_Work_Expectations.zip fornecendo a carga útil.”] class file_archive tool exe_foxit[“<b>Tool</b> – FoxitPDFReader.exe (renomeado)<br/>Executado após o usuário abrir o arquivo.”] class exe_foxit tool dll_msimg32[“<b>Tool</b> – msimg32.dll (malicioso)<br/>Colocado no mesmo diretório para realizar o side‑loading de DLL.”] class dll_msimg32 tool exec_hijack[“<b>Ação</b> – T1574.008 Seqüestro de Execução<br/>O seqüestro da ordem de busca carrega o DLL malicioso.”] class exec_hijack action script_bat[“<b>Tool</b> – document.bat<br/>Script em lote lançado pelo executável seqüestrado.”] class script_bat tool docx_7zip[“<b>Tool</b> – document.docx (arquivo 7‑zip)<br/>Contém um ambiente Python embutido.””” class docx_7zip tool exe_zvchost[“<b>Tool</b> – zvchost.exe (renomeado python.exe)<br/>Executa um script loader codificado em Base64.”] class exe_zvchost tool payload_base64[“<b>Tool</b> – Carga Útil Base64<br/>Decodifica e prepara o componente malicioso final.”] class payload_base64 tool registry_run_key[“<b>Tool</b> – Chave de Execução do Registro<br/>Criado sob Setup Ativo para alcançar persistência.”] class registry_run_key tool persistence_active_setup[“<b>Ação</b> – T1547.014 Execução de Inicialização ou Logon Automático: Setup Ativo<br/>Garante que a carga útil seja executada a cada logon.”] class persistence_active_setup action defense_obfuscation[“<b>Ação</b> – T1027 Arquivos ou Informações Ofuscados<br/>Arquivos ocultos em diretórios profundos de sublinhados e codificados em Base64.”] class defense_obfuscation action credential_browser[“<b>Ação</b> – T1555.003 Credenciais de Navegadores da Web<br/>ValleyRAT extrai nomes de usuário, senhas e cookies salvos.”] class credential_browser action malware_valleyrat[“<b>Malware</b> – ValleyRAT<br/>Ferramenta de acesso remoto que abre um canal TLS C2.”] class malware_valleyrat malware c2_server[“<b>Tool</b> – Servidor C2 196.251.86.145<br/>Recebe tráfego criptografado do RAT.”] class c2_server tool malware_component[“<b>Malware</b> – Componente Adicional<br/>Binários buscados executados no host da vítima.”] class malware_component malware %% Connections Showing Flow action_phishing u002du002d>|entrega| file_archive file_archive u002du002d>|contém| exe_foxit exe_foxit u002du002d>|carrega| dll_msimg32 dll_msimg32 u002du002d>|habilita| exec_hijack exec_hijack u002du002d>|trigera| script_bat script_bat u002du002d>|extrai| docx_7zip docx_7zip u002du002d>|fornece| exe_zvchost exe_zvchost u002du002d>|executa| payload_base64 payload_base64 u002du002d>|cria| registry_run_key registry_run_key u002du002d>|garante| persistence_active_setup payload_base64 u002du002d>|realiza| defense_obfuscation payload_base64 u002du002d>|rouba| credential_browser credential_browser u002du002d>|alimenta| malware_valleyrat malware_valleyrat u002du002d>|estabelece| c2_server malware_valleyrat u002du002d>|obtém| malware_component

Fluxo de Ataque

Execução de Simulação

Pré-requisito: O Telemetry & Baseline Pre‑flight Check deve ter passado.

Justificativa: Esta seção detalha a execução precisa da técnica adversária (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a um diagnóstico incorreto.

  • Narrativa e Comandos de Ataque:

    1. Comprometimento Inicial:A vítima abre um PDF temático de recrutamento malicioso entregue via email. O PDF contém JavaScript (T1059.006) que deposita um DLL malicioso (valley.dll) no mesmo diretório que o executável do leitor de PDF.

    2. Side-loading de DLL:O atacante aproveita a capacidade do Foxit Reader de carregar DLLs auxiliares. Colocandovalley.dll ao lado de umexecutável Foxit renomeado (), o Foxit carregará inadvertidamente o DLL malicioso ao iniciar, executando o ValleyRAT.), o Foxit carregará inadvertidamente o DLL malicioso ao iniciar, executando o ValleyRAT.), Foxit will inadvertently load the malicious DLL on launch, executing ValleyRAT.

    3. Gatilho de Criação de Processo:O executável renomeado (), o Foxit carregará inadvertidamente o DLL malicioso ao iniciar, executando o ValleyRAT.) é lançado, gerando um evento de criação de processo onde o caminho da imagem termina comzvchost.exe. Isso corresponde à condiçãoImage|endswithda regra Sigma, gerando um alerta.

  • Script de Teste de Regressão:O seguinte script PowerShell reproduz os passos acima em um ambiente de laboratório controlado.

    # ------------------------------------------------------------
    # Script de regressão para teste de detecção de side‑loading do ValleyRAT
    # ------------------------------------------------------------
    
    # 1. Configurar diretório de trabalho temporário
    $workDir = "$env:TEMPValleyRAT_Test"
    New-Item -Path $workDir -ItemType Directory -Force | Out-Null
    
    # 2. Copiar um executável legítimo do Foxit Reader (simulando o leitor de PDF)
    $foxitSrc = "C:Program FilesFoxit SoftwareFoxit ReaderFoxitReader.exe"
    $foxitRenamed = Join-Path $workDir "zvchost.exe"
    Copy-Item -Path $foxitSrc -Destination $foxitRenamed -Force
    
    # 3. Criar um DLL malicioso fictício (na realidade, isto seria a carga útil do ValleyRAT)
    $dllPath = Join-Path $workDir "valley.dll"
    Set-Content -Path $dllPath -Value ([byte[]](0x4D,0x5A)) -Encoding Byte  # Cabeçalho MZ mínimo
    
    # 4. Lançar o executável Foxit renomeado (isso desencadeia o side-loading de DLL)
    Write-Host "[*] Lançando o executável Foxit renomeado para acionar o side-loading..."
    $proc = Start-Process -FilePath $foxitRenamed -PassThru -WindowStyle Hidden
    
    # 5. Esperar brevemente para garantir que a criação do processo seja registrada
    Start-Sleep -Seconds 5
    
    # 6. Outputar informações do processo para verificação
    Write-Host "Process ID: $($proc.Id)"
    Write-Host "Caminho Executável: $($proc.Path)"
    
    # 7. Limpeza (opcional – ver seção de limpeza separada)
    # Remove-Item -Recurse -Force $workDir
  • Comandos de Limpeza:Execute após o teste para remover artefatos e evitar DLLs de side-loaded restantes.

    # Limpar o diretório de teste e terminar qualquer processo remanescente
    $workDir = "$env:TEMPValleyRAT_Test"
    
    # Terminar o processo lançado se ainda estiver em execução
    Get-Process -Name "zvchost" -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # Excluir os artefatos de teste
    Remove-Item -Path $workDir -Recurse -Force -ErrorAction SilentlyContinue
    
    Write-Host "[+] Limpeza concluída."