SOC Prime Bias: High

21 Sep 2026 19:58 UTC

Execuções do PowerShell Armazenadas no Registro Iniciam Mineração de Criptomoeda em Memória

Author Photo
SOC Prime Team linkedin icon Seguir
Execuções do PowerShell Armazenadas no Registro Iniciam Mineração de Criptomoeda em Memória
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Uma cadeia de infecção em várias etapas utiliza técnicas sofisticadas de ofuscação para implantar um minerador de criptomoeda. O ataque armazena cargas úteis no Registro e utiliza registros DNS TXT juntamente com esteganografia em arquivos PNG e WAV para entregar as etapas subsequentes. A carga útil final carrega um assembly .NET diretamente na memória para realizar a mineração de criptomoedas por meio do ecossistema XMRig.

Investigação

Os analistas investigaram alertas repetidos de execução de PowerShell e descobriram uma estratégia de ocultação de carga útil em camadas. A cadeia de infecção reconstrói conteúdo malicioso a partir de contêineres não convencionais, incluindo dados de pixels de imagem e nibbles de arquivos de áudio. A execução progride de scripts PowerShell armazenados no Registro através de várias etapas até, finalmente, carregar um minerador de criptomoeda .NET diretamente na memória.

Mitigação

As organizações devem impor políticas estritas de execução de PowerShell e monitorar modificações suspeitas do Registro associadas ao armazenamento de carga útil. As soluções EDR devem detectar o carregamento de assembly .NET na memória e consultas anômalas de registros DNS TXT. A lista de permissões de aplicação também deve ser implementada para impedir drivers de modo kernel não autorizados como WinRing0.sys de carregamento.

Resposta

Se atividade maliciosa for detectada, os hosts afetados devem ser isolados imediatamente para interromper a comunicação C2 e a mineração de criptomoedas. Os respondedores devem realizar uma varredura forense em busca de Tarefas Agendadas não autorizadas, assinaturas WMI e exclusões do Microsoft Defender. Os registros de rede também devem ser revisados para conexões com domínios C2 conhecidos e consultas DNS-over-HTTPS suspeitas.

Fluxo de Ataque

Ainda estamos atualizando esta parte.

Detecções

Strings Suspeitas de Powershell (via powershell)

Equipe SOC Prime
21 de setembro de 2026

Chame Métodos .NET Suspeitos a partir do Powershell (via powershell)

Equipe SOC Prime
21 de setembro de 2026

Arquivo de Imagem Foi Criado Por Processo Suspeito (via file_event)

Equipe SOC Prime
21 de setembro de 2026

Canal de Comando e Controle DoH e DNS (via proxy)

Equipe SOC Prime
21 de setembro de 2026

IOCs (HashMd5) para detectar: De PowerShell Armazenado no Registro a Mineração de Criptomoeda na Memória: Uma Cadeia de Infecção em Várias Etapas

Regras de IA SOC Prime
21 de setembro de 2026

IOCs (SourceIP) para detectar: De PowerShell Armazenado no Registro a Mineração de Criptomoeda na Memória: Uma Cadeia de Infecção em Várias Etapas

Regras de IA SOC Prime
21 de setembro de 2026

IOCs (DestinationIP) para detectar: De PowerShell Armazenado no Registro a Mineração de Criptomoeda na Memória: Uma Cadeia de Infecção em Várias Etapas

Regras de IA SOC Prime
21 de setembro de 2026

Detecte DNS-over-HTTPS e Comunicação C2 POST HTTP/HTTPS [Conexão de Rede do Windows]

Regras de IA SOC Prime
21 de setembro de 2026

Assinatura de Evento Permanente WMI para Execução de PowerShell Baseada em Registro [Evento de Registro do Windows]

Regras de IA SOC Prime
21 de setembro de 2026

Ofuscação e Execução Secreta do PowerShell [Windows Powershell]

Regras de IA SOC Prime
21 de setembro de 2026

Execução de Simulação

  • Narrativa & Comandos do Ataque: O adversário busca estabelecer persistência a longo prazo no host comprometido. Em vez de usar uma chave ‘Run’ comum, optam por uma assinatura de evento permanente WMI mais discreta. O atacante cria um WMI CommandLineEventConsumer. Este consumidor é configurado para executar powershell.exe. Para evitar análise estática do comando, a carga útil maliciosa ou configuração real é armazenada em um caminho de registro não padrão: HKLM:Softwareuf42a9660377vstdfehzr. Quando o evento WMI é acionado (simulado aqui por um evento do sistema), o processo PowerShell será iniciado, referenciando a chave de registro específica, acionando assim a regra de detecção.

  • Script de Teste de Regressão:

    # Script de Simulação: Execução de PowerShell Baseada em Registro WMI
    # Este script cria a chave de registro específica e a assinatura WMI necessária para acionar a regra.
    
    $regPath = "HKLM:Softwareuf42a9660377"
    $regValueName = "vstdfehzr"
    $regValueData = "Invoke-Expression (Get-ItemProperty -Path '$regPath$regValueName').Payload"
    
    # 1. Criar a chave de registro e valor suspeitos
    if (-not (Test-Path $regPath)) {
        New-Item -Path $regPath -Force | Out-Null
    }
    New-ItemProperty -Path $regPath -Name $regValueName -Value "Write-Host 'Malicious Payload Triggered!'" -PropertyType String -Force | Out-Null
    
    # 2. Criar Assinatura de Evento Permanente WMI
    # Usamos um Filtro para acionar em um evento comum (por exemplo, tempo de atividade/inicialização do sistema) ou simular por meio da criação de consumidor
    $filterName = "Win32_LocalTimeFilter"
    $consumerName = "Win32_CommandLineConsumer"
    $subscriptionName = "WmiPersistenceSubscription"
    
    # Criar Filtro (Aciona a cada minuto para fins de simulação)
    $filterArgs = @{
        Name = $filterName
        QueryLanguage = "WQL"
        Query = "SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_LocalTime'"
    }
    $filter = Set-WmiInstance -Class __EventFilter -Arguments $filterArgs
    
    # Criar Consumidor (O comando do PowerShell referenciando o caminho de registro específico)
    $commandLine = "powershell.exe -Command `"$regValueData`""
    $consumerArgs = @{
        Name = $consumerName
        CommandLineTemplate = $commandLine
    }
    $consumer = Set-WmiInstance -Class CommandLineEventConsumer -Arguments $consumerArgs
    
    # Vincular Filtro e Consumidor
    Set-WmiInstance -Class __FilterToConsumerBinding -Arguments @{
        Filter = $filter
        Consumer = $consumer
    }
    
    Write-Host "[+] Simulação: Assinatura WMI e Chave de Registro criada com sucesso."
    Write-Host "[+] Aguardando evento WMI para acionar execução do PowerShell..."
    # Nota: Em um ambiente real, aguardamos o evento. 
    # Para fins de teste, a regra está muitas vezes procurando pela *criação* ou pelo *evento acionador*.
  • Comandos de Limpeza:

    # Script de Limpeza
    Write-Host "[!] Limpando artefatos de simulação..."
    
    # 1. Remove Assinatura WMI
    Get-WmiObject -Namespace rootsubscription -Class __EventFilter -Filter "Name='Win32_LocalTimeFilter'" | Remove-WmiObject
    Get-WmiObject -Namespace rootsubscription -Class CommandLineEventConsumer -Filter "Name='Win32_CommandLineConsumer'" | Remove-WmiObject
    Get-WmiObject -Namespace rootsubscription -Class __FilterToConsumerBinding | Where-Object { $_.Filter -match "Win32_LocalTimeFilter" } | Remove-WmiObject
    
    # 2. Remover Chave de Registro
    Remove-Item -Path "HKLM:Softwareuf42a9660377" -Recurse -Force
    
    Write-Host "[+] Limpeza concluída."